changeset 52369:5e02293b946b

(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.
author Richard M. Stallman <rms@gnu.org>
date Fri, 29 Aug 2003 16:10:45 +0000
parents ef170d234e2d
children d3fa53727e82
files lisp/dired.el
diffstat 1 files changed, 33 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- 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))))))