From: Michael J Gruber Date: Tue, 06 Sep 2016 13:13:03 GMT Subject: [PATCH] gpg-interface: reflect stderr to stderr Message-ID: <18a7e2984121d988137c135ec560fee56506981b.1473167263.git.git@drmicha.warpmail.net> In-Reply-To: efee955 ("gpg-interface: check gpg signature creation status", 2016-06-17) used stderr to capture gpg's status output, which is the only reliable way for status checks. As a side effect, stderr was not shown to the user any more. In case of a gpg error, reflect the whole captured buffer to stderr. Signed-off-by: Michael J Gruber --- A full blown approach would use --status-fd=4 or such rather than hijacking stderr. This would require an extension of pipe_command() etc. to handle yet another fd. gpg-interface.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gpg-interface.c b/gpg-interface.c index 8672eda..cf35bca 100644 --- a/gpg-interface.c +++ b/gpg-interface.c @@ -173,9 +173,12 @@ int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *sig sigchain_pop(SIGPIPE); ret |= !strstr(gpg_status.buf, "\n[GNUPG:] SIG_CREATED "); - strbuf_release(&gpg_status); - if (ret) + if (ret) { + fputs(gpg_status.buf, stderr); + strbuf_release(&gpg_status); return error(_("gpg failed to sign the data")); + } + strbuf_release(&gpg_status); /* Strip CR from the line endings, in case we are on Windows. */ for (i = j = bottom; i < signature->len; i++) -- 2.10.0.rc2.333.g8ef2d05