diff lisp/cus-edit.el @ 53223:1fa5a4fc03e5 multi-tty-base

2003-11-30 Per Abrahamsen <abraham@dina.kvl.dk> * cus-edit.el (custom-add-parent-links): Add documentation links for parent, if the item has none of its own.
author Per Abrahamsen <abraham@dina.kvl.dk>
date Tue, 02 Dec 2003 15:01:52 +0000
parents 695cf19ef79e
children 36b31fc002f2
line wrap: on
line diff
--- a/lisp/cus-edit.el	Mon Dec 01 13:06:41 2003 +0000
+++ b/lisp/cus-edit.el	Tue Dec 02 15:01:52 2003 +0000
@@ -1956,7 +1956,7 @@
 	(type (widget-type widget))
 	(buttons (widget-get widget :buttons))
 	(start (point))
-	found)
+	(parents nil))
     (insert (or initial-string "Parent groups:"))
     (mapatoms (lambda (symbol)
 		(let ((entry (assq name (get symbol 'custom-group))))
@@ -1967,12 +1967,29 @@
 			   :tag (custom-unlispify-tag-name symbol)
 			   symbol)
 			  buttons)
-		    (setq found t)))))
+		    (setq parents (cons symbol parents))))))
+    (and (null (get symbol 'custom-links)) ;No links of its own.
+         (= (length parents) 1)         ;A single parent.
+         (let ((links (get (car parents) 'custom-links)))
+           (when links
+             (insert "\nParent documentation: ")
+             (while links
+               (push (widget-create-child-and-convert widget (car links))
+                     buttons)
+               (setq links (cdr links))
+               (cond ((null links)
+                      (insert ".\n"))
+                     ((null (cdr links))
+                      (if many
+                          (insert ", and ")
+                        (insert " and ")))
+                     (t
+                      (insert ", ")))))))
+    (if parents
+        (insert "\n")
+      (delete-region start (point)))
     (widget-put widget :buttons buttons)
-    (if found
-	(insert "\n")
-      (delete-region start (point)))
-    found))
+    parents))
 
 ;;; The `custom-comment' Widget.