parseopt fix (#11363) [backport]
This commit is contained in:
parent
41b74db218
commit
6b23b2d7df
2 changed files with 4 additions and 2 deletions
|
|
@ -348,6 +348,7 @@ proc next*(p: var OptParser) {.rtl, extern: "npo$1".} =
|
||||||
if i >= p.cmds[p.idx].len and p.idx < p.cmds.len and p.allowWhitespaceAfterColon:
|
if i >= p.cmds[p.idx].len and p.idx < p.cmds.len and p.allowWhitespaceAfterColon:
|
||||||
inc p.idx
|
inc p.idx
|
||||||
i = 0
|
i = 0
|
||||||
|
if p.idx < p.cmds.len:
|
||||||
p.val = TaintedString p.cmds[p.idx].substr(i)
|
p.val = TaintedString p.cmds[p.idx].substr(i)
|
||||||
elif len(p.longNoVal) > 0 and p.key.string notin p.longNoVal and p.idx+1 < p.cmds.len:
|
elif len(p.longNoVal) > 0 and p.key.string notin p.longNoVal and p.idx+1 < p.cmds.len:
|
||||||
p.val = TaintedString p.cmds[p.idx+1]
|
p.val = TaintedString p.cmds[p.idx+1]
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ kind: cmdShortOption key:val -- r:1
|
||||||
kind: cmdShortOption key:val -- r:0
|
kind: cmdShortOption key:val -- r:0
|
||||||
kind: cmdShortOption key:val -- l:
|
kind: cmdShortOption key:val -- l:
|
||||||
kind: cmdShortOption key:val -- r:4
|
kind: cmdShortOption key:val -- r:4
|
||||||
|
kind: cmdLongOption key:val -- debug:
|
||||||
'''
|
'''
|
||||||
joinable: false
|
joinable: false
|
||||||
"""
|
"""
|
||||||
|
|
@ -62,7 +63,7 @@ else:
|
||||||
block:
|
block:
|
||||||
echo "parseoptNoVal"
|
echo "parseoptNoVal"
|
||||||
# test NoVal mode with custom cmdline arguments
|
# test NoVal mode with custom cmdline arguments
|
||||||
var argv = "--left --debug:3 -l -r:2 --debug 2 --debug=1 -r1 -r=0 -lr4"
|
var argv = "--left --debug:3 -l -r:2 --debug 2 --debug=1 -r1 -r=0 -lr4 --debug:"
|
||||||
var p = parseopt.initOptParser(argv,
|
var p = parseopt.initOptParser(argv,
|
||||||
shortNoVal = {'l'}, longNoVal = @["left"])
|
shortNoVal = {'l'}, longNoVal = @["left"])
|
||||||
for kind, key, val in parseopt.getopt(p):
|
for kind, key, val in parseopt.getopt(p):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue