aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorStefan Monnier2008-11-21 05:33:29 +0000
committerStefan Monnier2008-11-21 05:33:29 +0000
commitb8ff72fad8be3820e084c6db9280649c9534813f (patch)
treee881f0d4820436262260588c192c8777a669f346 /src/buffer.c
parent3be5da9e6f1fc2be8f5834baaeca17095a265aae (diff)
downloademacs-b8ff72fad8be3820e084c6db9280649c9534813f.tar.gz
emacs-b8ff72fad8be3820e084c6db9280649c9534813f.zip
(Fbuffer_swap_text): Remove redundant marker manipulation.
Fix copy/paste typo. Add checks.
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/buffer.c b/src/buffer.c
index b9c4c853546..4e87498ea51 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2234,10 +2234,6 @@ DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text,
2234 swapfield (overlay_center, EMACS_INT); 2234 swapfield (overlay_center, EMACS_INT);
2235 swapfield (undo_list, Lisp_Object); 2235 swapfield (undo_list, Lisp_Object);
2236 swapfield (mark, Lisp_Object); 2236 swapfield (mark, Lisp_Object);
2237 if (MARKERP (current_buffer->mark) && XMARKER (current_buffer->mark)->buffer)
2238 XMARKER (current_buffer->mark)->buffer = current_buffer;
2239 if (MARKERP (other_buffer->mark) && XMARKER (other_buffer->mark)->buffer)
2240 XMARKER (other_buffer->mark)->buffer = other_buffer;
2241 swapfield (enable_multibyte_characters, Lisp_Object); 2237 swapfield (enable_multibyte_characters, Lisp_Object);
2242 /* FIXME: Not sure what we should do with these *_marker fields. 2238 /* FIXME: Not sure what we should do with these *_marker fields.
2243 Hopefully they're just nil anyway. */ 2239 Hopefully they're just nil anyway. */
@@ -2252,16 +2248,24 @@ DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text,
2252 current_buffer->text->overlay_modiff++; other_buffer->text->overlay_modiff++; 2248 current_buffer->text->overlay_modiff++; other_buffer->text->overlay_modiff++;
2253 current_buffer->text->beg_unchanged = current_buffer->text->gpt; 2249 current_buffer->text->beg_unchanged = current_buffer->text->gpt;
2254 current_buffer->text->end_unchanged = current_buffer->text->gpt; 2250 current_buffer->text->end_unchanged = current_buffer->text->gpt;
2255 other_buffer->text->beg_unchanged = current_buffer->text->gpt; 2251 other_buffer->text->beg_unchanged = other_buffer->text->gpt;
2256 other_buffer->text->end_unchanged = current_buffer->text->gpt; 2252 other_buffer->text->end_unchanged = other_buffer->text->gpt;
2257 { 2253 {
2258 struct Lisp_Marker *m; 2254 struct Lisp_Marker *m;
2259 for (m = BUF_MARKERS (current_buffer); m; m = m->next) 2255 for (m = BUF_MARKERS (current_buffer); m; m = m->next)
2260 if (m->buffer == other_buffer) 2256 if (m->buffer == other_buffer)
2261 m->buffer = current_buffer; 2257 m->buffer = current_buffer;
2258 else
2259 /* Since there's no indirect buffer in sight, markers on
2260 BUF_MARKERS(buf) should either be for `buf' or dead. */
2261 eassert (!m->buffer);
2262 for (m = BUF_MARKERS (other_buffer); m; m = m->next) 2262 for (m = BUF_MARKERS (other_buffer); m; m = m->next)
2263 if (m->buffer == current_buffer) 2263 if (m->buffer == current_buffer)
2264 m->buffer = other_buffer; 2264 m->buffer = other_buffer;
2265 else
2266 /* Since there's no indirect buffer in sight, markers on
2267 BUF_MARKERS(buf) should either be for `buf' or dead. */
2268 eassert (!m->buffer);
2265 } 2269 }
2266 { /* Some of the C code expects that w->buffer == w->pointm->buffer. 2270 { /* Some of the C code expects that w->buffer == w->pointm->buffer.
2267 So since we just swapped the markers between the two buffers, we need 2271 So since we just swapped the markers between the two buffers, we need