GNU bug report logs - #13679
24.2.93; doc-view-mode cannot handle PDFs whose filename contains a percentage sign

Previous Next

Package: emacs;

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


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Elias Pipping <pipping <at> lavabit.com>
To: bug-gnu-emacs <at> gnu.org
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
[Message part 1 (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.