--- in1.zig 2020-01-28 21:55:22.150067648 -0500 +++ test2.zig 2020-01-28 21:53:58.576979169 -0500 @@ -19,12 +19,12 @@ }; } -fn toLine(l: []u8) Line { +fn toLine(l: []const u8) Line { var ti: std.mem.TokenIterator = std.mem.tokenize(l, " "); var count: usize = 0; - while (ti.next()) |slice_or_err| { - count = count + 1; + while (ti.next()) |_| { + count += 1; } return Line{ @@ -34,15 +34,11 @@ } pub fn main() !void { - const allocator = std.debug.global_allocator; - var args_it = std.process.args(); - _ = try unwrapArg(args_it.next(allocator).?); - + const allocator = &std.heap.ArenaAllocator.init(std.heap.page_allocator).allocator; + const args = try std.process.argsAlloc(allocator); const cwd = std.fs.cwd(); - while (args_it.next(allocator)) |arg_or_err| { - const arg = try unwrapArg(arg_or_err); - + for (args[1..]) |arg| { const file = cwd.openFile(arg, .{}) catch |err| { std.debug.warn("Unable to open file: {}\n", .{@errorName(err)}); return err; @@ -69,10 +65,3 @@ std.debug.warn("{}\n", .{o}); } - -fn unwrapArg(arg: anyerror![]u8) ![]u8 { - return arg catch |err| { - std.debug.warn("Unable to parse command line: {}\n", .{err}); - return err; - }; -}