sequencer: teach write_message() to append an optional LF

This commit prepares for future callers that will have a pointer/length to some text to be written that lacks an LF, yet an LF is desired. Instead of requiring the caller to append an LF to the buffer (and potentially allocate memory to do so), the write_message() function learns to append an LF at the end of the file. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Schindelin committed Oct 21, 2016 at 14:26 UTC f56fffef9a36b46a1ab2f377c2dd84701e36855a
1 file changed +8 -3
sequencer.c
+8 -3
@@ -234,7 +234,8 @@ static void print_advice(int show_hint, struct replay_opts *opts)
234 }
235 }
236
237 -static int write_message(const void *buf, size_t len, const char *filename)
237 +static int write_message(const void *buf, size_t len, const char *filename,
238 + int append_eol)
239 {
240 static struct lock_file msg_file;
241
@@ -245,6 +246,10 @@ static int write_message(const void *buf, size_t len, const char *filename)
246 rollback_lock_file(&msg_file);
247 return error_errno(_("Could not write to '%s'"), filename);
248 }
249 + if (append_eol && write(msg_fd, "\n", 1) < 0) {
250 + rollback_lock_file(&msg_file);
251 + return error_errno(_("Could not write eol to '%s"), filename);
252 + }
253 if (commit_lock_file(&msg_file) < 0) {
254 rollback_lock_file(&msg_file);
255 return error(_("Error wrapping up %s."), filename);
@@ -748,13 +753,13 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
753 if (res < 0)
754 return res;
755 res |= write_message(msgbuf.buf, msgbuf.len,
751 - git_path_merge_msg());
756 + git_path_merge_msg(), 0);
757 } else {
758 struct commit_list *common = NULL;
759 struct commit_list *remotes = NULL;
760
761 res = write_message(msgbuf.buf, msgbuf.len,
757 - git_path_merge_msg());
762 + git_path_merge_msg(), 0);
763
764 commit_list_insert(base, &common);
765 commit_list_insert(next, &remotes);