GNU bug report logs -
#13679
24.2.93; doc-view-mode cannot handle PDFs whose filename contains a percentage sign
Previous Next
Reported by: Elias Pipping <pipping <at> lavabit.com>
Date: Sun, 10 Feb 2013 18:04:02 UTC
Severity: normal
Found in version 24.2.93
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#13679: 24.2.93; doc-view-mode cannot handle PDFs whose filename contains a percentage sign
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 13679 <at> debbugs.gnu.org.
--
13679: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13679
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
> 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
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
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
[0001-Escape-percentage-signs.patch (text/x-patch, inline)]
From 2c35f04fc1191878b01b4ab07821e20fdc461511 Mon Sep 17 00:00:00 2001
From: Elias Pipping <pipping <at> exherbo.org>
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
This bug report was last modified 12 years and 105 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.