Johannes Schindelin <johannes.schindelin@xxxxxx> writes: > It is not unheard of that editors on Windows write CR/LF even if the > file originally had only LF. This is particularly awkward for exec lines > of a rebase -i todo sheet. Take for example the insn "exec echo": The > shell script parser splits at the LF and leaves the CR attached to > "echo", which leads to the unknown command "echo\r". > > Work around that by stripping CR when reading the todo commands, as we > already do for LF. > > This happens to fix t9903.14 and .15 in MSYS1 environments (with the > rebase--helper patches based on this patch series): the todo script > constructed in such a setup contains CR/LF thanks to MSYS1 runtime's > cleverness. > > Based on a report and a patch by Johannes Sixt. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- > sequencer.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/sequencer.c b/sequencer.c > index 678fdf3..cee7e50 100644 > --- a/sequencer.c > +++ b/sequencer.c > @@ -774,6 +774,9 @@ static int parse_insn_buffer(char *buf, struct todo_list *todo_list) > > next_p = *eol ? eol + 1 /* skip LF */ : eol; > > + if (p != eol && eol[-1] == '\r') > + eol--; /* skip Carriage Return */ micronit: s/skip/strip/ ;-) > + > item = append_new_todo(todo_list); > item->offset_in_buf = p - todo_list->buf.buf; > if (parse_insn_line(item, p, eol)) {