summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/help-fns.el15
1 files changed, 9 insertions, 6 deletions
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 666583db72c..c8f078cb852 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -1024,12 +1024,15 @@ it is displayed along with the global value."
(format-prompt "Describe variable" (and (symbolp v) v))
#'help--symbol-completion-table
(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))))))
+ (or (get vv 'variable-documentation)
+ (and (not (keywordp vv))
+ ;; Since the variable may only exist in the
+ ;; original buffer, we have to look for it
+ ;; there.
+ (condition-case nil
+ (buffer-local-value vv orig-buffer)
+ (:success t)
+ (void-variable nil)))))
t nil nil
(if (symbolp v) (symbol-name v))))
(list (if (equal val "")