git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] progress: use \r as EOL only if isatty(stderr) is true

From
SNSteffen Daode Nurpmeso <sdaoden@googlemail.com>
Date
Jun 28, 2011, 14:40 UTC
Message-ID
<1309272009-23076-1-git-send-email-sdaoden@gmail.com>

So far progress always uses \r to produce one-line output on stderr. This only produces useful and easy parsable output if stderr is opened on a file which does interpret CR as a real carriage return operation. This patch changes EOL to the plain newline \n control if isatty() is false instead.

Signed-off-by: Steffen Daode Nurpmeso <sdaoden@gmail.com>
---
 progress.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/progress.c b/progress.c
index 3971f49..c548de4 100644
--- a/progress.c
+++ b/progress.c
@@ -27,6 +27,7 @@ struct throughput {
 
 struct progress {
 	const char *title;
+	const char *eol;
 	int last_value;
 	unsigned total;
 	unsigned last_percent;
@@ -90,7 +91,7 @@ static int display(struct progress *progress, unsigned n, const char *done)
 
 	progress->last_value = n;
 	tp = (progress->throughput) ? progress->throughput->display : "";
-	eol = done ? done : "   \r";
+	eol = done ? done : progress->eol;
 	if (progress->total) {
 		unsigned percent = n * 100 / progress->total;
 		if (percent != progress->last_percent || progress_update) {
@@ -219,6 +220,7 @@ struct progress *start_progress_delay(const char *title, unsigned total,
 		return NULL;
 	}
 	progress->title = title;
+	progress->eol = isatty(fileno(stderr)) ? "   \r" : "\n";
 	progress->total = total;
 	progress->last_value = -1;
 	progress->last_percent = -1;
-- 
1.7.6.rc0
Next: Junio C Hamano
Message 1 of 21 in “progress: use \r as EOL only if isatty(stderr) is true”
  1. progress: use \r as EOL only if isatty(stderr) is trueSteffen Daode Nurpmeso, Jun 28, 2011
  2. Junio C HamanoJun 28, 2011
  3. Steffen Daode NurpmesoJun 28, 2011
  4. Steffen Daode NurpmesoJun 28, 2011
  5. Jeff KingJun 28, 2011
  6. Junio C HamanoJun 29, 2011
  7. Miles BaderJun 30, 2011
  8. sideband: remove line padding (was: Re: [PATCH] progress: use \r as EOL only if isatty(stderr) is true)Steffen Daode Nurpmeso, Jun 29, 2011
  9. Nicolas PitreJun 29, 2011
  10. Steffen Daode NurpmesoJun 30, 2011
  11. Nicolas PitreJul 1, 2011
  12. checkout: be quiet if not on isatty()Steffen Daode Nurpmeso, Aug 27, 2011
  13. checkout: be quiet if not on isatty()Steffen Daode Nurpmeso, Aug 27, 2011
  14. Junio C HamanoAug 28, 2011
  15. martin f krafftAug 28, 2011
  16. checkout: add --verbose, and restrict progress reporting (was: Re: [PATCH] checkout: be quiet if not on isatty())Steffen Daode Nurpmeso, Aug 28, 2011
  17. 0/2 Add update_progress(), divert checkout messagessdaoden@googlemail.com, Aug 29, 2011
  18. 1/2 progress: add update_progress()sdaoden@googlemail.com, Aug 29, 2011
  19. 2/2 unpack-trees: divert check_updates() output via update_progress()sdaoden@googlemail.com, Aug 29, 2011
  20. Steffen Daode NurpmesoJun 28, 2011
  21. Steffen Daode NurpmesoJun 28, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.