emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

dired-read-dir-and-switches (was: FFAP)


From: Juri Linkov
Subject: dired-read-dir-and-switches (was: FFAP)
Date: Mon, 09 Nov 2009 12:30:57 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (x86_64-pc-linux-gnu)

Similar to `find-file-read-args' for file-reading functions,
the following patch does the same for directory-reading functions.
It modifies `dired-read-dir-and-switches' to allow it guessing
the default value.

Index: lisp/dired.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/dired.el,v
retrieving revision 1.437
diff -c -r1.437 dired.el
*** lisp/dired.el       8 Nov 2009 00:32:22 -0000       1.437
--- lisp/dired.el       9 Nov 2009 10:29:09 -0000
***************
*** 598,605 ****
            (if (next-read-file-uses-dialog-p)
                (read-directory-name (format "Dired %s(directory): " str)
                                     nil default-directory nil)
!             (let ((default (and buffer-file-name
!                                 (abbreviate-file-name buffer-file-name))))
                (minibuffer-with-setup-hook
                    (lambda () (setq minibuffer-default default))
                  (read-file-name (format "Dired %s(directory): " str)
--- 598,639 ----
            (if (next-read-file-uses-dialog-p)
                (read-directory-name (format "Dired %s(directory): " str)
                                     nil default-directory nil)
!             (let ((default
!                     (cond
!                      ((eq major-mode 'dired-mode)
!                       (let ((filename (dired-get-filename nil t)))
!                         (when filename
!                           (if (file-directory-p filename)
!                               (file-name-as-directory
!                                (abbreviate-file-name filename))
!                             (abbreviate-file-name filename)))))
!                      (buffer-file-name
!                       (abbreviate-file-name buffer-file-name))))
!                   (file-at-point
!                    (cond ((fboundp 'ffap-guesser)
!                           ;; Most code from `dired-at-point-prompter'
!                           (let ((guess (ffap-guesser)))
!                             (setq guess
!                                   (if (or (not guess)
!                                           (and (fboundp 'ffap-url-p)
!                                                (ffap-url-p guess))
!                                           (and (fboundp 'ffap-file-remote-p)
!                                                (ffap-file-remote-p guess)))
!                                       guess
!                                     (abbreviate-file-name
!                                      (expand-file-name guess))))
!                             (when guess
!                               (if (file-directory-p guess)
!                                   (file-name-as-directory guess)
!                                 guess))))
!                          ;; ((fboundp 'thing-at-point)
!                          ;;  (thing-at-point 'filename))
!                          )))
!               (when file-at-point
!                 (setq default
!                       (delq nil (delete "" (delete-dups
!                                             (list file-at-point
!                                                   default))))))
                (minibuffer-with-setup-hook
                    (lambda () (setq minibuffer-default default))
                  (read-file-name (format "Dired %s(directory): " str)

-- 
Juri Linkov
http://www.jurta.org/emacs/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]