| ... | ... | @@ -132,7 +132,7 @@ pub fn getObjectSize(alloc: std.mem.Allocator, dir: nfs.Dir, obj: Id) !u64 { |
| 132 | 132 | .argv = &.{ "git", "cat-file", "-s", obj }, |
| 133 | 133 | }); |
| 134 | 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 | } |
| 137 | 137 | |
| 138 | 138 | // TODO make this inspect .git manually |
| ... | ... | @@ -244,12 +244,12 @@ fn parseCommitUserAndAt(input: string) !UserAndAt { |
| 244 | 244 | } |
| 245 | 245 | |
| 246 | 246 | fn 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 | 248 | std.debug.assert(tz_part.len == 5); |
| 249 | 249 | std.debug.assert(tz_part[0] == '-' or tz_part[0] == '+'); |
| 250 | 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; |
| 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; |
| 253 | 253 | if (sign > 0) at = at.addHours(hrs); |
| 254 | 254 | if (sign > 0) at = at.addMins(mins); |
| 255 | 255 | // if (sign < 0) at = at.subHours(hrs); // TODO: |
| ... | ... | @@ -314,10 +314,10 @@ fn parseTreeMode(input: string) !Tree.Object.Mode { |
| 314 | 314 | |
| 315 | 315 | std.debug.assert(input.len == 6); |
| 316 | 316 | 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)), |
| 321 | 321 | }; |
| 322 | 322 | } |
| 323 | 323 | |
| ... | ... | @@ -815,9 +815,9 @@ pub const BlameIterator = struct { |
| 815 | 815 | blk: { |
| 816 | 816 | var it = std.mem.splitScalar(u8, self.inner.next() orelse return null, ' '); |
| 817 | 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; |
| 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; |
| 821 | 821 | } |
| 822 | 822 | while (self.inner.next()) |line| { |
| 823 | 823 | if (line[0] == '\t') { |