emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/filechooser 651ce0c440 06/23: Make directories filter w


From: ELPA Syncer
Subject: [elpa] externals/filechooser 651ce0c440 06/23: Make directories filter work in dired
Date: Sun, 4 Feb 2024 12:58:34 -0500 (EST)

branch: externals/filechooser
commit 651ce0c440b64a13141c81fba52f4d0dfd99fba8
Author: Rahguzar <rahguzar@zohomail.eu>
Commit: Rahguzar <rahguzar@zohomail.eu>

    Make directories filter work in dired
    
    Checking (derived-mode-p 'dired-mode) for every file seems
    like the wrong thing to do.
---
 filechooser.el | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/filechooser.el b/filechooser.el
index dcf6c42249..73cb7d35f4 100644
--- a/filechooser.el
+++ b/filechooser.el
@@ -56,7 +56,7 @@ again. If it is the symbol `uniquify', the FILENAME is made 
unique by appedning
 -N to it where N is a positive number. If it is a function, it is called with
 FILENAME and the return value is used as the filename.")
 
-(defvar filechooser-filters `(("Directories" file-directory-p . t)
+(defvar filechooser-filters `(("Directories" filechooser-file-directory-p . t)
                               ("Elisp files" ,(rx ".el" eos))
                               ("Not dot files" ,(rx bos (not ?.))))
   "An alist of (NAME FILTER . BOOL).
@@ -75,6 +75,12 @@ If BOOL is non-nil filter is active by default otherwise it 
is inactive.")
         "Active"
       "Inactive")))
 
+(defun filechooser-file-directory-p (name)
+  "Return NAME is a directory relative to default or current Dired directory."
+    (file-directory-p (if (derived-mode-p 'dired-mode)
+                          (expand-file-name name (dired-current-directory))
+                        name)))
+
 (defun filechooser-toggle-filter (arg)
   "Toggle a filter.
 With prefix ARG toggle multiple filters using `completing-read-multiple'."
@@ -250,7 +256,7 @@ editing session. FILTERS are in the format of 
`filechooser-filters'."
       (progn (dired (or dir default-directory))
              (push overriding-map emulation-mode-map-alists)
              (add-hook 'window-buffer-change-functions apply-filters)
-             (setq filechooser--filters (append filters filechooser-filters))
+             (setq filechooser--filters (append filechooser-filters filters))
              (funcall apply-filters nil)
              (unless (recursive-edit)
                (let ((files))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]