From 53d4c024e9407cfc884005f9c969f7488bc3ec99 Mon Sep 17 00:00:00 2001 From: Tassilo Horn Date: Mon, 14 Apr 2008 13:18:12 +0000 Subject: [PATCH] * 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. --- lisp/ChangeLog | 6 ++++++ lisp/doc-view.el | 35 +++++++++++++++++++++++++++++------ 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 + * 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) -- 2.39.5