summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2003-08-29 16:10:45 +0000
committerRichard M. Stallman <rms@gnu.org>2003-08-29 16:10:45 +0000
commit55a87770f5a9fa72eb58405615b6a5dc3d078d7f (patch)
treeda245acf11d26870574efdbcf2bca23c559733a5 /lisp
parent508f27a0e807b81a5f29a63392a2a47fc20890ad (diff)
downloademacs-55a87770f5a9fa72eb58405615b6a5dc3d078d7f.tar.gz
(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.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/dired.el50
1 files changed, 33 insertions, 17 deletions
diff --git a/lisp/dired.el b/lisp/dired.el
index e01299f5eba..b4c0dda9ed2 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -192,6 +192,20 @@ with the buffer narrowed to the listing."
;; 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 @@ Creates a buffer if necessary."
(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 @@ see `dired-view-command-alist'. Otherwise, display it in another buffer."
(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))))))