Subject: Re: [GSoC PATCH v4] add -p: show user's hunk decision when selecting hunks

From: SZEDER Gábor <[email-masked]>
Date: Mon, 5 Jan 2026 20:35:33 +0100

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

> @@ -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.

>  	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);