# HG changeset patch # User Richard M. Stallman # Date 1013009369 0 # Node ID 97ca502aebf5bd4842c7a1e3730f193abf45138a # Parent 67d86dad54545147e4c9c1a0aeaf306cce304f16 (file-name-non-special): Add special handling for file-name-sans-versions, file-name-completion, and file-name-all-completions. diff -r 67d86dad5454 -r 97ca502aebf5 lisp/files.el --- 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)