diff lisp/help-mode.el @ 66874:2f22c8af038b

(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.
author Luc Teirlinck <teirllm@auburn.edu>
date Mon, 14 Nov 2005 23:19:42 +0000
parents bfd70a868157
children c68ea88eaa16
line wrap: on
line diff
--- a/lisp/help-mode.el	Mon Nov 14 23:16:26 2005 +0000
+++ b/lisp/help-mode.el	Mon Nov 14 23:19:42 2005 +0000
@@ -384,8 +384,9 @@
                     (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 @@
                            (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 @@
 				     ((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 @@
 		  ;; 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 @@
 	      (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))))))