From e9407052f9beb827d98b8a2f1c134935f660e9cd Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 4 Jun 2003 09:02:55 +0000 Subject: [PATCH] (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. --- lisp/ChangeLog | 12 ++++++++++++ lisp/dired.el | 18 +++++++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b2c79eb4e6e..6695307260b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2003-06-04 Richard M. Stallman + + * dired.el (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. + + * buff-menu.el (list-buffers-noselect): Use window-inside-edges + to compute the number of offset spaces. + (list-buffers-noselect): Use Buffer-menu-buffer+size to + indent the dashes properly. Put some in fixed-pitch. + 2003-06-04 Lars Hansen * desktop.el (desktop-create-buffer): Undo last change. diff --git a/lisp/dired.el b/lisp/dired.el index 5397bad8b7c..02841adcb13 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -1350,7 +1350,12 @@ Creates a buffer if necessary." (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 @@ Optional arg NO-ERROR-IF-NOT-FILEP means return nil if no filename on (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 @@ Type SPC or `y' to unmark one file, DEL or `n' to skip to next, (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))))) -- 2.39.2