From 663029ce4dd98774ed0cd5888741a9658758bbc6 Mon Sep 17 00:00:00 2001 From: Abhiseck Paira Date: Fri, 1 Jul 2022 20:49:26 +0530 Subject: ui: Recognize --help and --version when other arguments follow. From 881446873325df909f0b9779a8b347dee276f2c9 Mon Sep 17 00:00:00 2001 From: Abhiseck Paira Date: Fri, 1 Jul 2022 20:00:57 +0530 Subject: [PATCH] fix(ui): recognize -h when it's 1st arg in a multi arg command line When shroud is called with multiple arguments with -h (or --version) as the first argument, it fails to recognize -h (or --version) and prints "unrecognized option '-h'" in the shell. For example following command would not print help information: $ shroud -h list instead shroud complains that -h is an unrecognized option. Change the pattern in `match' macro call in the function `shroud-main' so that when -h (or --version) is first argument, it is recognized and appropriate action is invoked. Rest of the arguments are discarded. * shroud/ui.scm (shroud-main): Modify pattern in `match' macro call to match "-h", "--help" (or "--version") when it's the first argument in a multiple argument command line. Discard the rest of the arguments. --- shroud/ui.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/shroud/ui.scm b/shroud/ui.scm index 51cb412..7f22fd1 100644 --- a/shroud/ui.scm +++ b/shroud/ui.scm @@ -153,9 +153,13 @@ ARGS is the list of arguments received by the 'throw' handler." (define (shroud-main . args) (match args (() (show-usage)) - ((or ("-h") ("--help")) + ;; Match if first argument is "-h" or "--help", ignoring the rest + ;; of the arguments. + (((or "-h" "--help") . _) (show-help)) - (("--version") + ;; Match if first argument is "--version", ignoring the rest of + ;; the arguments. + (("--version" . _) (show-version-and-exit)) (((? option? opt) _ ...) (format (current-error-port) "shroud: unrecognized option '~a'~%" opt)) -- cgit v1.2.3