/[emacs]/emacs/src/textprop.c
ViewVC logotype

Diff of /emacs/src/textprop.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.128.2.3 by uid65618, Sun Dec 28 05:20:01 2003 UTC revision 1.128.2.4 by miles, Tue Jul 6 09:14:37 2004 UTC
# Line 637  get_char_property_and_overlay (position, Line 637  get_char_property_and_overlay (position,
637      }      }
638    if (BUFFERP (object))    if (BUFFERP (object))
639      {      {
       int posn = XINT (position);  
640        int noverlays;        int noverlays;
641        Lisp_Object *overlay_vec, tem;        Lisp_Object *overlay_vec;
       int len;  
642        struct buffer *obuf = current_buffer;        struct buffer *obuf = current_buffer;
643    
644        set_buffer_temp (XBUFFER (object));        set_buffer_temp (XBUFFER (object));
645    
646        /* First try with room for 40 overlays.  */        GET_OVERLAYS_AT (XINT (position), overlay_vec, noverlays, NULL, 0);
       len = 40;  
       overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));  
   
       noverlays = overlays_at (posn, 0, &overlay_vec, &len,  
                                NULL, NULL, 0);  
   
       /* If there are more than 40,  
          make enough space for all, and try again.  */  
       if (noverlays > len)  
         {  
           len = noverlays;  
           overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));  
           noverlays = overlays_at (posn, 0, &overlay_vec, &len,  
                                    NULL, NULL, 0);  
         }  
647        noverlays = sort_overlays (overlay_vec, noverlays, w);        noverlays = sort_overlays (overlay_vec, noverlays, w);
648    
649        set_buffer_temp (obuf);        set_buffer_temp (obuf);
# Line 668  get_char_property_and_overlay (position, Line 651  get_char_property_and_overlay (position,
651        /* Now check the overlays in order of decreasing priority.  */        /* Now check the overlays in order of decreasing priority.  */
652        while (--noverlays >= 0)        while (--noverlays >= 0)
653          {          {
654            tem = Foverlay_get (overlay_vec[noverlays], prop);            Lisp_Object tem = Foverlay_get (overlay_vec[noverlays], prop);
655            if (!NILP (tem))            if (!NILP (tem))
656              {              {
657                if (overlay)                if (overlay)

Legend:
Removed from v.1.128.2.3  
changed lines
  Added in v.1.128.2.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26