Re: [GSoC PATCH v4] add -p: show user's hunk decision when selecting hunks
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Jan 5, 2026, 19:35 UTC
- Message-ID
- <aVwShWyoGBq4BcGR@szeder.dev>
- In-Reply-To
- <aVpI36nPuZAEchuM@Adekunles-MacBook-Air.local>
On Sun, Jan 04, 2026 at 12:02:55PM +0100, Abraham Samuel Adekunle wrote:
> diff --git a/add-patch.c b/add-patch.c > index 173a53241e..bc7a340d21 100644 > --- a/add-patch.c > +++ b/add-patch.c
Show 5 quoted lines
> @@ -1448,6 +1448,7 @@ static int patch_update_file(struct add_p_state *s, > ssize_t i, undecided_previous, undecided_next, rendered_hunk_index = -1; > struct hunk *hunk; > char ch; > + const char *hunk_use_decision;
'hunk_use_decision' is defined here, but is left uninitialized.
Show 14 quoted lines
> struct child_process cp = CHILD_PROCESS_INIT;
> int colored = !!s->colored.len, quit = 0, use_pager = 0;
> enum prompt_mode_type prompt_mode_type;
> @@ -1564,8 +1565,17 @@ static int patch_update_file(struct add_p_state *s,
> (uintmax_t)(file_diff->hunk_nr
> ? file_diff->hunk_nr
> : 1));
> + if (file_diff->hunk_nr) {
> + if (hunk->use == USE_HUNK)
> + hunk_use_decision = _(" (previous decision: use) ");
> + else if (hunk->use == SKIP_HUNK)
> + hunk_use_decision = _(" (previous decision: skip) ");
> + else
> + hunk_use_decision = " ";'hunk_use_decision' is set here, but only if 'file_diff->hunk_nr' is non-zero.
> +` > + }
Nit: unnecessary empty line before the closing brace.
> printf(_(s->mode->prompt_mode[prompt_mode_type]), > - s->buf.buf); > + hunk_use_decision, s->buf.buf);
So 'hunk_use_decision' is used uninitialized here if 'file_diff->hunk_nr' is zero.
> if (*s->s.reset_color_interactive) > fputs(s->s.reset_color_interactive, stdout); > fflush(stdout);