mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
gpgscm: Improve option parsing.
* tests/gpgscm/tests.scm (flag): Accept arguments of the form '--foo=bar'. Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
parent
6639aedaee
commit
e555e7ed7d
@ -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")))
|
||||
|
Loading…
x
Reference in New Issue
Block a user