| ... | ... | @@ -80,8 +80,6 @@ pub fn parse(k: FlagDashKind) !std.process.ArgIterator { |
| 80 | 80 | } |
| 81 | 81 | |
| 82 | 82 | pub fn parseEnv() !void { |
| 83 | | const alloc = singles.allocator; |
| 84 | | |
| 85 | 83 | for (singles.keys(), singles.values()) |k, *v| { |
| 86 | 84 | var buf: [64]u8 = @splat(0); |
| 87 | 85 | for (k, 0..) |c, i| buf[i] = switch (c) { |
| ... | ... | @@ -97,13 +95,17 @@ pub fn parseEnv() !void { |
| 97 | 95 | for (multis.keys(), multis.values()) |k, *v| { |
| 98 | 96 | var n: usize = 1; |
| 99 | 97 | while (true) : (n += 1) { |
| 100 | | const w = try std.fmt.allocPrintZ(alloc, "{s}_{d}", .{ k, n }); |
| 101 | | defer alloc.free(w); |
| 102 | | if (sys.getenv(w)) |value| { |
| 103 | | try v.append(value); |
| 104 | | continue; |
| 105 | | } |
| 106 | | break; |
| 98 | var buf: [64]u8 = @splat(0); |
| 99 | for (k, 0..) |c, i| buf[i] = switch (c) { |
| 100 | 'A'...'Z', '_', '0'...'9' => |a| a, |
| 101 | 'a'...'z' => |a| a - 'a' + 'A', |
| 102 | '-' => '_', |
| 103 | else => unreachable, |
| 104 | }; |
| 105 | const buf2 = try std.fmt.bufPrint(buf[k.len..], "_{d}", .{n}); |
| 106 | const w = buf[0 .. k.len + buf2.len :0]; |
| 107 | const value = sys.getenv(w) orelse break; |
| 108 | try v.append(value); |
| 107 | 109 | } |
| 108 | 110 | } |
| 109 | 111 | } |