From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: [PATCH 2/3] progress: use pager's original_stderr if available
Date: Wed, 23 Mar 2011 14:19:06 -0400 [thread overview]
Message-ID: <20110323181906.GB17533@sigill.intra.peff.net> (raw)
In-Reply-To: <20110323181756.GA17415@sigill.intra.peff.net>
If we are outputting to a pager, stderr is redirected to the
pager. However, progress messages should not be part of that
stream, as they are time-sensitive and should end up being
hidden once we actually have output.
Signed-off-by: Jeff King <peff@peff.net>
---
progress.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/progress.c b/progress.c
index 3971f49..bc7d3a3 100644
--- a/progress.c
+++ b/progress.c
@@ -10,6 +10,7 @@
#include "git-compat-util.h"
#include "progress.h"
+#include "cache.h"
#define TP_IDX_MAX 8
@@ -71,6 +72,7 @@ static void clear_progress_signal(void)
static int display(struct progress *progress, unsigned n, const char *done)
{
+ FILE *out = original_stderr ? original_stderr : stderr;
const char *eol, *tp;
if (progress->delay) {
@@ -95,16 +97,16 @@ static int display(struct progress *progress, unsigned n, const char *done)
unsigned percent = n * 100 / progress->total;
if (percent != progress->last_percent || progress_update) {
progress->last_percent = percent;
- fprintf(stderr, "%s: %3u%% (%u/%u)%s%s",
+ fprintf(out, "%s: %3u%% (%u/%u)%s%s",
progress->title, percent, n,
progress->total, tp, eol);
- fflush(stderr);
+ fflush(out);
progress_update = 0;
return 1;
}
} else if (progress_update) {
- fprintf(stderr, "%s: %u%s%s", progress->title, n, tp, eol);
- fflush(stderr);
+ fprintf(out, "%s: %u%s%s", progress->title, n, tp, eol);
+ fflush(out);
progress_update = 0;
return 1;
}
@@ -211,11 +213,12 @@ int display_progress(struct progress *progress, unsigned n)
struct progress *start_progress_delay(const char *title, unsigned total,
unsigned percent_treshold, unsigned delay)
{
+ FILE *out = original_stderr ? original_stderr : stderr;
struct progress *progress = malloc(sizeof(*progress));
if (!progress) {
/* unlikely, but here's a good fallback */
- fprintf(stderr, "%s...\n", title);
- fflush(stderr);
+ fprintf(out, "%s...\n", title);
+ fflush(out);
return NULL;
}
progress->title = title;
--
1.7.4.39.ge4c30
next prev parent reply other threads:[~2011-03-23 18:19 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-22 21:45 [PATCH] builtin/diff.c: remove duplicated call to diff_result_code() Junio C Hamano
2011-03-22 21:50 ` [PATCH 1/3] diffcore-rename: refactor "too many candidates" logic Junio C Hamano
2011-03-22 21:50 ` [PATCH 2/3] diffcore-rename: record filepair for rename src Junio C Hamano
2011-03-22 21:50 ` [PATCH 3/3] diffcore-rename: fall back to -C when -C -C busts the rename limit Junio C Hamano
2011-03-23 15:58 ` Jeff King
2011-03-23 16:41 ` Junio C Hamano
2011-03-23 16:50 ` Jeff King
2011-03-23 18:17 ` Jeff King
2011-03-23 18:18 ` [PATCH 1/3] pager: save the original stderr when redirecting to pager Jeff King
2011-03-23 18:19 ` Jeff King [this message]
2011-03-23 18:19 ` [PATCH 3/3] show: turn on rename progress Jeff King
2011-03-23 21:25 ` Junio C Hamano
2011-03-24 14:50 ` Jeff King
2011-03-24 15:00 ` Junio C Hamano
2011-03-24 17:45 ` Jeff King
2011-03-24 17:46 ` [PATCH 1/4] pager: save the original stderr when redirecting to pager Jeff King
2011-03-24 17:47 ` [PATCH 2/4] progress: use pager's original_stderr if available Jeff King
2011-03-24 17:49 ` [PATCH 3/4] show: turn on rename detection progress reporting Jeff King
2011-03-24 23:35 ` Junio C Hamano
2011-03-24 17:51 ` [PATCH 4/4] diff: " Jeff King
2011-03-25 8:35 ` Johannes Sixt
2011-03-25 9:09 ` Jeff King
2011-03-24 23:03 ` [PATCH 3/3] show: turn on rename progress Junio C Hamano
2011-03-25 6:17 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110323181906.GB17533@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).