sequencer (rebase -i): differentiate between comments and 'noop'

In the upcoming patch, we will support rebase -i's progress
reporting. The progress skips comments but counts 'noop's.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin
2016-04-08 08:45:17 +02:00
parent 34bb14c610
commit 736bcb8e86

View File

@@ -763,7 +763,8 @@ enum todo_command {
TODO_SQUASH,
TODO_EXEC,
TODO_NOOP,
TODO_DROP
TODO_DROP,
TODO_COMMENT
};
static struct {
@@ -778,12 +779,13 @@ static struct {
{ 's', "squash" },
{ 'x', "exec" },
{ 0, "noop" },
{ 'd', "drop" }
{ 'd', "drop" },
{ 0, NULL }
};
static const char *command_to_string(const enum todo_command command)
{
if (command < ARRAY_SIZE(todo_command_info))
if (command < TODO_COMMENT)
return todo_command_info[command].str;
die("Unknown command: %d", command);
}
@@ -1235,14 +1237,14 @@ static int parse_insn_line(struct todo_item *item, const char *bol, char *eol)
bol += strspn(bol, " \t");
if (bol == eol || *bol == '\r' || *bol == comment_line_char) {
item->command = TODO_NOOP;
item->command = TODO_COMMENT;
item->commit = NULL;
item->arg = bol;
item->arg_len = eol - bol;
return 0;
}
for (i = 0; i < ARRAY_SIZE(todo_command_info); i++)
for (i = 0; i < TODO_COMMENT; i++)
if (skip_prefix(bol, todo_command_info[i].str, &bol)) {
item->command = i;
break;
@@ -1252,7 +1254,7 @@ static int parse_insn_line(struct todo_item *item, const char *bol, char *eol)
item->command = i;
break;
}
if (i >= ARRAY_SIZE(todo_command_info))
if (i >= TODO_COMMENT)
return -1;
if (item->command == TODO_NOOP) {