diff options
| author | Jordan Wilson | 2018-10-10 11:45:57 +0100 |
|---|---|---|
| committer | Eli Zaretskii | 2018-11-03 10:30:33 +0200 |
| commit | 88ef31abd4716fad14889b08686d42ebbb7dc6c0 (patch) | |
| tree | 13ff61c3c19e8893a1beb0d218886f188f3d105a | |
| parent | c9390423d609969193de1ea3228e259e22451719 (diff) | |
| download | emacs-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.el | 43 |
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 | ||