Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: [PATCH 08/16] t4200: use cut instead of sed

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:22

Jeff King [off-list ref] writes:
quoted hunk
But the actual problem is that MERGE_RR lacks a trailing newline. I
don't see any code to add newlines, even though it seems possible that
we will write out several paths. So I think we need a newline here:
diff --git a/builtin-rerere.c b/builtin-rerere.c
index c607aad..e4a1dc1 100644
--- a/builtin-rerere.c
+++ b/builtin-rerere.c
@@ -58,7 +58,8 @@ static int write_rr(struct path_list *rr, int out_fd)
 		int length = strlen(path) + 1;
 		if (write_in_full(out_fd, rr->items[i].util, 40) != 40 ||
 		    write_in_full(out_fd, "\t", 1) != 1 ||
-		    write_in_full(out_fd, path, length) != length)
+		    write_in_full(out_fd, path, length) != length ||
+		    write_in_full(out_fd, "\n", 1) != 1)
 			die("unable to write rerere record");
 	}
 	if (commit_lock_file(&write_lock) != 0)
No, check 3f43d72392b6c0477debd7edbd49bae9b7f41e60^:git-rerere.perl; the
records in this file are supposed to be NUL terminated (the paths are
allowed to have LF in them).
And unless I am missing something, rerere on multiple paths is very
broken (but that seems weird, since this code is so old).
I do not recall offhand an example of multi-path rerere working or not
working correctly, but I am not surprised if the C re-implementation is
broken.  Will need to check.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help