sequencer: future-proof read_populate_todo()

Over the next commits, we will work on improving the sequencer to the point where it can process the todo script of an interactive rebase. To that end, we will need to teach the sequencer to read interactive rebase's todo file. In preparation, we consolidate all places where that todo file is needed to call a function that we will later extend. 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:24 UTC c0246501ed02c3bd1baa0953d5a46a874edc171e
1 file changed +11 -7
sequencer.c
+11 -7
@@ -32,6 +32,11 @@ static const char *get_dir(const struct replay_opts *opts)
32 return git_path_seq_dir();
33 }
34
35 +static const char *get_todo_path(const struct replay_opts *opts)
36 +{
37 + return git_path_todo_file();
38 +}
39 +
40 static int is_rfc2822_line(const char *buf, int len)
41 {
42 int i;
@@ -769,25 +774,24 @@ static int parse_insn_buffer(char *buf, struct commit_list **todo_list,
774 static int read_populate_todo(struct commit_list **todo_list,
775 struct replay_opts *opts)
776 {
777 + const char *todo_file = get_todo_path(opts);
778 struct strbuf buf = STRBUF_INIT;
779 int fd, res;
780
775 - fd = open(git_path_todo_file(), O_RDONLY);
781 + fd = open(todo_file, O_RDONLY);
782 if (fd < 0)
777 - return error_errno(_("Could not open %s"),
778 - git_path_todo_file());
783 + return error_errno(_("Could not open %s"), todo_file);
784 if (strbuf_read(&buf, fd, 0) < 0) {
785 close(fd);
786 strbuf_release(&buf);
782 - return error(_("Could not read %s."), git_path_todo_file());
787 + return error(_("Could not read %s."), todo_file);
788 }
789 close(fd);
790
791 res = parse_insn_buffer(buf.buf, todo_list, opts);
792 strbuf_release(&buf);
793 if (res)
789 - return error(_("Unusable instruction sheet: %s"),
790 - git_path_todo_file());
794 + return error(_("Unusable instruction sheet: %s"), todo_file);
795 return 0;
796 }
797
@@ -1075,7 +1079,7 @@ static int sequencer_continue(struct replay_opts *opts)
1079 {
1080 struct commit_list *todo_list = NULL;
1081
1078 - if (!file_exists(git_path_todo_file()))
1082 + if (!file_exists(get_todo_path(opts)))
1083 return continue_single_pick();
1084 if (read_populate_opts(opts) ||
1085 read_populate_todo(&todo_list, opts))