]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix opening directory trees from Filesets menu
authorEli Zaretskii <eliz@gnu.org>
Sat, 16 Dec 2023 11:25:58 +0000 (13:25 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 16 Dec 2023 11:25:58 +0000 (13:25 +0200)
In bug#976, the code was fixed, but the cautious condition in
the original author's code, which catered to invoking
'filelists-open' from the menu-bar menu, was omitted, which made
that invocation, which did work before, broken.
* lisp/filesets.el (filesets-get-filelist): Fix opening directory
trees from the Filesets menu-bar menu.  (Bug#67658)

lisp/filesets.el

index 1b7e6ffa81f8ac56288082586d1a127bc16bf9dc..d00a29c2ebfd6ab83fe9dbe7253e99df1e1ffdb0 100644 (file)
@@ -1653,7 +1653,17 @@ Assume MODE (see `filesets-entry-mode'), if provided."
                                (filesets-entry-get-master entry)))))
                  (cons entry (filesets-ingroup-cache-get entry))))
               (:tree
-                (let* ((dirpatt (filesets-entry-get-tree entry))
+                ;; Warning: ENTRY here could be of at least two
+                ;; differente forms, either
+                ;;    (NAME (:tree DIRECTORY PATTERN))
+                ;; or
+                ;;    (DIRECTORY PATTERN)
+                ;; The latter happens when opening a tree fileset
+                ;; from the Filesets menu.  We need to support both
+                ;; of these forms!
+                (let* ((dirpatt (if (consp (nth 1 entry))
+                                    (filesets-entry-get-tree entry)
+                                  entry))
                        (dir (nth 0 dirpatt))
                        (patt (nth 1 dirpatt))
                        (depth (or (filesets-entry-get-tree-max-level entry)