On Tue, Nov 26, 2019 at 03:22:56PM +0100, René Scharfe wrote: > diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c > index a4615587fd..736f666f64 100644 > --- a/builtin/fmt-merge-msg.c > +++ b/builtin/fmt-merge-msg.c > @@ -106,7 +106,7 @@ static int handle_line(char *line, struct merge_parents *merge_parents) > int i, len = strlen(line); > struct origin_data *origin_data; > char *src; > - const char *origin; > + const char *origin, *tag_name; > struct src_data *src_data; > struct string_list_item *item; > int pulling_head = 0; > @@ -162,14 +162,13 @@ static int handle_line(char *line, struct merge_parents *merge_parents) > if (pulling_head) { > origin = src; > src_data->head_status |= 1; > - } else if (starts_with(line, "branch ")) { > + } else if (skip_prefix(line, "branch ", &origin)) { > origin_data->is_local_branch = 1; > - origin = line + 7; > string_list_append(&src_data->branch, origin); > src_data->head_status |= 2; > - } else if (starts_with(line, "tag ")) { > + } else if (skip_prefix(line, "tag ", &tag_name)) { > origin = line; > - string_list_append(&src_data->tag, origin + 4); > + string_list_append(&src_data->tag, tag_name); > src_data->head_status |= 2; Looks good, as we're already mutating "origin" in the first one, and "tag_name" is a new variable in the second one. -Peff