authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-02-12 02:22:51 -08:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-02-12 02:22:51 -08:00
log8812f4e4d8b112e371be6ce570dd780485a80911
treea16204d877a05594675a7c916e52e175c758c751
parent4f442a6f01c817b9e1a532f8866d2fcbcf2d8832

use extras.parseDigits


1 files changed, 11 insertions(+), 11 deletions(-)

git.zig+11-11
......@@ -132,7 +132,7 @@ pub fn getObjectSize(alloc: std.mem.Allocator, dir: nfs.Dir, obj: Id) !u64 {
132132 .argv = &.{ "git", "cat-file", "-s", obj },
133133 });
134134 extras.assertLog(result.term == .Exited and result.term.Exited == 0, "{s}", .{result.stderr});
135 return try std.fmt.parseInt(u64, std.mem.trimRight(u8, result.stdout, "\n"), 10);
135 return try extras.parseDigits(u64, std.mem.trimRight(u8, result.stdout, "\n"), 10);
136136}
137137
138138// TODO make this inspect .git manually
......@@ -244,12 +244,12 @@ fn parseCommitUserAndAt(input: string) !UserAndAt {
244244}
245245
246246fn parseAt(time_part: string, tz_part: string) time.DateTime {
247 var at = time.DateTime.initUnix(std.fmt.parseInt(u64, time_part, 10) catch unreachable);
247 var at = time.DateTime.initUnix(extras.parseDigits(u64, time_part, 10) catch unreachable);
248248 std.debug.assert(tz_part.len == 5);
249249 std.debug.assert(tz_part[0] == '-' or tz_part[0] == '+');
250250 const sign: i8 = if (tz_part[0] == '+') 1 else -1;
251 const hrs = std.fmt.parseInt(u8, tz_part[1..][0..2], 10) catch unreachable;
252 const mins = std.fmt.parseInt(u8, tz_part[3..][0..2], 10) catch unreachable;
251 const hrs = extras.parseDigits(u8, tz_part[1..][0..2], 10) catch unreachable;
252 const mins = extras.parseDigits(u8, tz_part[3..][0..2], 10) catch unreachable;
253253 if (sign > 0) at = at.addHours(hrs);
254254 if (sign > 0) at = at.addMins(mins);
255255 // if (sign < 0) at = at.subHours(hrs); // TODO:
......@@ -314,10 +314,10 @@ fn parseTreeMode(input: string) !Tree.Object.Mode {
314314
315315 std.debug.assert(input.len == 6);
316316 return .{
317 .type = @enumFromInt(try std.fmt.parseInt(u16, input[0..3], 10)),
318 .perm_user = @bitCast(try std.fmt.parseInt(u3, input[3..][0..1], 8)),
319 .perm_group = @bitCast(try std.fmt.parseInt(u3, input[4..][0..1], 8)),
320 .perm_other = @bitCast(try std.fmt.parseInt(u3, input[5..][0..1], 8)),
317 .type = @enumFromInt(try extras.parseDigits(u16, input[0..3], 10)),
318 .perm_user = @bitCast(try extras.parseDigits(u3, input[3..][0..1], 8)),
319 .perm_group = @bitCast(try extras.parseDigits(u3, input[4..][0..1], 8)),
320 .perm_other = @bitCast(try extras.parseDigits(u3, input[5..][0..1], 8)),
321321 };
322322}
323323
......@@ -815,9 +815,9 @@ pub const BlameIterator = struct {
815815 blk: {
816816 var it = std.mem.splitScalar(u8, self.inner.next() orelse return null, ' ');
817817 result.commit = ensureObjId(CommitId, extras.nullifyS(it.next().?) orelse return null);
818 result.prev_line = std.fmt.parseInt(u32, it.next().?, 10) catch unreachable;
819 result.curr_line = std.fmt.parseInt(u32, it.next().?, 10) catch unreachable;
820 result.continuity = std.fmt.parseInt(u32, it.next() orelse break :blk, 10) catch unreachable;
818 result.prev_line = extras.parseDigits(u32, it.next().?, 10) catch unreachable;
819 result.curr_line = extras.parseDigits(u32, it.next().?, 10) catch unreachable;
820 result.continuity = extras.parseDigits(u32, it.next() orelse break :blk, 10) catch unreachable;
821821 }
822822 while (self.inner.next()) |line| {
823823 if (line[0] == '\t') {