aboutsummaryrefslogtreecommitdiff
path: root/miscutils/time.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-09-27 10:20:47 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-09-27 10:20:47 +0000
commit4daad9004d8f07991516970a1cbd77756fae7041 (patch)
treef1a17e4b168ef8fdf8af92ac5ce8deba89d38db2 /miscutils/time.c
parent1acdc89e992eb3f0548ff48ba586b31c9a0ae232 (diff)
downloadbusybox-w32-4daad9004d8f07991516970a1cbd77756fae7041.tar.gz
busybox-w32-4daad9004d8f07991516970a1cbd77756fae7041.tar.bz2
busybox-w32-4daad9004d8f07991516970a1cbd77756fae7041.zip
introduce bb_putchar(). saves ~1800 on uclibc (less on glibc).
Diffstat (limited to 'miscutils/time.c')
-rw-r--r--miscutils/time.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/miscutils/time.c b/miscutils/time.c
index e8473f702..8f79a51ec 100644
--- a/miscutils/time.c
+++ b/miscutils/time.c
@@ -188,8 +188,6 @@ static void summarize(const char *fmt, char **command, resource_t * resp)
188#endif 188#endif
189 if (!cpu_ticks) cpu_ticks = 1; /* we divide by it, must be nonzero */ 189 if (!cpu_ticks) cpu_ticks = 1; /* we divide by it, must be nonzero */
190 190
191 /* putchar() != putc(stdout) in glibc! */
192
193 while (*fmt) { 191 while (*fmt) {
194 /* Handle leading literal part */ 192 /* Handle leading literal part */
195 int n = strcspn(fmt, "%\\"); 193 int n = strcspn(fmt, "%\\");
@@ -205,7 +203,7 @@ static void summarize(const char *fmt, char **command, resource_t * resp)
205 /* Usually we optimize for size, but there is a limit 203 /* Usually we optimize for size, but there is a limit
206 * for everything. With this we do a lot of 1-byte writes */ 204 * for everything. With this we do a lot of 1-byte writes */
207 default: 205 default:
208 putc(*fmt, stdout); 206 bb_putchar(*fmt);
209 break; 207 break;
210#endif 208#endif
211 209
@@ -215,11 +213,11 @@ static void summarize(const char *fmt, char **command, resource_t * resp)
215 /* Our format strings do not have these */ 213 /* Our format strings do not have these */
216 /* and we do not take format str from user */ 214 /* and we do not take format str from user */
217 default: 215 default:
218 putc('%', stdout); 216 bb_putchar('%');
219 /*FALLTHROUGH*/ 217 /*FALLTHROUGH*/
220 case '%': 218 case '%':
221 if (!*fmt) goto ret; 219 if (!*fmt) goto ret;
222 putc(*fmt, stdout); 220 bb_putchar(*fmt);
223 break; 221 break;
224#endif 222#endif
225 case 'C': /* The command that got timed. */ 223 case 'C': /* The command that got timed. */
@@ -351,17 +349,17 @@ static void summarize(const char *fmt, char **command, resource_t * resp)
351 case '\\': /* Format escape. */ 349 case '\\': /* Format escape. */
352 switch (*++fmt) { 350 switch (*++fmt) {
353 default: 351 default:
354 putc('\\', stdout); 352 bb_putchar('\\');
355 /*FALLTHROUGH*/ 353 /*FALLTHROUGH*/
356 case '\\': 354 case '\\':
357 if (!*fmt) goto ret; 355 if (!*fmt) goto ret;
358 putc(*fmt, stdout); 356 bb_putchar(*fmt);
359 break; 357 break;
360 case 't': 358 case 't':
361 putc('\t', stdout); 359 bb_putchar('\t');
362 break; 360 break;
363 case 'n': 361 case 'n':
364 putc('\n', stdout); 362 bb_putchar('\n');
365 break; 363 break;
366 } 364 }
367 break; 365 break;
@@ -370,7 +368,7 @@ static void summarize(const char *fmt, char **command, resource_t * resp)
370 ++fmt; 368 ++fmt;
371 } 369 }
372 /* ret: */ 370 /* ret: */
373 putc('\n', stdout); 371 bb_putchar('\n');
374} 372}
375 373
376/* Run command CMD and return statistics on it. 374/* Run command CMD and return statistics on it.
@@ -437,6 +435,7 @@ int time_main(int argc, char **argv)
437 run_command(argv, &res); 435 run_command(argv, &res);
438 436
439 /* Cheat. printf's are shorter :) */ 437 /* Cheat. printf's are shorter :) */
438 /* (but see bb_putchar() body for additional wrinkle!) */
440 stdout = stderr; 439 stdout = stderr;
441 dup2(2, 1); /* just in case libc does something silly :( */ 440 dup2(2, 1); /* just in case libc does something silly :( */
442 summarize(output_format, argv, &res); 441 summarize(output_format, argv, &res);