Skip to content

Commit

Permalink
sequencer: don't abbreviate a command if it doesn't have a short form
Browse files Browse the repository at this point in the history
When the sequencer is requested to abbreviate commands, it will replace
those that do not have a short form (eg. `noop') by a comment mark.
`noop' serves no purpose, except when fast-forwarding (ie. by running
`git rebase').  Removing it will break this command when
`rebase.abbreviateCommands' is set to true.

Teach todo_list_to_strbuf() to check if a command has an actual
short form, and to ignore it if not.

Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
agrn authored and gitster committed Mar 30, 2020
1 parent 274b9cc commit 68e7090
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions sequencer.c
Original file line number Diff line number Diff line change
Expand Up @@ -1564,7 +1564,7 @@ static const char *command_to_string(const enum todo_command command)

static char command_to_char(const enum todo_command command)
{
if (command < TODO_COMMENT && todo_command_info[command].c)
if (command < TODO_COMMENT)
return todo_command_info[command].c;
return comment_line_char;
}
Expand Down Expand Up @@ -4947,6 +4947,8 @@ static void todo_list_to_strbuf(struct repository *r, struct todo_list *todo_lis
max = num;

for (item = todo_list->items, i = 0; i < max; i++, item++) {
char cmd;

/* if the item is not a command write it and continue */
if (item->command >= TODO_COMMENT) {
strbuf_addf(buf, "%.*s\n", item->arg_len,
Expand All @@ -4955,8 +4957,9 @@ static void todo_list_to_strbuf(struct repository *r, struct todo_list *todo_lis
}

/* add command to the buffer */
if (flags & TODO_LIST_ABBREVIATE_CMDS)
strbuf_addch(buf, command_to_char(item->command));
cmd = command_to_char(item->command);
if ((flags & TODO_LIST_ABBREVIATE_CMDS) && cmd)
strbuf_addch(buf, cmd);
else
strbuf_addstr(buf, command_to_string(item->command));

Expand Down

0 comments on commit 68e7090

Please sign in to comment.