summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--stdlib/getopts.tl7
1 files changed, 6 insertions, 1 deletions
diff --git a/stdlib/getopts.tl b/stdlib/getopts.tl
index aa6ba4ab..9d39c012 100644
--- a/stdlib/getopts.tl
+++ b/stdlib/getopts.tl
@@ -368,7 +368,12 @@
(defun opthelp-types (opt-desc-list : (*stdout* *stdout*))
(let ((documented (remove-if (op null @1.helptext) opt-desc-list)))
(whenlet ((types (keep-if [andf keywordp (op neq :bool)]
- (uniq (mapcar (usl type) documented)))))
+ (uniq (mapcar (chain (usl type)
+ (ldo match-ecase
+ ((@(or list cumul) @type)
+ @(rec type))
+ (@type type)))
+ documented)))))
(put-line "Type legend:\n")
(each ((ty types))
(iflet ((ln (caseql ty