diff options
| author | Martin Rudalics | 2011-07-14 10:30:34 +0200 |
|---|---|---|
| committer | Martin Rudalics | 2011-07-14 10:30:34 +0200 |
| commit | adc47434a27e5f4a9733e657584823508f8ab952 (patch) | |
| tree | 39e196ed7783f1d0b6dcd3716064ed585a073084 | |
| parent | 7e5bfb8fec244ab07253d1dd95fcef0673b89cbc (diff) | |
| download | emacs-adc47434a27e5f4a9733e657584823508f8ab952.tar.gz emacs-adc47434a27e5f4a9733e657584823508f8ab952.zip | |
Fix bugs in vertical-motion and display-buffer-normalize-special.
* indent.c (Fvertical_motion): Set and restore w->pointm when
saving and restoring the window's buffer (Bug#9006).
* window.el (display-buffer-normalize-special): Replace
`dedicated' by `dedicate' to dedicate window (Bug#9072).
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/window.el | 4 | ||||
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/indent.c | 14 |
4 files changed, 23 insertions, 5 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7f86e6ef53f..9814cae16bb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-07-14 Martin Rudalics <rudalics@gmx.at> | ||
| 2 | |||
| 3 | * window.el (display-buffer-normalize-special): Replace | ||
| 4 | `dedicated' by `dedicate' to dedicate window (Bug#9072). | ||
| 5 | |||
| 1 | 2011-07-14 Eli Zaretskii <eliz@gnu.org> | 6 | 2011-07-14 Eli Zaretskii <eliz@gnu.org> |
| 2 | 7 | ||
| 3 | * subr.el (version<, version<=, version=): Mention "-CVS" and | 8 | * subr.el (version<, version<=, version=): Mention "-CVS" and |
diff --git a/lisp/window.el b/lisp/window.el index 593fa14d215..0302a672521 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -5317,12 +5317,12 @@ user preferences expressed in `display-buffer-alist'." | |||
| 5317 | (unless display-buffer-mark-dedicated | 5317 | (unless display-buffer-mark-dedicated |
| 5318 | ;; Don't make anything created above dedicated unless requested. | 5318 | ;; Don't make anything created above dedicated unless requested. |
| 5319 | ;; Otherwise the dedication request below gets in our way. | 5319 | ;; Otherwise the dedication request below gets in our way. |
| 5320 | '((dedicated . nil))) | 5320 | '((dedicate . nil))) |
| 5321 | `((pop-up-frame t) | 5321 | `((pop-up-frame t) |
| 5322 | ,(append '(pop-up-frame-alist) | 5322 | ,(append '(pop-up-frame-alist) |
| 5323 | (when (listp args) args) | 5323 | (when (listp args) args) |
| 5324 | special-display-frame-alist) | 5324 | special-display-frame-alist) |
| 5325 | (dedicated . t)))))) | 5325 | (dedicate . t)))))) |
| 5326 | 5326 | ||
| 5327 | (defun display-buffer-normalize-default (buffer-or-name) | 5327 | (defun display-buffer-normalize-default (buffer-or-name) |
| 5328 | "Subroutine of `display-buffer-normalize-specifiers'. | 5328 | "Subroutine of `display-buffer-normalize-specifiers'. |
diff --git a/src/ChangeLog b/src/ChangeLog index 36a7539b888..9a60ac5f541 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-07-14 Martin Rudalics <rudalics@gmx.at> | ||
| 2 | |||
| 3 | * indent.c (Fvertical_motion): Set and restore w->pointm when | ||
| 4 | saving and restoring the window's buffer (Bug#9006). | ||
| 5 | |||
| 1 | 2011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org> | 6 | 2011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 2 | 7 | ||
| 3 | * editfns.c (Fstring_to_char): Clarify just what is returned | 8 | * editfns.c (Fstring_to_char): Clarify just what is returned |
diff --git a/src/indent.c b/src/indent.c index 5c5966175aa..02eeb7f17d4 100644 --- a/src/indent.c +++ b/src/indent.c | |||
| @@ -1985,7 +1985,8 @@ whether or not it is currently displayed in some window. */) | |||
| 1985 | struct text_pos pt; | 1985 | struct text_pos pt; |
| 1986 | struct window *w; | 1986 | struct window *w; |
| 1987 | Lisp_Object old_buffer; | 1987 | Lisp_Object old_buffer; |
| 1988 | struct gcpro gcpro1; | 1988 | EMACS_INT old_charpos, old_bytepos; |
| 1989 | struct gcpro gcpro1, gcpro2, gcpro3; | ||
| 1989 | Lisp_Object lcols = Qnil; | 1990 | Lisp_Object lcols = Qnil; |
| 1990 | double cols IF_LINT (= 0); | 1991 | double cols IF_LINT (= 0); |
| 1991 | 1992 | ||
| @@ -2005,12 +2006,16 @@ whether or not it is currently displayed in some window. */) | |||
| 2005 | w = XWINDOW (window); | 2006 | w = XWINDOW (window); |
| 2006 | 2007 | ||
| 2007 | old_buffer = Qnil; | 2008 | old_buffer = Qnil; |
| 2008 | GCPRO1 (old_buffer); | 2009 | GCPRO3 (old_buffer, old_charpos, old_bytepos); |
| 2009 | if (XBUFFER (w->buffer) != current_buffer) | 2010 | if (XBUFFER (w->buffer) != current_buffer) |
| 2010 | { | 2011 | { |
| 2011 | /* Set the window's buffer temporarily to the current buffer. */ | 2012 | /* Set the window's buffer temporarily to the current buffer. */ |
| 2012 | old_buffer = w->buffer; | 2013 | old_buffer = w->buffer; |
| 2014 | old_charpos = XMARKER (w->pointm)->charpos; | ||
| 2015 | old_bytepos = XMARKER (w->pointm)->bytepos; | ||
| 2013 | XSETBUFFER (w->buffer, current_buffer); | 2016 | XSETBUFFER (w->buffer, current_buffer); |
| 2017 | set_marker_both | ||
| 2018 | (w->pointm, w->buffer, BUF_PT (current_buffer), BUF_PT_BYTE (current_buffer)); | ||
| 2014 | } | 2019 | } |
| 2015 | 2020 | ||
| 2016 | if (noninteractive) | 2021 | if (noninteractive) |
| @@ -2131,7 +2136,10 @@ whether or not it is currently displayed in some window. */) | |||
| 2131 | } | 2136 | } |
| 2132 | 2137 | ||
| 2133 | if (BUFFERP (old_buffer)) | 2138 | if (BUFFERP (old_buffer)) |
| 2134 | w->buffer = old_buffer; | 2139 | { |
| 2140 | w->buffer = old_buffer; | ||
| 2141 | set_marker_both (w->pointm, w->buffer, old_charpos, old_bytepos); | ||
| 2142 | } | ||
| 2135 | 2143 | ||
| 2136 | RETURN_UNGCPRO (make_number (it.vpos)); | 2144 | RETURN_UNGCPRO (make_number (it.vpos)); |
| 2137 | } | 2145 | } |