diff options
| author | Kim F. Storm | 2004-05-17 22:48:07 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2004-05-17 22:48:07 +0000 |
| commit | b5be4dbe9664b278c6c7d1ab782b0e44434f21eb (patch) | |
| tree | 9b44a72366d1b1c769d1c821200255a3c17d0749 /src | |
| parent | 28b8f74030ab824a230ba4f6e317928a91907d98 (diff) | |
| download | emacs-b5be4dbe9664b278c6c7d1ab782b0e44434f21eb.tar.gz emacs-b5be4dbe9664b278c6c7d1ab782b0e44434f21eb.zip | |
(get_char_property_and_overlay): Use GET_OVERLAYS_AT.
Diffstat (limited to 'src')
| -rw-r--r-- | src/textprop.c | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/src/textprop.c b/src/textprop.c index 4f13aefb1be..c8ec008dcbd 100644 --- a/src/textprop.c +++ b/src/textprop.c | |||
| @@ -637,30 +637,13 @@ get_char_property_and_overlay (position, prop, object, overlay) | |||
| 637 | } | 637 | } |
| 638 | if (BUFFERP (object)) | 638 | if (BUFFERP (object)) |
| 639 | { | 639 | { |
| 640 | int posn = XINT (position); | ||
| 641 | int noverlays; | 640 | int noverlays; |
| 642 | Lisp_Object *overlay_vec, tem; | 641 | Lisp_Object *overlay_vec; |
| 643 | int len; | ||
| 644 | struct buffer *obuf = current_buffer; | 642 | struct buffer *obuf = current_buffer; |
| 645 | 643 | ||
| 646 | set_buffer_temp (XBUFFER (object)); | 644 | set_buffer_temp (XBUFFER (object)); |
| 647 | 645 | ||
| 648 | /* First try with room for 40 overlays. */ | 646 | GET_OVERLAYS_AT (XINT (position), overlay_vec, noverlays, NULL, 0); |
| 649 | len = 40; | ||
| 650 | overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object)); | ||
| 651 | |||
| 652 | noverlays = overlays_at (posn, 0, &overlay_vec, &len, | ||
| 653 | NULL, NULL, 0); | ||
| 654 | |||
| 655 | /* If there are more than 40, | ||
| 656 | make enough space for all, and try again. */ | ||
| 657 | if (noverlays > len) | ||
| 658 | { | ||
| 659 | len = noverlays; | ||
| 660 | overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object)); | ||
| 661 | noverlays = overlays_at (posn, 0, &overlay_vec, &len, | ||
| 662 | NULL, NULL, 0); | ||
| 663 | } | ||
| 664 | noverlays = sort_overlays (overlay_vec, noverlays, w); | 647 | noverlays = sort_overlays (overlay_vec, noverlays, w); |
| 665 | 648 | ||
| 666 | set_buffer_temp (obuf); | 649 | set_buffer_temp (obuf); |
| @@ -668,7 +651,7 @@ get_char_property_and_overlay (position, prop, object, overlay) | |||
| 668 | /* Now check the overlays in order of decreasing priority. */ | 651 | /* Now check the overlays in order of decreasing priority. */ |
| 669 | while (--noverlays >= 0) | 652 | while (--noverlays >= 0) |
| 670 | { | 653 | { |
| 671 | tem = Foverlay_get (overlay_vec[noverlays], prop); | 654 | Lisp_Object tem = Foverlay_get (overlay_vec[noverlays], prop); |
| 672 | if (!NILP (tem)) | 655 | if (!NILP (tem)) |
| 673 | { | 656 | { |
| 674 | if (overlay) | 657 | if (overlay) |