emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cl-assertion error in doc-view


From: martin rudalics
Subject: Re: cl-assertion error in doc-view
Date: Thu, 20 Sep 2012 19:25:50 +0200

> Before that change, when I find some foo.pdf file with emacs -Q, the
> cl-assert triggers because the foo.pdf buffer isn't already displayed
> thus `get-buffer-window-list' returns nil, and `selected-window' returns
> the window I'm in when doing the `C-x C-f foo.pdf'.
>
> Is the change sensible?  At least, it fixes the bug, but the multiple
> windows on the same doc stuff is yours, so feel free to correct it as
> seems fit.  Maybe the bug is somewhere else, though, at least it
> suprises me that when finding a file and the major mode function runs
> the buffer isn't already displayed.  I think it used to be different...

I'd use something like the below instead.

martin

=== modified file 'lisp/doc-view.el'
--- lisp/doc-view.el    2012-09-19 17:54:59 +0000
+++ lisp/doc-view.el    2012-09-20 17:18:44 +0000
@@ -1169,15 +1169,16 @@
 If FORCE is non-nil, start viewing even if the document does not
 have the page we want to view."
   (with-current-buffer buffer
-    (let ((prev-pages doc-view-current-files))
+    (let ((prev-pages doc-view-current-files)
+         (windows (get-buffer-window-list buffer nil t)))
       (setq doc-view-current-files
             (sort (directory-files (doc-view-current-cache-dir) t
                                    "page-[0-9]+\\.png" t)
                   'doc-view-sort))
-      (dolist (win (or (get-buffer-window-list buffer nil t)
-                      (list (let ((w (selected-window)))
-                              (set-window-buffer w buffer)
-                              w))))
+      (unless windows
+       (switch-to-buffer buffer)
+       (setq windows (get-buffer-window-list buffer nil t)))
+      (dolist (win windows)
        (let* ((page (doc-view-current-page win))
               (pagefile (expand-file-name (format "page-%d.png" page)
                                           (doc-view-current-cache-dir))))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]