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))