From 7aa5056b574a4bf05a2cbf629f173e6d94e125da Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Thu, 8 Nov 2018 00:42:28 +0200 Subject: [PATCH] * lisp/vc/log-view.el: Better error handling (bug#33295). * lisp/vc/log-view.el (log-view-find-revision) (log-view-annotate-version): Add condition to signal an error when log-view-vc-fileset contains a directory. Use user-error instead of error. * lisp/dired.el (dired-get-file-for-visit): * lisp/locate.el (locate-do-setup): Use user-error instead of error. --- lisp/dired.el | 2 +- lisp/locate.el | 4 ++-- lisp/vc/log-view.el | 14 +++++++++----- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lisp/dired.el b/lisp/dired.el index f2f2b76eb77..cbd85fed91c 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -2219,7 +2219,7 @@ directory in another window." (let ((raw (dired-get-filename nil t)) file-name) (if (null raw) - (error "No file on this line")) + (user-error "No file on this line")) (setq file-name (file-name-sans-versions raw t)) (if (file-exists-p file-name) file-name diff --git a/lisp/locate.el b/lisp/locate.el index d2e640e8849..81e9696a0d8 100644 --- a/lisp/locate.el +++ b/lisp/locate.el @@ -499,9 +499,9 @@ do not work in subdirectories. (progn (kill-buffer locate-buffer-name) (if locate-current-filter - (error "Locate: no match for %s in database using filter %s" + (user-error "Locate: no match for %s in database using filter %s" search-string locate-current-filter) - (error "Locate: no match for %s in database" search-string)))) + (user-error "Locate: no match for %s in database" search-string)))) (locate-insert-header search-string) diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el index 6ff50dcde5f..bfb31ccdab8 100644 --- a/lisp/vc/log-view.el +++ b/lisp/vc/log-view.el @@ -217,7 +217,7 @@ If it is nil, `log-view-toggle-entry-display' does nothing.") The match group number 1 should match the file name itself.") (defvar log-view-per-file-logs t - "Set if to t if the logs are shown one file at a time.") + "Set to t if the logs are shown one file at a time.") (defvar log-view-message-re (concat "^\\(?:revision \\(?1:[.0-9]+\\)\\(?:\t.*\\)?" ; RCS and CVS. @@ -517,8 +517,10 @@ Works like `end-of-defun'." If called interactively, visit the version at point." (interactive "d") (unless log-view-per-file-logs - (when (> (length log-view-vc-fileset) 1) - (error "Multiple files shown in this buffer, cannot use this command here"))) + (when (or (> (length log-view-vc-fileset) 1) + (null (car log-view-vc-fileset)) + (file-directory-p (car log-view-vc-fileset))) + (user-error "Multiple files shown in this buffer, cannot use this command here"))) (save-excursion (goto-char pos) (switch-to-buffer (vc-find-revision (if log-view-per-file-logs @@ -561,8 +563,10 @@ If called interactively, visit the version at point." If called interactively, annotate the version at point." (interactive "d") (unless log-view-per-file-logs - (when (> (length log-view-vc-fileset) 1) - (error "Multiple files shown in this buffer, cannot use this command here"))) + (when (or (> (length log-view-vc-fileset) 1) + (null (car log-view-vc-fileset)) + (file-directory-p (car log-view-vc-fileset))) + (user-error "Multiple files shown in this buffer, cannot use this command here"))) (save-excursion (goto-char pos) (vc-annotate (if log-view-per-file-logs -- 2.39.5