summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/doc-view.el35
2 files changed, 35 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index bd495063f65..ceec5796399 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,11 @@
2008-04-14 Tassilo Horn <tassilo@member.fsf.org>
+ * doc-view.el (doc-view-dvipdf-program): New variable.
+ (doc-view-dvipdfm-program): Mention doc-view-dvipdf-program.
+ (doc-view-mode-p): Check for doc-view-dvipdf-program as
+ alternative for doc-view-dvipdfm-program.
+ (doc-view-dvi->pdf): Prefer dvipdf over dvipdfm.
+
* doc-view.el (doc-view-start-process): Don't set
default-directory to "~/" if the current value is valid. This
broke PS files that run other files in the same directory.
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 942e3521d27..718040a8fab 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -172,7 +172,21 @@ Higher values result in larger images."
"Program to convert DVI files to PDF.
DVI file will be converted to PDF before the resulting PDF is
-converted to PNG."
+converted to PNG.
+
+If this and `doc-view-dvipdf-program' are set,
+`doc-view-dvipdf-program' will be preferred."
+ :type 'file
+ :group 'doc-view)
+
+(defcustom doc-view-dvipdf-program (executable-find "dvipdf")
+ "Program to convert DVI files to PDF.
+
+DVI file will be converted to PDF before the resulting PDF is
+converted to PNG.
+
+If this and `doc-view-dvipdfm-program' are set,
+`doc-view-dvipdf-program' will be preferred."
:type 'file
:group 'doc-view)
@@ -509,8 +523,10 @@ Image types are symbols like `dvi', `postscript' or `pdf'."
(cond
((eq type 'dvi)
(and (doc-view-mode-p 'pdf)
- doc-view-dvipdfm-program
- (executable-find doc-view-dvipdfm-program)))
+ (or (and doc-view-dvipdf-program
+ (executable-find doc-view-dvipdf-program))
+ (and doc-view-dvipdfm-program
+ (executable-find doc-view-dvipdfm-program)))))
((or (eq type 'postscript) (eq type 'ps) (eq type 'eps)
(eq type 'pdf))
(and doc-view-ghostscript-program
@@ -574,9 +590,16 @@ Should be invoked when the cached images aren't up-to-date."
(defun doc-view-dvi->pdf (dvi pdf callback)
"Convert DVI to PDF asynchronously and call CALLBACK when finished."
- (doc-view-start-process "dvi->pdf" doc-view-dvipdfm-program
- (list "-o" pdf dvi)
- callback))
+ ;; Prefer dvipdf over dvipdfm, because the latter has problems if the DVI
+ ;; references and includes other PS files.
+ (if (and doc-view-dvipdf-program
+ (executable-find doc-view-dvipdf-program))
+ (doc-view-start-process "dvi->pdf" doc-view-dvipdf-program
+ (list dvi pdf)
+ callback)
+ (doc-view-start-process "dvi->pdf" doc-view-dvipdfm-program
+ (list "-o" pdf dvi)
+ callback)))
(defun doc-view-pdf/ps->png (pdf-ps png)