bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#13679: 24.2.93; doc-view-mode cannot handle PDFs whose filename cont


From: Elias Pipping
Subject: bug#13679: 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 <pipping@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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]