Mercurial > emacs
changeset 43130:97ca502aebf5
(file-name-non-special): Add special handling for
file-name-sans-versions, file-name-completion, and
file-name-all-completions.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 06 Feb 2002 15:29:29 +0000 |
parents | 67d86dad5454 |
children | 0c878a7e5de7 |
files | lisp/files.el |
diffstat | 1 files changed, 11 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/files.el Wed Feb 06 15:25:15 2002 +0000 +++ b/lisp/files.el Wed Feb 06 15:29:29 2002 +0000 @@ -3822,17 +3822,18 @@ ;; Get a list of the indices of the args which are file names. (file-arg-indices (cdr (or (assq operation - ;; The first four are special because they + ;; The first five are special because they ;; return a file name. We want to include the /: ;; in the return value. ;; So just avoid stripping it in the first place. '((expand-file-name . nil) + (file-name-directory . nil) + (file-name-as-directory . nil) + (directory-file-name . nil) + (file-name-sans-versions . nil) ;; `identity' means just return the first arg ;; as stripped of its quoting. (substitute-in-file-name . identity) - (file-name-directory . nil) - (file-name-as-directory . nil) - (directory-file-name . nil) (file-name-completion 0 1) (file-name-all-completions 0 1) (rename-file 0 1) @@ -3857,7 +3858,12 @@ (setq file-arg-indices (cdr file-arg-indices)))) (if (eq file-arg-indices 'identity) (car arguments) - (apply operation arguments)))) + (let ((value (apply operation arguments))) + (cond ((memq operation '(file-name-completion)) + (and value (concat "/:" value))) + ((memq operation '(file-name-all-completions)) + (mapcar (lambda (name) (concat "/:" name)) value)) + (t value)))))) (define-key ctl-x-map "\C-f" 'find-file) (define-key ctl-x-map "\C-r" 'find-file-read-only)