From 0970eb827fe53ad7a6c6744019707190d7b9bb32 Mon Sep 17 00:00:00 2001 From: Jimmi Holst Christensen Date: Thu, 24 Mar 2022 11:08:21 +0100 Subject: Fix long param parsing with '-' and '\_' in name --- clap.zig | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'clap.zig') diff --git a/clap.zig b/clap.zig index 0a08634..3fd791e 100644 --- a/clap.zig +++ b/clap.zig @@ -223,14 +223,14 @@ pub fn parseParamEx(str: []const u8, end: *usize) !Param(Help) { else => return error.InvalidParameter, }, .first_char_of_long_name => switch (c) { - 'a'...'z', 'A'...'Z', '0'...'9' => { + 'a'...'z', 'A'...'Z', '0'...'9', '-', '_' => { start = i; state = .rest_of_long_name; }, else => return error.InvalidParameter, }, .rest_of_long_name => switch (c) { - 'a'...'z', 'A'...'Z', '0'...'9' => {}, + 'a'...'z', 'A'...'Z', '0'...'9', '-', '_' => {}, ' ', '\t' => { res.names.long = str[start..i]; state = .before_value_or_description; @@ -374,6 +374,8 @@ test "parseParams" { try testParseParams( \\-s \\--str + \\--str-str + \\--str_str \\-s, --str \\--str \\-s, --str @@ -397,6 +399,8 @@ test "parseParams" { , &.{ .{ .names = .{ .short = 's' } }, .{ .names = .{ .long = "str" } }, + .{ .names = .{ .long = "str-str" } }, + .{ .names = .{ .long = "str_str" } }, .{ .names = .{ .short = 's', .long = "str" } }, .{ .id = .{ .val = "str" }, -- cgit v1.2.3