# HG changeset patch # User Richard M. Stallman # Date 1062173445 0 # Node ID 5e02293b946b574847d78654f7e9c008f77fc975 # Parent ef170d234e2d8224c243cc752c287be1e7d1aea3 (dired-mouse-find-file-other-window): Use dired-view-command-alist here, as in dired-view-file. (dired-view-command-alist): Use %s to substitute file name. Handle .ps_pages, .eps, .jpg, .gif, .png. diff -r ef170d234e2d -r 5e02293b946b lisp/dired.el --- a/lisp/dired.el Fri Aug 29 16:07:43 2003 +0000 +++ b/lisp/dired.el Fri Aug 29 16:10:45 2003 +0000 @@ -192,6 +192,20 @@ ;; Note this can't simply be run inside function `dired-ls' as the hook ;; functions probably depend on the dired-subdir-alist to be OK. +(defcustom dired-view-command-alist + '(("[.]\\(ps\\|ps_pages\\|eps\\)\\'" . "gv -spartan -color -watch %s") + ("[.]pdf\\'" . "xpdf %s") + ("[.]\\(jpe?g\\|gif\\|png\\)\\'" . "eog %s") + ("[.]dvi\\'" . "xdvi -sidemargin 0.5 -topmargin 1 %s")) + "Alist specifying how to view special types of files. +Each element has the form (REGEXP . SHELL-COMMAND). +When the file name matches REGEXP, `dired-view-file' +invokes SHELL-COMMAND to view the file, processing it through `format'. +Use `%s' in SHELL-COMMAND to specify where to put the file name." + :group 'dired + :type '(alist :key-type regexp :value-type string) + :version "21.4") + ;; Internal variables (defvar dired-marker-char ?* ; the answer is 42 @@ -1392,21 +1406,24 @@ (set-buffer (window-buffer window)) (goto-char pos) (setq file (dired-get-file-for-visit))) - (select-window window) - (find-file-other-window (file-name-sans-versions file t)))) - -(defcustom dired-view-command-alist - '(("[.]ps\\'" . "gv -spartan -color -watch") - ("[.]pdf\\'" . "xpdf") - ("[.]dvi\\'" . "xdvi -sidemargin 0.5 -topmargin 1")) - "Alist specifying how to view special types of files. -Each element has the form (REGEXP . SHELL-COMMAND). -When the file name matches REGEXP, `dired-view-file' -invokes SHELL-COMMAND to view the file, putting the file name -at the end of the command." - :group 'dired - :type '(alist :key-type regexp :value-type string) - :version "21.4") + (if (file-directory-p file) + (or (and (cdr dired-subdir-alist) + (dired-goto-subdir file)) + (progn + (select-window window) + (dired-other-window file))) + (let (cmd) + ;; Look for some other way to view a certain file. + (dolist (elt dired-view-command-alist) + (if (string-match (car elt) file) + (setq cmd (cdr elt)))) + (if cmd + (call-process shell-file-name nil 0 nil + "-c" + (concat (format cmd (shell-quote-argument file)) + " &")) + (select-window window) + (find-file-other-window (file-name-sans-versions file t))))))) (defun dired-view-file () "In Dired, examine a file in view mode, returning to dired when done. @@ -1427,8 +1444,7 @@ (if cmd (call-process shell-file-name nil 0 nil "-c" - (concat cmd " " - (shell-quote-argument file) + (concat (format cmd (shell-quote-argument file)) " &")) (view-file file))))))