]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bugs in vertical-motion and display-buffer-normalize-special.
authorMartin Rudalics <rudalics@gmx.at>
Thu, 14 Jul 2011 08:30:34 +0000 (10:30 +0200)
committerMartin Rudalics <rudalics@gmx.at>
Thu, 14 Jul 2011 08:30:34 +0000 (10:30 +0200)
* 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).

lisp/ChangeLog
lisp/window.el
src/ChangeLog
src/indent.c

index 7f86e6ef53ff54d14c043dca6979c0ed4d088755..9814cae16bb3923abf33d8e2809fec3d617f6c82 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-14  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.el (display-buffer-normalize-special): Replace
+       `dedicated' by `dedicate' to dedicate window (Bug#9072).
+
 2011-07-14  Eli Zaretskii  <eliz@gnu.org>
 
        * subr.el (version<, version<=, version=): Mention "-CVS" and
index 593fa14d215167b4aa896bbe45c017cc1e7bd553..0302a672521d0cefaf41b3e99985063a22a5807b 100644 (file)
@@ -5317,12 +5317,12 @@ user preferences expressed in `display-buffer-alist'."
        (unless display-buffer-mark-dedicated
         ;; Don't make anything created above dedicated unless requested.
         ;; Otherwise the dedication request below gets in our way.
-        '((dedicated . nil)))
+        '((dedicate . nil)))
        `((pop-up-frame t)
         ,(append '(pop-up-frame-alist)
                  (when (listp args) args)
                  special-display-frame-alist)
-        (dedicated . t))))))
+        (dedicate . t))))))
 
 (defun display-buffer-normalize-default (buffer-or-name)
   "Subroutine of `display-buffer-normalize-specifiers'.
index 36a7539b8886818631e589dd1467f51d0d75fc97..9a60ac5f541652b6f883d4f12f65b5b67724f0dd 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-14  Martin Rudalics  <rudalics@gmx.at>
+
+       * indent.c (Fvertical_motion): Set and restore w->pointm when
+       saving and restoring the window's buffer (Bug#9006).
+
 2011-07-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * editfns.c (Fstring_to_char): Clarify just what is returned
index 5c5966175aae161606277473ab47a848bfaf0a3a..02eeb7f17d43237468a87fc938f51c1693161969 100644 (file)
@@ -1985,7 +1985,8 @@ whether or not it is currently displayed in some window.  */)
   struct text_pos pt;
   struct window *w;
   Lisp_Object old_buffer;
-  struct gcpro gcpro1;
+  EMACS_INT old_charpos, old_bytepos;
+  struct gcpro gcpro1, gcpro2, gcpro3;
   Lisp_Object lcols = Qnil;
   double cols IF_LINT (= 0);
 
@@ -2005,12 +2006,16 @@ whether or not it is currently displayed in some window.  */)
   w = XWINDOW (window);
 
   old_buffer = Qnil;
-  GCPRO1 (old_buffer);
+  GCPRO3 (old_buffer, old_charpos, old_bytepos);
   if (XBUFFER (w->buffer) != current_buffer)
     {
       /* Set the window's buffer temporarily to the current buffer.  */
       old_buffer = w->buffer;
+      old_charpos = XMARKER (w->pointm)->charpos;
+      old_bytepos = XMARKER (w->pointm)->bytepos;
       XSETBUFFER (w->buffer, current_buffer);
+      set_marker_both
+       (w->pointm, w->buffer, BUF_PT (current_buffer), BUF_PT_BYTE (current_buffer));
     }
 
   if (noninteractive)
@@ -2131,7 +2136,10 @@ whether or not it is currently displayed in some window.  */)
     }
 
   if (BUFFERP (old_buffer))
-    w->buffer = old_buffer;
+    {
+      w->buffer = old_buffer;
+      set_marker_both (w->pointm, w->buffer, old_charpos, old_bytepos);
+    }
 
   RETURN_UNGCPRO (make_number (it.vpos));
 }