--- Begin Message ---
Subject: |
24.2.93; doc-view-mode cannot handle PDFs whose filename contains a percentage sign |
Date: |
Sun, 10 Feb 2013 18:59:05 +0100 |
Hi,
doc-view-mode currently calls either ghostscript or mupdf's mudraw to
render PDFs to PNG images. Both tools interpret a percentage sign in
the name of the target file as a format instruction. Since doc-view's
cache directory is named after the input PDF, whose name can contain
percentage signs, it, too, can contain percentage signs.
As a result, doc-view mode cannot currently handle PDF files whose name
contains a percentage sign. I've attached the simplest fix I could think
of.
Best regards,
Elias Pipping
>From 2c35f04fc1191878b01b4ab07821e20fdc461511 Mon Sep 17 00:00:00 2001
From: Elias Pipping <address@hidden>
Date: Sun, 10 Feb 2013 18:51:10 +0100
Subject: [PATCH] Escape percentage signs
---
lisp/doc-view.el | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index e7d1ebc..18e17bd 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -675,6 +675,9 @@ at the top edge of the page moves to the previous page."
(format "Unable to use temporary directory %s: %s"
dir (mapconcat 'identity (cdr error) " "))))))))
+(defun doc-view-escape-percentage-sign (str)
+ (replace-regexp-in-string "%" "_" str))
+
(defun doc-view-current-cache-dir ()
"Return the directory where the png files of the current doc should be saved.
It's a subdirectory of `doc-view-cache-directory'."
@@ -686,7 +689,8 @@ It's a subdirectory of `doc-view-cache-directory'."
(setq doc-view-current-cache-dir
(file-name-as-directory
(expand-file-name
- (concat (file-name-nondirectory doc-view-buffer-file-name)
+ (concat (doc-view-escape-percentage-sign
+ (file-name-nondirectory doc-view-buffer-file-name))
"-"
(let ((file doc-view-buffer-file-name))
(with-temp-buffer
--
1.8.1.2
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#13679: 24.2.93; doc-view-mode cannot handle PDFs whose filename contains a percentage sign |
Date: |
Mon, 11 Feb 2013 14:30:40 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
> I've attached the simplest fix I could think of.
Looks good, thank you, installed in a slightly simpler form (using
subst-char-in-string and without defining a separate function for it).
Stefan
--- End Message ---