diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-09-27 10:20:47 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-09-27 10:20:47 +0000 |
commit | 4daad9004d8f07991516970a1cbd77756fae7041 (patch) | |
tree | f1a17e4b168ef8fdf8af92ac5ce8deba89d38db2 /miscutils/time.c | |
parent | 1acdc89e992eb3f0548ff48ba586b31c9a0ae232 (diff) | |
download | busybox-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.c | 19 |
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); |