diff options
author | Justus Winter <justus@g10code.com> | 2017-06-19 16:29:08 +0200 |
---|---|---|
committer | Justus Winter <justus@g10code.com> | 2017-06-19 16:51:31 +0200 |
commit | e555e7ed7de20fbbb1e3b005c32e292f29cc4a58 (patch) | |
tree | 2023122ac3574ee7bf5d37f8bfff9516b428783f /tests | |
parent | gpgscm: Improve error handling of foreign functions. (diff) | |
download | gnupg2-e555e7ed7de20fbbb1e3b005c32e292f29cc4a58.tar.xz gnupg2-e555e7ed7de20fbbb1e3b005c32e292f29cc4a58.zip |
gpgscm: Improve option parsing.
* tests/gpgscm/tests.scm (flag): Accept arguments of the form
'--foo=bar'.
Signed-off-by: Justus Winter <justus@g10code.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/gpgscm/tests.scm | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/tests/gpgscm/tests.scm b/tests/gpgscm/tests.scm index eee8ce56f..b66240d2c 100644 --- a/tests/gpgscm/tests.scm +++ b/tests/gpgscm/tests.scm @@ -766,7 +766,8 @@ ;; Command line flag handling. Returns the elements following KEY in ;; ARGUMENTS up to the next argument, or #f if KEY is not in -;; ARGUMENTS. +;; ARGUMENTS. If 'KEY=XYZ' is encountered, then the singleton list +;; containing 'XYZ' is returned. (define (flag key arguments) (cond ((null? arguments) @@ -777,6 +778,10 @@ (if (or (null? args) (string-prefix? (car args) "--")) (reverse acc) (loop (cons (car args) acc) (cdr args))))) + ((string-prefix? (car arguments) (string-append key "=")) + (list (substring (car arguments) + (+ (string-length key) 1) + (string-length (car arguments))))) ((string=? "--" (car arguments)) #f) (else @@ -784,6 +789,7 @@ (assert (equal? (flag "--xxx" '("--yyy")) #f)) (assert (equal? (flag "--xxx" '("--xxx")) '())) (assert (equal? (flag "--xxx" '("--xxx" "yyy")) '("yyy"))) +(assert (equal? (flag "--xxx" '("--xxx=foo" "yyy")) '("foo"))) (assert (equal? (flag "--xxx" '("--xxx" "yyy" "zzz")) '("yyy" "zzz"))) (assert (equal? (flag "--xxx" '("--xxx" "yyy" "zzz" "--")) '("yyy" "zzz"))) (assert (equal? (flag "--xxx" '("--xxx" "yyy" "--" "zzz")) '("yyy"))) |