Re: [PATCH v3 13/25] sequencer: prepare for rebase -i's commit functionality
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 11, 2016, 19:17 UTC
- Message-ID
- <xmqqwphe8zl2.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <9b2782e64f678ab2d261042b63fafc3e4a519295.1476120229.git.johannes.schindelin@gmx.de>
Show 26 quoted lines
> @@ -370,19 +383,79 @@ static int is_index_unchanged(void)
> }
>
> /*
> + * Read the author-script file into an environment block, ready for use in
> + * run_command(), that can be free()d afterwards.
> + */
> +static char **read_author_script(void)
> +{
> + struct strbuf script = STRBUF_INIT;
> + int i, count = 0;
> + char *p, *p2, **env;
> + size_t env_size;
> +
> + if (strbuf_read_file(&script, rebase_path_author_script(), 256) <= 0)
> + return NULL;
> +
> + for (p = script.buf; *p; p++)
> + if (skip_prefix(p, "'\\\\''", (const char **)&p2))
> + strbuf_splice(&script, p - script.buf, p2 - p, "'", 1);
> + else if (*p == '\'')
> + strbuf_splice(&script, p-- - script.buf, 1, "", 0);
> + else if (*p == '\n') {
> + *p = '\0';
> + count++;
> + }Hmph, didn't we recently add parse_key_value_squoted() to build read_author_script() in builtin/am.c on top of it, so that this piece of code can also take advantage of and share the parser?
> +/*
Offtopic: this line and the beginning of the new comment block that begins with "Read the author-script" above show a suboptimal marking of what is added and what is left. I wonder "diff-indent-heuristic" topic by Michael can help to make it look better.
Show 11 quoted lines
> * If we are cherry-pick, and if the merge did not result in > * hand-editing, we will hit this commit and inherit the original > * author date and name. > + * > * If we are revert, or if our cherry-pick results in a hand merge, > * we had better say that the current user is responsible for that. > + * > + * An exception is when run_git_commit() is called during an > + * interactive rebase: in that case, we will want to retain the > + * author metadata. > */