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
|
;; Command line flag handling. Returns the elements following KEY in
|
||||||
;; ARGUMENTS up to the next argument, or #f if KEY is not 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)
|
(define (flag key arguments)
|
||||||
(cond
|
(cond
|
||||||
((null? arguments)
|
((null? arguments)
|
||||||
@ -777,6 +778,10 @@
|
|||||||
(if (or (null? args) (string-prefix? (car args) "--"))
|
(if (or (null? args) (string-prefix? (car args) "--"))
|
||||||
(reverse acc)
|
(reverse acc)
|
||||||
(loop (cons (car args) acc) (cdr args)))))
|
(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))
|
((string=? "--" (car arguments))
|
||||||
#f)
|
#f)
|
||||||
(else
|
(else
|
||||||
@ -784,6 +789,7 @@
|
|||||||
(assert (equal? (flag "--xxx" '("--yyy")) #f))
|
(assert (equal? (flag "--xxx" '("--yyy")) #f))
|
||||||
(assert (equal? (flag "--xxx" '("--xxx")) '()))
|
(assert (equal? (flag "--xxx" '("--xxx")) '()))
|
||||||
(assert (equal? (flag "--xxx" '("--xxx" "yyy")) '("yyy")))
|
(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" "zzz")))
|
(assert (equal? (flag "--xxx" '("--xxx" "yyy" "zzz" "--")) '("yyy" "zzz")))
|
||||||
(assert (equal? (flag "--xxx" '("--xxx" "yyy" "--" "zzz")) '("yyy")))
|
(assert (equal? (flag "--xxx" '("--xxx" "yyy" "--" "zzz")) '("yyy")))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user