(dired-get-filename)<declare-function>:
authorJuri Linkov <juri@jurta.org>
Wed, 11 Nov 2009 00:11:40 +0000 (00:11 +0000)
committerJuri Linkov <juri@jurta.org>
Wed, 11 Nov 2009 00:11:40 +0000 (00:11 +0000)
Tell the byte-compiler about dired-get-filename.
(shell-command): In Dired mode, get filename from the current line
as the default value.

etc/TODO
lisp/ChangeLog
lisp/simple.el

index ba7af10..3c5462a 100644 (file)
--- a/etc/TODO
+++ b/etc/TODO
@@ -112,8 +112,6 @@ for users to customize.
 
 ** 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.
index 652bd91..9bc0793 100644 (file)
@@ -1,3 +1,10 @@
+2009-11-11  Juri Linkov  <juri@jurta.org>
+
+       * simple.el (dired-get-filename)<declare-function>:
+       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  <rgm@gnu.org>
 
        * dired.el, hi-lock.el, calendar/cal-menu.el, calendar/calendar.el:
index dbdcfde..07ac2cc 100644 (file)
@@ -2013,6 +2013,7 @@ is run interactively.  A value of nil means that output to stderr and
 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 @@ specifies the value of ERROR-BUFFER."
   (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.