authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-06-07 20:53:46 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-06-07 20:53:46 -07:00
log9f752ff7c27b1f9b3aa2734f8b992ba8ea883b69
tree4625f76233a08107380e55af9697c3f0c0ab3fb0
parentcc7dffea72d4a17d4a96f4e2c8f0009b399dab3e
signaturebadge-check Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

update to zig 0.16.0


4 files changed, 22 insertions(+), 14 deletions(-)

README.md+1-1
......@@ -3,7 +3,7 @@
33![loc](https://sloc.xyz/github/nektro/zig-flag)
44[![license](https://img.shields.io/github/license/nektro/zig-flag.svg)](https://github.com/nektro/zig-flag/blob/master/LICENSE)
55[![nektro @ github sponsors](https://img.shields.io/badge/sponsors-nektro-purple?logo=github)](https://github.com/sponsors/nektro)
6[![Zig](https://img.shields.io/badge/Zig-0.15-f7a41d)](https://ziglang.org/)
6[![Zig](https://img.shields.io/badge/Zig-0.16-f7a41d)](https://ziglang.org/)
77[![Zigmod](https://img.shields.io/badge/Zigmod-latest-f7a41d)](https://github.com/nektro/zigmod)
88
99Config management for Zig.
build.zig+1-1
......@@ -14,7 +14,7 @@ pub fn build(b: *std.Build) void {
1414 }),
1515 });
1616 deps.addAllTo(tests);
17 tests.linkLibC();
17 tests.root_module.link_libc = true;
1818 tests.use_llvm = !disable_llvm;
1919 tests.use_lld = !disable_llvm;
2020 b.getInstallStep().dependOn(&tests.step);
src/lib.zig+11-11
......@@ -10,28 +10,28 @@ const sys = switch (builtin.target.os.tag) {
1010 else => unreachable, // TODO:
1111};
1212
13var singles: std.ArrayHashMap(string, string, std.array_hash_map.StringContext, true) = undefined;
14var multis: std.ArrayHashMap(string, List, std.array_hash_map.StringContext, true) = undefined;
13var allocator: std.mem.Allocator = undefined;
14var singles: std.array_hash_map.String(string) = .empty;
15var multis: std.array_hash_map.String(List) = .empty;
1516
1617pub fn init(alloc: std.mem.Allocator) void {
17 singles = std.ArrayHashMap(string, string, std.array_hash_map.StringContext, true).init(alloc);
18 multis = std.ArrayHashMap(string, List, std.array_hash_map.StringContext, true).init(alloc);
18 allocator = alloc;
1919}
2020
2121pub fn deinit() void {
22 singles.deinit();
22 singles.deinit(allocator);
2323 for (multis.values()) |array_list| {
2424 array_list.deinit();
2525 }
26 multis.deinit();
26 multis.deinit(allocator);
2727}
2828
2929pub fn addSingle(name: string) !void {
30 try singles.putNoClobber(name, "");
30 try singles.putNoClobber(allocator, name, "");
3131}
3232
3333pub fn addMulti(name: string) !void {
34 try multis.putNoClobber(name, List.init(multis.allocator));
34 try multis.putNoClobber(allocator, name, List.init(allocator));
3535}
3636
3737pub const FlagDashKind = enum {
......@@ -46,9 +46,9 @@ pub const FlagDashKind = enum {
4646 }
4747};
4848
49pub fn parse(k: FlagDashKind) !std.process.ArgIterator {
49pub fn parse(k: FlagDashKind, args: std.process.Args) !std.process.Args.Iterator {
5050 const dash = k.hypen();
51 var argiter = try std.process.argsWithAllocator(singles.allocator);
51 var argiter = args.iterate();
5252 defer argiter.deinit();
5353 var argi: usize = 0;
5454 blk: while (argiter.next()) |item| : (argi += 1) {
......@@ -61,7 +61,7 @@ pub fn parse(k: FlagDashKind) !std.process.ArgIterator {
6161 if (std.mem.eql(u8, name, jtem)) {
6262 const value = argiter.next().?;
6363 argi += 1;
64 try singles.put(name, value);
64 try singles.put(allocator, name, value);
6565 continue :blk;
6666 }
6767 }
test.zig+9-1
......@@ -2,5 +2,13 @@ const std = @import("std");
22const flag = @import("flag");
33
44test {
5 std.testing.refAllDeclsRecursive(flag);
5 _ = &flag.init;
6 _ = &flag.deinit;
7 _ = &flag.addSingle;
8 _ = &flag.addMulti;
9 _ = &flag.parse;
10 _ = &flag.parseEnv;
11 _ = &flag.getSingle;
12 _ = &flag.getMulti;
13 _ = &flag.getBool;
614}