authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-07-12 03:45:15 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-07-12 03:45:15 -07:00
log4bd071c4aac6f607786424bf9d07e7764708a0f7
treec91d2d57d3ab0612efb21eff87ca088d2bc9efa2
parentd724f3d9c76bff2e6454d2601c7a22fe5134ae8e
signaturebadge-check Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

parseAt: time_part is in unix so setting z_offset needs to offset init int


1 files changed, 9 insertions(+), 5 deletions(-)

git.zig+9-5
......@@ -207,16 +207,20 @@ fn parseCommitUserAndAt(input: string) !UserAndAt {
207207}
208208
209209fn parseAt(time_part: string, tz_part: string) time.DateTime {
210 var at = time.DateTime.initUnix(extras.parseDigits(u64, time_part, 10) catch unreachable);
210 var at_s = extras.parseDigits(u64, time_part, 10) catch unreachable;
211211 std.debug.assert(tz_part.len == 5);
212212 std.debug.assert(tz_part[0] == '-' or tz_part[0] == '+');
213213 const sign: i8 = if (tz_part[0] == '+') 1 else -1;
214214 const hrs = extras.parseDigits(u7, tz_part[1..][0..2], 10) catch unreachable;
215215 const mins = extras.parseDigits(u7, tz_part[3..][0..2], 10) catch unreachable;
216 at.z_offset += hrs;
217 at.z_offset *= 4;
218 at.z_offset += mins / 15;
219 at.z_offset *= sign;
216 var z_offset: i8 = 0;
217 z_offset += hrs;
218 z_offset *= 4;
219 z_offset += mins / 15;
220 z_offset *= sign;
221 at_s = extras.safeAdd(at_s, @as(i32, z_offset) * 15 * time.s_per_min);
222 var at: time.DateTime = .initUnix(at_s);
223 at.z_offset = z_offset;
220224 return at;
221225}
222226