aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordan Wilson2018-10-10 11:45:57 +0100
committerEli Zaretskii2018-11-03 10:30:33 +0200
commit88ef31abd4716fad14889b08686d42ebbb7dc6c0 (patch)
tree13ff61c3c19e8893a1beb0d218886f188f3d105a
parentc9390423d609969193de1ea3228e259e22451719 (diff)
downloademacs-88ef31abd4716fad14889b08686d42ebbb7dc6c0.tar.gz
emacs-88ef31abd4716fad14889b08686d42ebbb7dc6c0.zip
Avoid file-name errors when viewing PDF from Gnus
* lisp/doc-view.el (doc-view-mode): Run the output file name through 'convert-standard-filename', to avoid problems with characters that are not allowed in file names on some systems. (Bug#32989) Copyright-paperwork-exempt: yes
-rw-r--r--lisp/doc-view.el43
1 files changed, 22 insertions, 21 deletions
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 4a4862f8280..6ad47fc792d 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -1772,27 +1772,28 @@ toggle between displaying the document or editing it as text.
1772 (doc-view-make-safe-dir doc-view-cache-directory) 1772 (doc-view-make-safe-dir doc-view-cache-directory)
1773 ;; Handle compressed files, remote files, files inside archives 1773 ;; Handle compressed files, remote files, files inside archives
1774 (setq-local doc-view--buffer-file-name 1774 (setq-local doc-view--buffer-file-name
1775 (cond 1775 (convert-standard-filename
1776 (jka-compr-really-do-compress 1776 (cond
1777 ;; FIXME: there's a risk of name conflicts here. 1777 (jka-compr-really-do-compress
1778 (expand-file-name 1778 ;; FIXME: there's a risk of name conflicts here.
1779 (file-name-nondirectory 1779 (expand-file-name
1780 (file-name-sans-extension buffer-file-name)) 1780 (file-name-nondirectory
1781 doc-view-cache-directory)) 1781 (file-name-sans-extension buffer-file-name))
1782 ;; Is the file readable by local processes? 1782 doc-view-cache-directory))
1783 ;; We used to use `file-remote-p' but it's unclear what it's 1783 ;; Is the file readable by local processes?
1784 ;; supposed to return nil for things like local files accessed 1784 ;; We used to use `file-remote-p' but it's unclear what it's
1785 ;; via `su' or via file://... 1785 ;; supposed to return nil for things like local files accessed
1786 ((let ((file-name-handler-alist nil)) 1786 ;; via `su' or via file://...
1787 (not (and buffer-file-name 1787 ((let ((file-name-handler-alist nil))
1788 (file-readable-p buffer-file-name)))) 1788 (not (and buffer-file-name
1789 ;; FIXME: there's a risk of name conflicts here. 1789 (file-readable-p buffer-file-name))))
1790 (expand-file-name 1790 ;; FIXME: there's a risk of name conflicts here.
1791 (if buffer-file-name 1791 (expand-file-name
1792 (file-name-nondirectory buffer-file-name) 1792 (if buffer-file-name
1793 (buffer-name)) 1793 (file-name-nondirectory buffer-file-name)
1794 doc-view-cache-directory)) 1794 (buffer-name))
1795 (t buffer-file-name))) 1795 doc-view-cache-directory))
1796 (t buffer-file-name))))
1796 (when (not (string= doc-view--buffer-file-name buffer-file-name)) 1797 (when (not (string= doc-view--buffer-file-name buffer-file-name))
1797 (write-region nil nil doc-view--buffer-file-name)) 1798 (write-region nil nil doc-view--buffer-file-name))
1798 1799