diff options
| author | Joakim Verona | 2013-09-10 23:52:26 +0200 |
|---|---|---|
| committer | Joakim Verona | 2013-09-10 23:52:26 +0200 |
| commit | 63dae8e97d343fd4ebfe3dc08f0e8dc932630a4c (patch) | |
| tree | e5078c5545c777e21944a9ee4199a6f2c6d25ca9 /src/buffer.c | |
| parent | 92aeabcc8a007f521a664e3aee092eb80ad0f49a (diff) | |
| download | emacs-63dae8e97d343fd4ebfe3dc08f0e8dc932630a4c.tar.gz emacs-63dae8e97d343fd4ebfe3dc08f0e8dc932630a4c.zip | |
merge upstream
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/src/buffer.c b/src/buffer.c index e42dbb2befd..ff05da6d0d9 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -892,8 +892,8 @@ drop_overlay (struct buffer *b, struct Lisp_Overlay *ov) | |||
| 892 | eassert (b == XBUFFER (Fmarker_buffer (ov->start))); | 892 | eassert (b == XBUFFER (Fmarker_buffer (ov->start))); |
| 893 | modify_overlay (b, marker_position (ov->start), | 893 | modify_overlay (b, marker_position (ov->start), |
| 894 | marker_position (ov->end)); | 894 | marker_position (ov->end)); |
| 895 | Fset_marker (ov->start, Qnil, Qnil); | 895 | unchain_marker (XMARKER (ov->start)); |
| 896 | Fset_marker (ov->end, Qnil, Qnil); | 896 | unchain_marker (XMARKER (ov->end)); |
| 897 | 897 | ||
| 898 | } | 898 | } |
| 899 | 899 | ||
| @@ -3843,7 +3843,8 @@ for the front of the overlay advance when text is inserted there | |||
| 3843 | The fifth arg REAR-ADVANCE, if non-nil, makes the marker | 3843 | The fifth arg REAR-ADVANCE, if non-nil, makes the marker |
| 3844 | for the rear of the overlay advance when text is inserted there | 3844 | for the rear of the overlay advance when text is inserted there |
| 3845 | \(which means the text *is* included in the overlay). */) | 3845 | \(which means the text *is* included in the overlay). */) |
| 3846 | (Lisp_Object beg, Lisp_Object end, Lisp_Object buffer, Lisp_Object front_advance, Lisp_Object rear_advance) | 3846 | (Lisp_Object beg, Lisp_Object end, Lisp_Object buffer, |
| 3847 | Lisp_Object front_advance, Lisp_Object rear_advance) | ||
| 3847 | { | 3848 | { |
| 3848 | Lisp_Object overlay; | 3849 | Lisp_Object overlay; |
| 3849 | struct buffer *b; | 3850 | struct buffer *b; |
| @@ -3852,12 +3853,11 @@ for the rear of the overlay advance when text is inserted there | |||
| 3852 | XSETBUFFER (buffer, current_buffer); | 3853 | XSETBUFFER (buffer, current_buffer); |
| 3853 | else | 3854 | else |
| 3854 | CHECK_BUFFER (buffer); | 3855 | CHECK_BUFFER (buffer); |
| 3855 | if (MARKERP (beg) | 3856 | |
| 3856 | && ! EQ (Fmarker_buffer (beg), buffer)) | 3857 | if (MARKERP (beg) && !EQ (Fmarker_buffer (beg), buffer)) |
| 3857 | error ("Marker points into wrong buffer"); | 3858 | signal_error ("Marker points into wrong buffer", beg); |
| 3858 | if (MARKERP (end) | 3859 | if (MARKERP (end) && !EQ (Fmarker_buffer (end), buffer)) |
| 3859 | && ! EQ (Fmarker_buffer (end), buffer)) | 3860 | signal_error ("Marker points into wrong buffer", end); |
| 3860 | error ("Marker points into wrong buffer"); | ||
| 3861 | 3861 | ||
| 3862 | CHECK_NUMBER_COERCE_MARKER (beg); | 3862 | CHECK_NUMBER_COERCE_MARKER (beg); |
| 3863 | CHECK_NUMBER_COERCE_MARKER (end); | 3863 | CHECK_NUMBER_COERCE_MARKER (end); |
| @@ -3983,12 +3983,10 @@ buffer. */) | |||
| 3983 | if (NILP (Fbuffer_live_p (buffer))) | 3983 | if (NILP (Fbuffer_live_p (buffer))) |
| 3984 | error ("Attempt to move overlay to a dead buffer"); | 3984 | error ("Attempt to move overlay to a dead buffer"); |
| 3985 | 3985 | ||
| 3986 | if (MARKERP (beg) | 3986 | if (MARKERP (beg) && !EQ (Fmarker_buffer (beg), buffer)) |
| 3987 | && ! EQ (Fmarker_buffer (beg), buffer)) | 3987 | signal_error ("Marker points into wrong buffer", beg); |
| 3988 | error ("Marker points into wrong buffer"); | 3988 | if (MARKERP (end) && !EQ (Fmarker_buffer (end), buffer)) |
| 3989 | if (MARKERP (end) | 3989 | signal_error ("Marker points into wrong buffer", end); |
| 3990 | && ! EQ (Fmarker_buffer (end), buffer)) | ||
| 3991 | error ("Marker points into wrong buffer"); | ||
| 3992 | 3990 | ||
| 3993 | CHECK_NUMBER_COERCE_MARKER (beg); | 3991 | CHECK_NUMBER_COERCE_MARKER (beg); |
| 3994 | CHECK_NUMBER_COERCE_MARKER (end); | 3992 | CHECK_NUMBER_COERCE_MARKER (end); |
| @@ -4170,6 +4168,9 @@ DEFUN ("overlays-at", Foverlays_at, Soverlays_at, 1, 1, 0, | |||
| 4170 | 4168 | ||
| 4171 | CHECK_NUMBER_COERCE_MARKER (pos); | 4169 | CHECK_NUMBER_COERCE_MARKER (pos); |
| 4172 | 4170 | ||
| 4171 | if (!buffer_has_overlays ()) | ||
| 4172 | return Qnil; | ||
| 4173 | |||
| 4173 | len = 10; | 4174 | len = 10; |
| 4174 | /* We can't use alloca here because overlays_at can call xrealloc. */ | 4175 | /* We can't use alloca here because overlays_at can call xrealloc. */ |
| 4175 | overlay_vec = xmalloc (len * sizeof *overlay_vec); | 4176 | overlay_vec = xmalloc (len * sizeof *overlay_vec); |
| @@ -4202,6 +4203,9 @@ end of the buffer. */) | |||
| 4202 | CHECK_NUMBER_COERCE_MARKER (beg); | 4203 | CHECK_NUMBER_COERCE_MARKER (beg); |
| 4203 | CHECK_NUMBER_COERCE_MARKER (end); | 4204 | CHECK_NUMBER_COERCE_MARKER (end); |
| 4204 | 4205 | ||
| 4206 | if (!buffer_has_overlays ()) | ||
| 4207 | return Qnil; | ||
| 4208 | |||
| 4205 | len = 10; | 4209 | len = 10; |
| 4206 | overlay_vec = xmalloc (len * sizeof *overlay_vec); | 4210 | overlay_vec = xmalloc (len * sizeof *overlay_vec); |
| 4207 | 4211 | ||
| @@ -4230,6 +4234,9 @@ the value is (point-max). */) | |||
| 4230 | 4234 | ||
| 4231 | CHECK_NUMBER_COERCE_MARKER (pos); | 4235 | CHECK_NUMBER_COERCE_MARKER (pos); |
| 4232 | 4236 | ||
| 4237 | if (!buffer_has_overlays ()) | ||
| 4238 | return make_number (ZV); | ||
| 4239 | |||
| 4233 | len = 10; | 4240 | len = 10; |
| 4234 | overlay_vec = xmalloc (len * sizeof *overlay_vec); | 4241 | overlay_vec = xmalloc (len * sizeof *overlay_vec); |
| 4235 | 4242 | ||
| @@ -4269,6 +4276,9 @@ the value is (point-min). */) | |||
| 4269 | 4276 | ||
| 4270 | CHECK_NUMBER_COERCE_MARKER (pos); | 4277 | CHECK_NUMBER_COERCE_MARKER (pos); |
| 4271 | 4278 | ||
| 4279 | if (!buffer_has_overlays ()) | ||
| 4280 | return make_number (BEGV); | ||
| 4281 | |||
| 4272 | /* At beginning of buffer, we know the answer; | 4282 | /* At beginning of buffer, we know the answer; |
| 4273 | avoid bug subtracting 1 below. */ | 4283 | avoid bug subtracting 1 below. */ |
| 4274 | if (XINT (pos) == BEGV) | 4284 | if (XINT (pos) == BEGV) |