diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b6fba5cdea20..84746d2a3250 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2003-11-30 Per Abrahamsen + + * 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 * dired-aux.el (dired-do-query-replace-regexp): diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index f33e56a02aa0..bf92e8df9cfc 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.