]> git.eshelyaron.com Git - emacs.git/commitdiff
Use buffer objects for non-writable states in window-state-get.
authorJuri Linkov <juri@linkov.net>
Thu, 18 Oct 2018 23:01:54 +0000 (02:01 +0300)
committerJuri Linkov <juri@linkov.net>
Thu, 18 Oct 2018 23:01:54 +0000 (02:01 +0300)
* lisp/window.el (window--state-get-1): Use buffer objects for
buffer, next-buffers, prev-buffers if 'writable' is nil.  (Bug#32850)

lisp/window.el

index 47dbf0e1c865303755f140facaa920e56c9a6ea4..e7f54cee56a4e0b83f4abd525ea2a73e2446c218 100644 (file)
@@ -5584,7 +5584,7 @@ specific buffers."
                (let ((point (window-point window))
                      (start (window-start window)))
                  `((buffer
-                    ,(buffer-name buffer)
+                    ,(if writable (buffer-name buffer) buffer)
                     (selected . ,selected)
                     (hscroll . ,(window-hscroll window))
                     (fringes . ,(window-fringes window))
@@ -5604,20 +5604,20 @@ specific buffers."
                                  (with-current-buffer buffer
                                    (copy-marker start))))))))
             ,@(when next-buffers
-                `((next-buffers . ,(mapcar (lambda (buffer)
-                                           (buffer-name buffer))
-                                         next-buffers))))
+                `((next-buffers
+                   . ,(if writable
+                          (mapcar (lambda (buffer) (buffer-name buffer))
+                                  next-buffers)
+                        next-buffers))))
             ,@(when prev-buffers
-                `((prev-buffers .
-                   ,(mapcar (lambda (entry)
-                              (list (buffer-name (nth 0 entry))
-                                    (if writable
-                                        (marker-position (nth 1 entry))
-                                      (nth 1 entry))
-                                    (if writable
-                                        (marker-position (nth 2 entry))
-                                      (nth 2 entry))))
-                            prev-buffers))))))
+                `((prev-buffers
+                   . ,(if writable
+                          (mapcar (lambda (entry)
+                                    (list (buffer-name (nth 0 entry))
+                                          (marker-position (nth 1 entry))
+                                          (marker-position (nth 2 entry))))
+                                  prev-buffers)
+                        prev-buffers))))))
         (tail
          (when (memq type '(vc hc))
            (let (list)