aboutsummaryrefslogtreecommitdiff
path: root/src/args.nim
diff options
context:
space:
mode:
Diffstat (limited to 'src/args.nim')
-rw-r--r--src/args.nim33
1 files changed, 12 insertions, 21 deletions
diff --git a/src/args.nim b/src/args.nim
index b93d5fb..cd778f6 100644
--- a/src/args.nim
+++ b/src/args.nim
@@ -104,13 +104,10 @@ proc splitArgs*(params: seq[string],
let argsResult = toSeq(splitSingle(current[1 .. ^1], optionsWithParameter, next))
let consumedNext = argsResult.map(a => a.consumedNext).foldl(a or b)
let newNext = next.filter(n => not consumedNext)
- when NimVersion >= "1.2":
- return((block:collect(newSeq):
- for x in argsResult:
- (x.key,x.value,ArgumentType.short)
- ), newNext, stdinConsumed, false)
- else:
- return (lc[(x.key, x.value, ArgumentType.short) | (x <- argsResult), Argument], newNext, stdinConsumed, false)
+ return((block:collect(newSeq):
+ for x in argsResult:
+ (x.key,x.value,ArgumentType.short)
+ ), newNext, stdinConsumed, false)
else:
return (@[(current, none(string), ArgumentType.target)], next, stdinConsumed, false)
@@ -143,13 +140,10 @@ proc splitArgs*(params: seq[string],
discard close(0)
discard open("/dev/tty", O_RDONLY)
- when NimVersion >= "1.2":
- collect(newSeq):
- for y in cycle.args:
- for x in y.arg:
- x
- else:
- lc[x | (y <- cycle.args, x <- y.arg), Argument]
+ collect(newSeq):
+ for y in cycle.args:
+ for x in y.arg:
+ x
proc isShort*(arg: Argument): bool = arg.atype == ArgumentType.short
proc isLong*(arg: Argument): bool = arg.atype == ArgumentType.long
@@ -178,13 +172,10 @@ iterator items*(op: OptionPair): OptionKey =
proc filter*(args: seq[Argument], removeMatches: bool, keepTargets: bool,
pairs: varargs[OptionPair]): seq[Argument] =
let pairsSeq = @pairs
- when NimVersion >= "1.2":
- let argsSet = collect(initHashSet):
- for y in pairsSeq:
- for x in y:
- {x}
- else:
- let argsSet = lc[x | (y <- pairsSeq, x <- y), OptionKey].toHashSet
+ let argsSet = collect(initHashSet):
+ for y in pairsSeq:
+ for x in y:
+ {x}
args.filter(arg => (arg.isShort and (removeMatches xor (arg.key, false) in argsSet)) or
(arg.isLong and (removeMatches xor (arg.key, true) in argsSet)) or
(arg.isTarget and keepTargets))