summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/cus-edit.el29
2 files changed, 28 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b6fba5cdea2..84746d2a325 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+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.
+
2003-11-30 Richard M. Stallman <rms@gnu.org>
* dired-aux.el (dired-do-query-replace-regexp):
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index f33e56a02aa..bf92e8df9cf 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1956,7 +1956,7 @@ If INITIAL-STRING is non-nil, use that rather than \"Parent groups:\"."
(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 @@ If INITIAL-STRING is non-nil, use that rather than \"Parent groups:\"."
:tag (custom-unlispify-tag-name symbol)
symbol)
buttons)
- (setq found t)))))
- (widget-put widget :buttons buttons)
- (if found
- (insert "\n")
+ (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)))
- found))
+ (widget-put widget :buttons buttons)
+ parents))
;;; The `custom-comment' Widget.