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 {...@@ -132,7 +132,7 @@ pub fn getObjectSize(alloc: std.mem.Allocator, dir: nfs.Dir, obj: Id) !u64 {
132 .argv = &.{ "git", "cat-file", "-s", obj },132 .argv = &.{ "git", "cat-file", "-s", obj },
133 });133 });
134 extras.assertLog(result.term == .Exited and result.term.Exited == 0, "{s}", .{result.stderr});134 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);
136}136}
137137
138// TODO make this inspect .git manually138// TODO make this inspect .git manually
...@@ -244,12 +244,12 @@ fn parseCommitUserAndAt(input: string) !UserAndAt {...@@ -244,12 +244,12 @@ fn parseCommitUserAndAt(input: string) !UserAndAt {
244}244}
245245
246fn parseAt(time_part: string, tz_part: string) time.DateTime {246fn 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);
248 std.debug.assert(tz_part.len == 5);248 std.debug.assert(tz_part.len == 5);
249 std.debug.assert(tz_part[0] == '-' or tz_part[0] == '+');249 std.debug.assert(tz_part[0] == '-' or tz_part[0] == '+');
250 const sign: i8 = if (tz_part[0] == '+') 1 else -1;250 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;251 const hrs = extras.parseDigits(u8, tz_part[1..][0..2], 10) catch unreachable;
252 const mins = std.fmt.parseInt(u8, tz_part[3..][0..2], 10) catch unreachable;252 const mins = extras.parseDigits(u8, tz_part[3..][0..2], 10) catch unreachable;
253 if (sign > 0) at = at.addHours(hrs);253 if (sign > 0) at = at.addHours(hrs);
254 if (sign > 0) at = at.addMins(mins);254 if (sign > 0) at = at.addMins(mins);
255 // if (sign < 0) at = at.subHours(hrs); // TODO:255 // if (sign < 0) at = at.subHours(hrs); // TODO:
...@@ -314,10 +314,10 @@ fn parseTreeMode(input: string) !Tree.Object.Mode {...@@ -314,10 +314,10 @@ fn parseTreeMode(input: string) !Tree.Object.Mode {
314314
315 std.debug.assert(input.len == 6);315 std.debug.assert(input.len == 6);
316 return .{316 return .{
317 .type = @enumFromInt(try std.fmt.parseInt(u16, input[0..3], 10)),317 .type = @enumFromInt(try extras.parseDigits(u16, input[0..3], 10)),
318 .perm_user = @bitCast(try std.fmt.parseInt(u3, input[3..][0..1], 8)),318 .perm_user = @bitCast(try extras.parseDigits(u3, input[3..][0..1], 8)),
319 .perm_group = @bitCast(try std.fmt.parseInt(u3, input[4..][0..1], 8)),319 .perm_group = @bitCast(try extras.parseDigits(u3, input[4..][0..1], 8)),
320 .perm_other = @bitCast(try std.fmt.parseInt(u3, input[5..][0..1], 8)),320 .perm_other = @bitCast(try extras.parseDigits(u3, input[5..][0..1], 8)),
321 };321 };
322}322}
323323
...@@ -815,9 +815,9 @@ pub const BlameIterator = struct {...@@ -815,9 +815,9 @@ pub const BlameIterator = struct {
815 blk: {815 blk: {
816 var it = std.mem.splitScalar(u8, self.inner.next() orelse return null, ' ');816 var it = std.mem.splitScalar(u8, self.inner.next() orelse return null, ' ');
817 result.commit = ensureObjId(CommitId, extras.nullifyS(it.next().?) orelse return null);817 result.commit = ensureObjId(CommitId, extras.nullifyS(it.next().?) orelse return null);
818 result.prev_line = std.fmt.parseInt(u32, it.next().?, 10) catch unreachable;818 result.prev_line = extras.parseDigits(u32, it.next().?, 10) catch unreachable;
819 result.curr_line = std.fmt.parseInt(u32, it.next().?, 10) catch unreachable;819 result.curr_line = extras.parseDigits(u32, it.next().?, 10) catch unreachable;
820 result.continuity = std.fmt.parseInt(u32, it.next() orelse break :blk, 10) catch unreachable;820 result.continuity = extras.parseDigits(u32, it.next() orelse break :blk, 10) catch unreachable;
821 }821 }
822 while (self.inner.next()) |line| {822 while (self.inner.next()) |line| {
823 if (line[0] == '\t') {823 if (line[0] == '\t') {