[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r112168: Fix commit 112164 which brok
From: |
Dmitry Antipov |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r112168: Fix commit 112164 which brokes Fbuffer_swap_text. |
Date: |
Thu, 28 Mar 2013 13:25:25 +0400 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 112168
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Thu 2013-03-28 13:25:25 +0400
message:
Fix commit 112164 which brokes Fbuffer_swap_text.
* buffer.c (Fbuffer_swap_text): Adjust window start markers.
Fix comment.
modified:
src/ChangeLog
src/buffer.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2013-03-28 09:18:16 +0000
+++ b/src/ChangeLog 2013-03-28 09:25:25 +0000
@@ -17,6 +17,8 @@
which is verified by eassert.
* editfns.c (save_excursion_save): Do not assume that
selected_window always displays the buffer.
+ * buffer.c (Fbuffer_swap_text): Adjust window start markers.
+ Fix comment.
2013-03-27 Stefan Monnier <address@hidden>
=== modified file 'src/buffer.c'
--- a/src/buffer.c 2013-01-19 20:04:33 +0000
+++ b/src/buffer.c 2013-03-28 09:25:25 +0000
@@ -2394,8 +2394,9 @@
BUF_MARKERS(buf) should either be for `buf' or dead. */
eassert (!m->buffer);
}
- { /* Some of the C code expects that w->buffer == w->pointm->buffer.
- So since we just swapped the markers between the two buffers, we need
+ { /* Some of the C code expects that both window markers of a
+ live window points to that window's buffer. So since we
+ just swapped the markers between the two buffers, we need
to undo the effect of this swap for window markers. */
Lisp_Object w = Fselected_window (), ws = Qnil;
Lisp_Object buf1, buf2;
@@ -2411,6 +2412,13 @@
make_number
(BUF_BEGV (XBUFFER (XWINDOW (w)->buffer))),
XWINDOW (w)->buffer);
+ if (MARKERP (XWINDOW (w)->start)
+ && (EQ (XWINDOW (w)->buffer, buf1)
+ || EQ (XWINDOW (w)->buffer, buf2)))
+ Fset_marker (XWINDOW (w)->start,
+ make_number
+ (XBUFFER (XWINDOW (w)->buffer)->last_window_start),
+ XWINDOW (w)->buffer);
w = Fnext_window (w, Qt, Qt);
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r112168: Fix commit 112164 which brokes Fbuffer_swap_text.,
Dmitry Antipov <=