From c7afce4a8f55596c62aa4bfd167749caa436f2b8 Mon Sep 17 00:00:00 2001 From: Joe Mckay Date: Tue, 28 May 2024 19:33:00 +0100 Subject: [PATCH] treat all arguments after '--' as positionals --- src/parser.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/parser.zig b/src/parser.zig index 59ea1ed..80d7200 100644 --- a/src/parser.zig +++ b/src/parser.zig @@ -91,6 +91,16 @@ fn parseFlags(args: *ArgIterator, comptime Flags: type, comptime command_name: [ continue :next_arg; } + if (std.mem.eql(u8, arg, "--")) { + // Blindly treat the remaining flags as positional arguments + while (args.next()) |pos| { + if (positional_count == max_positional_args) fatal("too many arguments", .{}); + positionals[positional_count] = pos; + positional_count += 1; + } + break; + } + if (std.mem.eql(u8, arg, "--help") or std.mem.eql(u8, arg, "-h")) { printHelp(Flags, command_name); }