From b8aab1f7bbda37a477646649af29aa73dbdfcd8a Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 14 May 2023 16:21:45 -0700 Subject: [PATCH] parseTreeDiff: handle more diff lines --- git.zig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/git.zig b/git.zig index ea1810a796a60f5717226d8474f522a5b3336ed7..900b27c9343d4ed15d1fbea4b611935ab06ed060 100644 --- a/git.zig +++ b/git.zig @@ -336,11 +336,14 @@ pub fn parseTreeDiffMeta(input: string) !TreeDiffMeta { } std.debug.assert(std.mem.startsWith(u8, lineiter.next().?, "diff --git")); - while (true) { + blk: while (true) { while (lineiter.next()) |lin| { if (std.mem.startsWith(u8, lin, "index")) break; if (std.mem.startsWith(u8, lin, "new file mode")) continue; if (std.mem.startsWith(u8, lin, "deleted file mode")) continue; + if (std.mem.startsWith(u8, lin, "old mode")) continue; + if (std.mem.startsWith(u8, lin, "new mode")) continue; + if (std.mem.startsWith(u8, lin, "diff --git")) continue :blk; std.log.err("{s}", .{lin}); unreachable; @@ -442,6 +445,8 @@ pub fn parseTreeDiff(alloc: std.mem.Allocator, input: string) !TreeDiff { if (std.mem.startsWith(u8, lin, "index")) break; if (std.mem.startsWith(u8, lin, "new file mode")) continue; if (std.mem.startsWith(u8, lin, "deleted file mode")) continue; + if (std.mem.startsWith(u8, lin, "old mode")) continue; + if (std.mem.startsWith(u8, lin, "new mode")) continue; std.log.err("{s}", .{lin}); unreachable; -- 2.54.0