diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-11-23 19:14:52 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-11-23 19:14:52 +0100 |
commit | 26602b85a3f679017b4366d3c1b2f6c5aa950aa5 (patch) | |
tree | afcfe36665d0ed24dcb9cc2aa6ee0dcc0e22a3e3 | |
parent | fbf5e6363b11c3381d077c6bb24f224f4e3bc802 (diff) | |
download | busybox-w32-26602b85a3f679017b4366d3c1b2f6c5aa950aa5.tar.gz busybox-w32-26602b85a3f679017b4366d3c1b2f6c5aa950aa5.tar.bz2 busybox-w32-26602b85a3f679017b4366d3c1b2f6c5aa950aa5.zip |
wget: print the final newline only for non-tty output
$ busybox wget URL 2>&1 | cat
Connecting to ....
install.iso 0% | | 2629k 0:02:05 ETA
install.iso 7% |** | 25.7M 0:00:23 ETA
install.iso 16% |***** | 54.1M 0:00:14 ETA
install.iso 20% |****** | 67.4M 0:00:15 ETA
install.iso 25% |******** | 81.0M 0:00:14 ETA
install.iso 30% |********* | 97.3M 0:00:13 ETA
install.iso 36% |*********** | 117M 0:00:12 ETA
install.iso 41% |************* | 134M 0:00:11 ETA
install.iso 47% |*************** | 152M 0:00:10 ETA
install.iso 54% |***************** | 176M 0:00:08 ETA
install.iso 61% |******************* | 200M 0:00:06 ETA
install.iso 66% |********************* | 215M 0:00:06 ETA
install.iso 71% |********************** | 231M 0:00:05 ETA
install.iso 75% |************************ | 244M 0:00:04 ETA
install.iso 79% |************************* | 257M 0:00:03 ETA
install.iso 84% |*************************** | 275M 0:00:02 ETA
install.iso 91% |***************************** | 297M 0:00:01 ETA
install.iso 99% |******************************* | 321M 0:00:00 ETA
install.iso 100% |********************************| 323M 0:00:00 ETA
<-- no empty line here
$
function old new delta
bb_progress_update 622 632 +10
progress_meter 152 158 +6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 16/0) Total: 16 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | include/libbb.h | 2 | ||||
-rw-r--r-- | libbb/progress.c | 5 | ||||
-rw-r--r-- | networking/wget.c | 7 |
3 files changed, 9 insertions, 5 deletions
diff --git a/include/libbb.h b/include/libbb.h index b041ce047..883457c0d 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -2007,7 +2007,7 @@ typedef struct bb_progress_t { | |||
2007 | (p)->curfile = NULL; \ | 2007 | (p)->curfile = NULL; \ |
2008 | } while (0) | 2008 | } while (0) |
2009 | void bb_progress_init(bb_progress_t *p, const char *curfile) FAST_FUNC; | 2009 | void bb_progress_init(bb_progress_t *p, const char *curfile) FAST_FUNC; |
2010 | void bb_progress_update(bb_progress_t *p, | 2010 | int bb_progress_update(bb_progress_t *p, |
2011 | uoff_t beg_range, | 2011 | uoff_t beg_range, |
2012 | uoff_t transferred, | 2012 | uoff_t transferred, |
2013 | uoff_t totalsize) FAST_FUNC; | 2013 | uoff_t totalsize) FAST_FUNC; |
diff --git a/libbb/progress.c b/libbb/progress.c index 23e974ce7..d071ce705 100644 --- a/libbb/progress.c +++ b/libbb/progress.c | |||
@@ -69,7 +69,7 @@ void FAST_FUNC bb_progress_init(bb_progress_t *p, const char *curfile) | |||
69 | * will be "totalsize" bytes. | 69 | * will be "totalsize" bytes. |
70 | * If totalsize == 0, then it is unknown. | 70 | * If totalsize == 0, then it is unknown. |
71 | */ | 71 | */ |
72 | void FAST_FUNC bb_progress_update(bb_progress_t *p, | 72 | int FAST_FUNC bb_progress_update(bb_progress_t *p, |
73 | uoff_t beg_size, | 73 | uoff_t beg_size, |
74 | uoff_t transferred, | 74 | uoff_t transferred, |
75 | uoff_t totalsize) | 75 | uoff_t totalsize) |
@@ -94,7 +94,7 @@ void FAST_FUNC bb_progress_update(bb_progress_t *p, | |||
94 | * Do not update on every call | 94 | * Do not update on every call |
95 | * (we can be called on every network read!) | 95 | * (we can be called on every network read!) |
96 | */ | 96 | */ |
97 | return; | 97 | return -1; |
98 | } | 98 | } |
99 | 99 | ||
100 | /* Before we lose real, unscaled sizes, produce human-readable size string */ | 100 | /* Before we lose real, unscaled sizes, produce human-readable size string */ |
@@ -211,4 +211,5 @@ void FAST_FUNC bb_progress_update(bb_progress_t *p, | |||
211 | } | 211 | } |
212 | if (notty) | 212 | if (notty) |
213 | fputc('\n', stderr); | 213 | fputc('\n', stderr); |
214 | return notty; | ||
214 | } | 215 | } |
diff --git a/networking/wget.c b/networking/wget.c index 65262e19d..44c481a99 100644 --- a/networking/wget.c +++ b/networking/wget.c | |||
@@ -283,13 +283,15 @@ enum { | |||
283 | #if ENABLE_FEATURE_WGET_STATUSBAR | 283 | #if ENABLE_FEATURE_WGET_STATUSBAR |
284 | static void progress_meter(int flag) | 284 | static void progress_meter(int flag) |
285 | { | 285 | { |
286 | int notty; | ||
287 | |||
286 | if (option_mask32 & WGET_OPT_QUIET) | 288 | if (option_mask32 & WGET_OPT_QUIET) |
287 | return; | 289 | return; |
288 | 290 | ||
289 | if (flag == PROGRESS_START) | 291 | if (flag == PROGRESS_START) |
290 | bb_progress_init(&G.pmt, G.curfile); | 292 | bb_progress_init(&G.pmt, G.curfile); |
291 | 293 | ||
292 | bb_progress_update(&G.pmt, | 294 | notty = bb_progress_update(&G.pmt, |
293 | G.beg_range, | 295 | G.beg_range, |
294 | G.transferred, | 296 | G.transferred, |
295 | (G.chunked || !G.got_clen) ? 0 : G.beg_range + G.transferred + G.content_len | 297 | (G.chunked || !G.got_clen) ? 0 : G.beg_range + G.transferred + G.content_len |
@@ -297,7 +299,8 @@ static void progress_meter(int flag) | |||
297 | 299 | ||
298 | if (flag == PROGRESS_END) { | 300 | if (flag == PROGRESS_END) { |
299 | bb_progress_free(&G.pmt); | 301 | bb_progress_free(&G.pmt); |
300 | bb_putchar_stderr('\n'); | 302 | if (notty == 0) |
303 | bb_putchar_stderr('\n'); /* it's tty */ | ||
301 | G.transferred = 0; | 304 | G.transferred = 0; |
302 | } | 305 | } |
303 | } | 306 | } |