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


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Elias Pipping <pipping <at> lavabit.com>
Subject: bug#13679: closed (Re: bug#13679: 24.2.93; doc-view-mode cannot
 handle PDFs whose filename contains a percentage sign)
Date: Mon, 11 Feb 2013 19:32:01 +0000
[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)]
From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Elias Pipping <pipping <at> lavabit.com>
Cc: 13679-done <at> debbugs.gnu.org
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
> 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)]
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 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.