From e715d9b46f8821f6e7e1469a3e1faa1df2c2d1a9 Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Mon, 14 Nov 2005 23:19:42 +0000 Subject: [PATCH] (help-make-xrefs, help-xref-on-pp, help-xref-interned, help-follow): Make hyperlinks for variables that are unbound, but have a non-nil variable-documentation property. --- lisp/help-mode.el | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/lisp/help-mode.el b/lisp/help-mode.el index a2e7fb88663..b7cea179aea 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -384,8 +384,9 @@ that." (if sym (cond ((match-string 3) ; `variable' &c - (and (boundp sym) ; `variable' doesn't ensure + (and (or (boundp sym) ; `variable' doesn't ensure ; it's actually bound + (get sym 'variable-documentation)) (help-xref-button 8 'help-variable sym))) ((match-string 4) ; `function' &c (and (fboundp sym) ; similarly @@ -406,12 +407,15 @@ that." (facep sym) (save-match-data (looking-at "[ \t\n]+face\\W"))) (help-xref-button 8 'help-face sym)) - ((and (boundp sym) (fboundp sym)) + ((and (or (boundp sym) + (get sym 'variable-documentation)) + (fboundp sym)) ;; We can't intuit whether to use the ;; variable or function doc -- supply both. (help-xref-button 8 'help-symbol sym)) ((and - (boundp sym) + (or (boundp sym) + (get sym 'variable-documentation)) (or (documentation-property sym 'variable-documentation) @@ -518,7 +522,10 @@ See `help-make-xrefs'." ((or (memq sym '(t nil)) (keywordp sym)) nil) - ((and sym (boundp sym)) + ((and sym + (or (boundp sym) + (get sym + 'variable-documentation))) 'help-variable)))) (when type (help-xref-button 1 type sym))) (goto-char (match-end 1))) @@ -542,7 +549,8 @@ help buffer." ;; Don't record the current entry in the stack. (setq help-xref-stack-item nil) (describe-function symbol))) - (sdoc (when (boundp symbol) + (sdoc (when (or (boundp symbol) + (get symbol 'variable-documentation)) ;; Don't record the current entry in the stack. (setq help-xref-stack-item nil) (describe-variable symbol)))) @@ -639,7 +647,9 @@ For the cross-reference format, see `help-make-xrefs'." (buffer-substring (point) (progn (skip-syntax-forward "w_") (point))))))) - (when (or (boundp sym) (fboundp sym) (facep sym)) + (when (or (boundp sym) + (get sym 'variable-documentation) + (fboundp sym) (facep sym)) (help-do-xref pos #'help-xref-interned (list sym)))))) -- 2.39.2