[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/denote 96e5161051 1/5: Fix: Handle no-matching-files in
From: |
ELPA Syncer |
Subject: |
[elpa] externals/denote 96e5161051 1/5: Fix: Handle no-matching-files in denote-sort-dired |
Date: |
Mon, 11 Dec 2023 04:02:09 -0500 (EST) |
branch: externals/denote
commit 96e51610510dfe033b3b8c240d8f07c1bd95f44d
Author: Vedang Manerikar <ved.manerikar@gmail.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>
Fix: Handle no-matching-files in denote-sort-dired
Where there are no files matching the input regex,
`denote-sort-get-directory-files` returns nil. Passing this to `dired`
throws an error:
```
(file-missing "Reading directory" "No such file or directory"
".../denote/Testing Dired")
```
This commit handles the empty case by returning an appropriate error
message.
---
denote-sort.el | 39 ++++++++++++++++++++-------------------
1 file changed, 20 insertions(+), 19 deletions(-)
diff --git a/denote-sort.el b/denote-sort.el
index ac3fed55c1..c2face4642 100644
--- a/denote-sort.el
+++ b/denote-sort.el
@@ -174,26 +174,27 @@ a non-nil value, respectively."
(denote-sort-component-prompt)
(y-or-n-p "Reverse sort? ")))
(let* ((default-directory (denote-directory))
- ;; NOTE 2023-12-04: Passing the FILES-MATCHING-REGEXP here produces
- ;; an error if the regexp contains a wildcard for a directory. I
- ;; can reproduce this in emacs -Q and am not sure if it is a bug.
- ;; Anyway, I will report it upstream, but even if it is fixed we
- ;; cannot use it for now (whatever fix will be available for Emacs
- ;; 30+).
- ;;
- ;; (format "Denote sort `%s' by `%s'" files-matching-regexp
sort-by-component)
+ ;; NOTE 2023-12-04: Passing the FILES-MATCHING-REGEXP as
+ ;; buffer-name produces an error if the regexp contains a
+ ;; wildcard for a directory. I can reproduce this in emacs -Q
+ ;; and am not sure if it is a bug. Anyway, I will report it
+ ;; upstream, but even if it is fixed we cannot use it for now
+ ;; (whatever fix will be available for Emacs 30+).
+ (denote-sort-dired-buffer-name (format "Denote sort `%s' by `%s'"
files-matching-regexp sort-by-component))
(buffer-name (format "Denote sort by `%s' at %s" sort-by-component
(format-time-string "%T")))
- (files (denote-sort-get-directory-files files-matching-regexp
sort-by-component reverse))
- (dired-buffer (dired (cons buffer-name (mapcar #'file-relative-name
files)))))
- (setq denote-sort--dired-buffer dired-buffer)
- (with-current-buffer dired-buffer
- (setq-local revert-buffer-function
- (lambda (&rest _)
- (kill-buffer dired-buffer)
- (denote-sort-dired files-matching-regexp sort-by-component
reverse)))))
- ;; Because of the above NOTE, I am printing a message. Not what I
- ;; want, but it is better than nothing...
- (message "Denote sort `%s' by `%s'" files-matching-regexp sort-by-component))
+ (files (denote-sort-get-directory-files files-matching-regexp
sort-by-component reverse)))
+ (if (car files)
+ (let ((dired-buffer (dired (cons buffer-name (mapcar
#'file-relative-name files)))))
+ (setq denote-sort--dired-buffer dired-buffer)
+ (with-current-buffer dired-buffer
+ (setq-local revert-buffer-function
+ (lambda (&rest _)
+ (kill-buffer dired-buffer)
+ (denote-sort-dired files-matching-regexp
sort-by-component reverse))))
+ ;; Because of the above NOTE, I am printing a message. Not what I
+ ;; want, but it is better than nothing...
+ (message denote-sort-dired-buffer-name))
+ (message "No matching files for %s" denote-sort-dired-buffer-name))))
(provide 'denote-sort)
;;; denote-sort.el ends here