made prelude-open-with work in dired mode

This commit is contained in:
Daniel Wu 2014-05-06 05:15:18 -04:00
parent 0c93a1c542
commit 7f6969cc3b

View file

@ -37,17 +37,22 @@
(defun prelude-open-with (arg) (defun prelude-open-with (arg)
"Open visited file in default external program. "Open visited file in default external program.
When in dired mode, open file under the cursor.
With a prefix ARG always prompt for command to use." With a prefix ARG always prompt for command to use."
(interactive "P") (interactive "P")
(when buffer-file-name (let ((current-file-name
(if (eq major-mode 'dired-mode)
(dired-get-file-for-visit)
buffer-file-name)))
(when current-file-name
(start-process "prelude-open-with-process" (start-process "prelude-open-with-process"
"*prelude-open-with-output*" "*prelude-open-with-output*"
(cond (cond
((and (not arg) (eq system-type 'darwin)) "open") ((and (not arg) (eq system-type 'darwin)) "open")
((and (not arg) (member system-type '(gnu gnu/linux gnu/kfreebsd))) "xdg-open") ((and (not arg) (member system-type '(gnu gnu/linux gnu/kfreebsd))) "xdg-open")
(t (read-shell-command "Open current file with: "))) (t (read-shell-command "Open current file with: ")))
(shell-quote-argument buffer-file-name)))) (shell-quote-argument current-file-name)))))
(defun prelude-buffer-mode (buffer-or-name) (defun prelude-buffer-mode (buffer-or-name)
"Retrieve the `major-mode' of BUFFER-OR-NAME." "Retrieve the `major-mode' of BUFFER-OR-NAME."