emacs-diffs
[Top][All Lists]
Advanced

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

master 94b6b0b 1/3: Merge from origin/emacs-27


From: Glenn Morris
Subject: master 94b6b0b 1/3: Merge from origin/emacs-27
Date: Sun, 5 Apr 2020 10:55:17 -0400 (EDT)

branch: master
commit 94b6b0b5c5544d46a89915c94a83e2f4a224d044
Merge: a32c55b ac3da1d
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Merge from origin/emacs-27
    
    ac3da1dd96 Handle project--files-in-directory finding no files better
    650a664ccd Let imenu to work on the menu bar when its list is a singl...
---
 lisp/imenu.el             | 14 +++++++++-----
 lisp/progmodes/project.el |  2 ++
 lisp/progmodes/xref.el    |  1 +
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/lisp/imenu.el b/lisp/imenu.el
index fb8b3de..1949f2f 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -911,11 +911,15 @@ to `imenu-update-menubar'.")
         (setq index-alist (imenu--split-submenus index-alist))
        (let* ((menu (imenu--split-menu index-alist
                                         (buffer-name)))
-               (menu1 (imenu--create-keymap (car menu)
-                                           (cdr (if (< 1 (length (cdr menu)))
-                                                    menu
-                                                  (car (cdr menu))))
-                                           'imenu--menubar-select)))
+               (menu1 (imenu--create-keymap
+                       (car menu)
+                      (cdr (if (or (< 1 (length (cdr menu)))
+                                    ;; Have we a non-nested single entry?
+                                    (atom (cdadr menu))
+                                    (atom (cadadr menu)))
+                               menu
+                             (car (cdr menu))))
+                      'imenu--menubar-select)))
          (setcdr imenu--menubar-keymap (cdr menu1)))))))
 
 (defun imenu--menubar-select (item)
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index f467868..1f4cbe9 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -480,6 +480,8 @@ pattern to search for."
      nil)))
 
 (defun project--find-regexp-in-files (regexp files)
+  (unless files
+    (user-error "Empty file list"))
   (let ((xrefs (xref-matches-in-files regexp files)))
     (unless xrefs
       (user-error "No matches for: %s" regexp))
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 1a34456..c36a9bd 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -1232,6 +1232,7 @@ IGNORES is a list of glob patterns for files to ignore."
   "Find all matches for REGEXP in FILES.
 Return a list of xref values.
 FILES must be a list of absolute file names."
+  (cl-assert (consp files))
   (pcase-let*
       ((output (get-buffer-create " *project grep output*"))
        (`(,grep-re ,file-group ,line-group . ,_) (car grep-regexp-alist))



reply via email to

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