# HG changeset patch # User Richard M. Stallman # Date 1054717365 0 # Node ID b53bffc0cbaf99d65aa9fac92df93f5f3d992e60 # Parent 77bc7a2e6beff991b7580ec6a8235c31c5d66983 (dired-get-filename): Err for . and .. in usual case. (dired-get-file-for-visit): Specify no-error to dired-get-filename, and check for real errors here. (dired-unmark-all-files): Specify no-error to dired-get-filename. diff -r 77bc7a2e6bef -r b53bffc0cbaf lisp/dired.el --- a/lisp/dired.el Wed Jun 04 09:00:22 2003 +0000 +++ b/lisp/dired.el Wed Jun 04 09:02:45 2003 +0000 @@ -1350,7 +1350,12 @@ (defun dired-get-file-for-visit () "Get the current line's file name, with an error if file does not exist." (interactive) - (let ((file-name (file-name-sans-versions (dired-get-filename) t))) + ;; We pass t for second arg so that we don't get error for `.' and `..'. + (let ((raw (dired-get-filename nil t)) + file-name) + (if (null raw) + (error "No file on this line")) + (setq file-name (file-name-sans-versions raw t)) (if (file-exists-p file-name) file-name (if (file-symlink-p file-name) @@ -1482,6 +1487,11 @@ (cond ((null file) nil) + ((and (not no-error-if-not-filep) + (save-excursion + (beginning-of-line) + (looking-at dired-re-dir))) + (error "Cannot operate on `.' or `..'")) ((eq localp 'verbatim) file) ((and (eq localp 'no-dir) already-absolute) @@ -2658,8 +2668,10 @@ (re-search-forward dired-re-mark nil t) (search-forward string nil t)) (if (or (not arg) - (dired-query 'query "Unmark file `%s'? " - (dired-get-filename t))) + (let ((file (dired-get-filename t t))) + (and file + (dired-query 'query "Unmark file `%s'? " + file)))) (progn (subst-char-in-region (1- (point)) (point) (preceding-char) ?\ ) (setq count (1+ count)))))