diff options
-rw-r--r-- | lisp/help-fns.el | 15 |
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 "") |