Hi Phillip, Le 01/02/2019 à 12:03, Phillip Wood a écrit : >> } >> - strbuf_reset(&todo_list.buf); >> - if (launch_sequence_editor(todo_file, &todo_list.buf, NULL)) { >> - todo_list_release(&todo_list); >> - return -1; >> - } >> + if (launch_sequence_editor(todo_file, &new_todo->buf, NULL)) >> + return -2; >> - if (!todo_list_parse_insn_buffer(r, todo_list.buf.buf, >> &todo_list)) >> - res = todo_list_write_to_file(r, &todo_list, todo_file, NULL, >> NULL, -1, >> - flags & ~(TODO_LIST_SHORTEN_IDS)); >> + strbuf_stripspace(&new_todo->buf, 1); >> + if (initial && new_todo->buf.len == 0) >> + return -3; >> - todo_list_release(&todo_list); >> - return res; >> + if (!initial) >> + todo_list_parse_insn_buffer(r, new_todo->buf.buf, new_todo); > > error handling. Also why don't we try parse the file for the initial > edit - is it done somewhere else? > Yes, it’s done in complete_action(). -- Alban > Best Wishes > > Phillip > >> + >> + return 0; >> } >> define_commit_slab(commit_seen, unsigned char); >> diff --git a/rebase-interactive.h b/rebase-interactive.h >> index 0e5925e3aa..44dbb06311 100644 >> --- a/rebase-interactive.h >> +++ b/rebase-interactive.h >> @@ -8,7 +8,9 @@ struct todo_list; >> void append_todo_help(unsigned keep_empty, int command_count, >> const char *shortrevisions, const char *shortonto, >> struct strbuf *buf); >> -int edit_todo_list(struct repository *r, unsigned flags); >> +int edit_todo_list(struct repository *r, struct todo_list *todo_list, >> + struct todo_list *new_todo, const char *shortrevisions, >> + const char *shortonto, unsigned flags); >> int todo_list_check(struct todo_list *old_todo, struct todo_list >> *new_todo); >> #endif >> diff --git a/sequencer.c b/sequencer.c >> index 92de982bc4..8f47f0cf39 100644 >> --- a/sequencer.c >> +++ b/sequencer.c >> @@ -55,8 +55,7 @@ static GIT_PATH_FUNC(rebase_path, "rebase-merge") >> * file and written to the tail of 'done'. >> */ >> GIT_PATH_FUNC(rebase_path_todo, "rebase-merge/git-rebase-todo") >> -static GIT_PATH_FUNC(rebase_path_todo_backup, >> - "rebase-merge/git-rebase-todo.backup") >> +GIT_PATH_FUNC(rebase_path_todo_backup, >> "rebase-merge/git-rebase-todo.backup") >> /* >> * The rebase command lines that have already been processed. A line >> diff --git a/sequencer.h b/sequencer.h >> index c5bee8124c..68acab980b 100644 >> --- a/sequencer.h >> +++ b/sequencer.h >> @@ -10,6 +10,7 @@ struct repository; >> const char *git_path_commit_editmsg(void); >> const char *git_path_seq_dir(void); >> const char *rebase_path_todo(void); >> +const char *rebase_path_todo_backup(void); >> #define APPEND_SIGNOFF_DEDUP (1u << 0) >> >