# HG changeset patch # User Juri Linkov # Date 1257898300 0 # Node ID 788a43a6e3c81bf490baf2faa74ef7e947bd5299 # Parent 88b92b3656ae9ec858dce29ab3443c78d6fc3c52 (dired-get-filename): Tell the byte-compiler about dired-get-filename. (shell-command): In Dired mode, get filename from the current line as the default value. diff -r 88b92b3656ae -r 788a43a6e3c8 etc/TODO --- a/etc/TODO Tue Nov 10 21:22:57 2009 +0000 +++ b/etc/TODO Wed Nov 11 00:11:40 2009 +0000 @@ -112,8 +112,6 @@ ** Add function to redraw the tool bar. -** M-! M-n should fetch the buffer-file-name as the default. - ** Redesign the load-history data structure so it can cope better with evaluating definitions of the same function from different files, recording which file the latest definition came from. diff -r 88b92b3656ae -r 788a43a6e3c8 lisp/ChangeLog --- a/lisp/ChangeLog Tue Nov 10 21:22:57 2009 +0000 +++ b/lisp/ChangeLog Wed Nov 11 00:11:40 2009 +0000 @@ -1,3 +1,10 @@ +2009-11-11 Juri Linkov + + * simple.el (dired-get-filename): + Tell the byte-compiler about dired-get-filename. + (shell-command): In Dired mode, get filename from the current line + as the default value. + 2009-11-10 Glenn Morris * dired.el, hi-lock.el, calendar/cal-menu.el, calendar/calendar.el: diff -r 88b92b3656ae -r 788a43a6e3c8 lisp/simple.el --- a/lisp/simple.el Tue Nov 10 21:22:57 2009 +0000 +++ b/lisp/simple.el Wed Nov 11 00:11:40 2009 +0000 @@ -2013,6 +2013,7 @@ stdout will be intermixed in the output stream.") (declare-function mailcap-file-default-commands "mailcap" (files)) +(declare-function dired-get-filename "dired" (&optional localp no-error-if-not-filep)) (defun minibuffer-default-add-shell-commands () "Return a list of all commands associated with the current file. @@ -2136,8 +2137,12 @@ (interactive (list (read-shell-command "Shell command: " nil nil - (and buffer-file-name - (file-relative-name buffer-file-name))) + (let ((filename + (cond + (buffer-file-name) + ((eq major-mode 'dired-mode) + (dired-get-filename nil t))))) + (and filename (file-relative-name filename)))) current-prefix-arg shell-command-default-error-buffer)) ;; Look for a handler in case default-directory is a remote file name.