Re: [PATCH v4] add-patch: response to unknown command
- From
Rubén Justo <rjusto@gmail.com>
- Date
- Apr 25, 2024, 03:04 UTC
- Message-ID
- <19ff10e9-12be-4a50-9163-1fe71414fd46@gmail.com>
- In-Reply-To
- <20240425014432.GA1768914@coredump.intra.peff.net>
On Wed, Apr 24, 2024 at 09:44:32PM -0400, Jeff King wrote:
Show 16 quoted lines
> On Sun, Apr 21, 2024 at 11:52:33PM +0200, Rubén Justo wrote:
>
> > +test_expect_success 'unknown command' '
> > + test_when_finished "git reset --hard; rm -f command" &&
> > + echo W >command &&
> > + git add -N command &&
> > + git diff command >expect &&
> > + cat >>expect <<-EOF &&
> > + (1/1) Stage addition [y,n,q,a,d,e,p,?]? Unknown command ${SQ}W${SQ} (use ${SQ}?${SQ} for help)
> > + (1/1) Stage addition [y,n,q,a,d,e,p,?]?$SP
> > + EOF
> > + git add -p -- command <command >actual 2>&1 &&
> > + test_cmp expect actual
> > +'
>
> I got a test failure on Windows CI from this.Thank you for testing thoroughly.
Show 10 quoted lines
> The test_cmp output looks > like this: > > -(1/1) Stage addition [y,n,q,a,d,e,p,?]? Unknown command 'W' (use '?' for help) > -(1/1) Stage addition [y,n,q,a,d,e,p,?]? > +(1/1) Stage addition [y,n,q,a,d,e,p,?]? (1/1) Stage addition [y,n,q,a,d,e,p,?]? > +Unknown command 'W' (use '?' for help) > > which makes me suspect a race. Perhaps because the prompt is going to > stdout, but the "Unknown command" message goes to stderr?
I have to read the thread pointed by Eric, but my knee-jerk reaction has been to think in something like:
diff --git a/add-patch.c b/add-patch.c index 447e8166d2..0090543f89 100644 --- a/add-patch.c +++ b/add-patch.c @@ -292,6 +292,7 @@ static void err(struct add_p_state *s, const char *fmt, ...) { va_list args; va_start(args, fmt); + fflush(stdout); fputs(s->s.error_color, stderr); vfprintf(stderr, fmt, args);