Mercurial > emacs
comparison src/buffer.c @ 6591:60f70854e73f
(verify_overlay_modification):
Copy TAIL before a hook, in case the hook recenters the overlay lists.
| author | Richard M. Stallman <rms@gnu.org> |
|---|---|
| date | Wed, 30 Mar 1994 06:32:54 +0000 |
| parents | 33a461f14903 |
| children | 49120b664bba |
comparison
equal
deleted
inserted
replaced
| 6590:2c66255e9469 | 6591:60f70854e73f |
|---|---|
| 2042 break; | 2042 break; |
| 2043 startpos = OVERLAY_POSITION (ostart); | 2043 startpos = OVERLAY_POSITION (ostart); |
| 2044 if (XFASTINT (end) == startpos && insertion) | 2044 if (XFASTINT (end) == startpos && insertion) |
| 2045 { | 2045 { |
| 2046 prop = Foverlay_get (overlay, Qinsert_in_front_hooks); | 2046 prop = Foverlay_get (overlay, Qinsert_in_front_hooks); |
| 2047 call_overlay_mod_hooks (prop, overlay, start, end); | 2047 if (!NILP (prop)) |
| 2048 { | |
| 2049 /* Copy TAIL in case the hook recenters the overlay lists. */ | |
| 2050 tail = Fcopy_sequence (tail); | |
| 2051 call_overlay_mod_hooks (prop, overlay, start, end); | |
| 2052 } | |
| 2048 } | 2053 } |
| 2049 if (XFASTINT (start) == endpos && insertion) | 2054 if (XFASTINT (start) == endpos && insertion) |
| 2050 { | 2055 { |
| 2051 prop = Foverlay_get (overlay, Qinsert_behind_hooks); | 2056 prop = Foverlay_get (overlay, Qinsert_behind_hooks); |
| 2052 call_overlay_mod_hooks (prop, overlay, start, end); | 2057 if (!NILP (prop)) |
| 2058 { | |
| 2059 tail = Fcopy_sequence (tail); | |
| 2060 call_overlay_mod_hooks (prop, overlay, start, end); | |
| 2061 } | |
| 2053 } | 2062 } |
| 2054 if (insertion | 2063 if (insertion |
| 2055 ? (XFASTINT (start) > startpos && XFASTINT (end) < endpos) | 2064 ? (XFASTINT (start) > startpos && XFASTINT (end) < endpos) |
| 2056 : (XFASTINT (start) >= startpos && XFASTINT (end) <= endpos)) | 2065 : (XFASTINT (start) >= startpos && XFASTINT (end) <= endpos)) |
| 2057 { | 2066 { |
| 2058 prop = Foverlay_get (overlay, Qmodification_hooks); | 2067 prop = Foverlay_get (overlay, Qmodification_hooks); |
| 2059 call_overlay_mod_hooks (prop, overlay, start, end); | 2068 if (!NILP (prop)) |
| 2069 { | |
| 2070 tail = Fcopy_sequence (tail); | |
| 2071 call_overlay_mod_hooks (prop, overlay, start, end); | |
| 2072 } | |
| 2060 } | 2073 } |
| 2061 } | 2074 } |
| 2062 | 2075 |
| 2063 for (tail = current_buffer->overlays_after; | 2076 for (tail = current_buffer->overlays_after; |
| 2064 CONSP (tail); | 2077 CONSP (tail); |
| 2076 if (XFASTINT (end) < startpos) | 2089 if (XFASTINT (end) < startpos) |
| 2077 break; | 2090 break; |
| 2078 if (XFASTINT (end) == startpos && insertion) | 2091 if (XFASTINT (end) == startpos && insertion) |
| 2079 { | 2092 { |
| 2080 prop = Foverlay_get (overlay, Qinsert_in_front_hooks); | 2093 prop = Foverlay_get (overlay, Qinsert_in_front_hooks); |
| 2081 call_overlay_mod_hooks (prop, overlay, start, end); | 2094 if (!NILP (prop)) |
| 2095 { | |
| 2096 tail = Fcopy_sequence (tail); | |
| 2097 call_overlay_mod_hooks (prop, overlay, start, end); | |
| 2098 } | |
| 2082 } | 2099 } |
| 2083 if (XFASTINT (start) == endpos && insertion) | 2100 if (XFASTINT (start) == endpos && insertion) |
| 2084 { | 2101 { |
| 2085 prop = Foverlay_get (overlay, Qinsert_behind_hooks); | 2102 prop = Foverlay_get (overlay, Qinsert_behind_hooks); |
| 2086 call_overlay_mod_hooks (prop, overlay, start, end); | 2103 if (!NILP (prop)) |
| 2104 { | |
| 2105 tail = Fcopy_sequence (tail); | |
| 2106 call_overlay_mod_hooks (prop, overlay, start, end); | |
| 2107 } | |
| 2087 } | 2108 } |
| 2088 if (insertion | 2109 if (insertion |
| 2089 ? (XFASTINT (start) > startpos && XFASTINT (end) < endpos) | 2110 ? (XFASTINT (start) > startpos && XFASTINT (end) < endpos) |
| 2090 : (XFASTINT (start) >= startpos && XFASTINT (end) <= endpos)) | 2111 : (XFASTINT (start) >= startpos && XFASTINT (end) <= endpos)) |
| 2091 { | 2112 { |
| 2092 prop = Foverlay_get (overlay, Qmodification_hooks); | 2113 prop = Foverlay_get (overlay, Qmodification_hooks); |
| 2093 call_overlay_mod_hooks (prop, overlay, start, end); | 2114 if (!NILP (prop)) |
| 2115 { | |
| 2116 tail = Fcopy_sequence (tail); | |
| 2117 call_overlay_mod_hooks (prop, overlay, start, end); | |
| 2118 } | |
| 2094 } | 2119 } |
| 2095 } | 2120 } |
| 2096 } | 2121 } |
| 2097 | 2122 |
| 2098 static void | 2123 static void |
