emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 032b051 2/4: Make describe-variable look up the var


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 032b051 2/4: Make describe-variable look up the variable in the current buffer
Date: Sat, 30 Apr 2016 22:17:48 +0000

branch: master
commit 032b05103136e6aa0a9640a3e3fa56fefebf7119
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    Make describe-variable look up the variable in the current buffer
    
    * lisp/help-fns.el (describe-variable): Get the variable
    definition in the buffer we were called from (in case it only
    exists there) (bug#21252).
---
 lisp/help-fns.el |   26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index e2cb9f8..e17586c 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -699,17 +699,23 @@ it is displayed along with the global value."
   (interactive
    (let ((v (variable-at-point))
         (enable-recursive-minibuffers t)
+         (orig-buffer (current-buffer))
         val)
-     (setq val (completing-read (if (symbolp v)
-                                   (format
-                                    "Describe variable (default %s): " v)
-                                 "Describe variable: ")
-                               obarray
-                               (lambda (vv)
-                                  (or (get vv 'variable-documentation)
-                                      (and (boundp vv) (not (keywordp vv)))))
-                               t nil nil
-                               (if (symbolp v) (symbol-name v))))
+     (setq val (completing-read
+                (if (symbolp v)
+                    (format
+                     "Describe variable (default %s): " v)
+                  "Describe variable: ")
+                obarray
+                (lambda (vv)
+                  ;; In case the variable only exists in the buffer
+                  ;; the command we switch back to that buffer before
+                  ;; we examine the variable.
+                  (with-current-buffer orig-buffer
+                    (or (get vv 'variable-documentation)
+                        (and (boundp vv) (not (keywordp vv))))))
+                t nil nil
+                (if (symbolp v) (symbol-name v))))
      (list (if (equal val "")
               v (intern val)))))
   (let (file-name)



reply via email to

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