diff options
Diffstat (limited to 'src/deps/zig-clap/clap/streaming.zig')
-rw-r--r-- | src/deps/zig-clap/clap/streaming.zig | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/deps/zig-clap/clap/streaming.zig b/src/deps/zig-clap/clap/streaming.zig index e3948e33b..1611a41ae 100644 --- a/src/deps/zig-clap/clap/streaming.zig +++ b/src/deps/zig-clap/clap/streaming.zig @@ -71,22 +71,21 @@ pub fn StreamingClap(comptime Id: type, comptime ArgIterator: type) type { if (!mem.eql(u8, name, match)) continue; - if (param.takes_value == .none) { - if (maybe_value != null) + + if (param.takes_value == .none or param.takes_value == .one_optional) { + if (param.takes_value == .none and maybe_value != null) { return parser.err(arg, .{ .long = name }, error.DoesntTakeValue); + } - return ArgType{ .param = param }; + return ArgType{ .param = param, .value = maybe_value }; } const value = blk: { if (maybe_value) |v| break :blk v; - break :blk parser.iter.next() orelse brk2: { - if (param.takes_value != .one_optional) - return parser.err(arg, .{ .long = name }, error.MissingValue); - - break :brk2 ""; + break :blk parser.iter.next() orelse { + return parser.err(arg, .{ .long = name }, error.MissingValue); }; }; |