@@ -44685,7 +44685,9 @@ Complex Configurations
@var{sub-documentation} is a @code{(@var{field-name}
@var{configuration-name})} tuple. @var{field-name} is the name of the
field which takes another configuration record as its value, and
-@var{configuration-name} is the name of that configuration record.
+@var{configuration-name} is the name of that configuration record. The
+same value may be used for multiple @var{field-name}s, in case a field
+accepts different types of configurations.
@var{sub-documentation} is only needed if there are nested configuration
records. For example, the @code{getmail-configuration} record
@@ -7,6 +7,7 @@
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -460,8 +461,12 @@ (define (generate-documentation documentation documentation-name)
(para ,@field-docs)
,@(append-map
generate
- (or (assq-ref sub-documentation field-name)
- '())))))
+ (filter-map
+ (match-lambda
+ ((name config)
+ (and (eq? name field-name)
+ config)))
+ sub-documentation)))))
fields)))))))
(stexi->texi `(*fragment* . ,(generate documentation-name))))