emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 5ff4bfa 1/3: Fix an "empty identifier" problem


From: Dmitry Gutov
Subject: [Emacs-diffs] master 5ff4bfa 1/3: Fix an "empty identifier" problem
Date: Thu, 2 May 2019 18:53:22 -0400 (EDT)

branch: master
commit 5ff4bfaeec8f9c18c7dd0c8479b399b83c1e6fc2
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    Fix an "empty identifier" problem
    
    * lisp/progmodes/xref.el (xref--read-identifier): Abort on empty
    input if there is no default
    (https://lists.gnu.org/archive/html/help-gnu-emacs/2019-05/msg00012.html).
---
 lisp/progmodes/xref.el | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index e5e5972..18e97bd 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -828,20 +828,25 @@ Return an alist of the form ((FILENAME . (XREF ...)) 
...)."
 (defun xref--read-identifier (prompt)
   "Return the identifier at point or read it from the minibuffer."
   (let* ((backend (xref-find-backend))
-         (id (xref-backend-identifier-at-point backend)))
+         (def (xref-backend-identifier-at-point backend)))
     (cond ((or current-prefix-arg
-               (not id)
+               (not def)
                (xref--prompt-p this-command))
-           (completing-read (if id
-                                (format "%s (default %s): "
-                                        (substring prompt 0 (string-match
-                                                             "[ :]+\\'" 
prompt))
-                                        id)
-                              prompt)
-                            (xref-backend-identifier-completion-table backend)
-                            nil nil nil
-                            'xref--read-identifier-history id))
-          (t id))))
+           (let ((id
+                  (completing-read
+                   (if def
+                       (format "%s (default %s): "
+                               (substring prompt 0 (string-match
+                                                    "[ :]+\\'" prompt))
+                               def)
+                     prompt)
+                   (xref-backend-identifier-completion-table backend)
+                   nil nil nil
+                   'xref--read-identifier-history def)))
+             (if (equal id "")
+                 (or def (user-error "There is no defailt identifier"))
+               id)))
+          (t def))))
 
 
 ;;; Commands



reply via email to

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