diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2006-08-29 03:31:54 +0400 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2006-08-29 03:31:54 +0400 |
commit | 73561cc75ac31e63bcab4b4ebfaf738e4ca225e6 (patch) | |
tree | 2a57564b8917a983365c765d4daa83032d9f0a17 /coreutils/catv.c | |
parent | 6ce8dae1d5a201156a83201de6c49cdcc4c8df3e (diff) |
- pull from busybox_scratch: r15829:15850
Various fixes, cleanups and shrinkage:
saves 952 Bytes:
text data bss dec hex filename
1087742 15853 790632 1894227 1ce753 ../busybox/busybox.old
1086790 15853 790632 1893275 1ce39b busybox
via:
# scripts/bloat-o-meter ../busybox/busybox_unstripped.old busybox_unstripped
function old new delta
ipcrm_main 756 822 +66
getval - 61 +61
maybe_set_utc - 40 +40
udhcpc_main 2896 2912 +16
md5_hash_block 428 437 +9
opt 8 16 +8
qgravechar 106 110 +4
make_bitmap 292 295 +3
inflate_unzip 2056 2059 +3
add_partition 1412 1414 +2
__parsespent 156 158 +2
qrealloc 41 42 +1
format - 1 +1
catv_main 313 314 +1
watch_main 293 292 -1
varunset 81 80 -1
part 1 - -1
check_if_skip 837 836 -1
start_stop_daemon_main 840 837 -3
create_lost_and_found 175 172 -3
supress_non_delimited_lines 4 - -4
static.l 4 - -4
static.c 5 1 -4
bsd_sum_file 237 233 -4
eval2 338 332 -6
arithmetic_common 166 158 -8
cmpfunc 22 5 -17
cksum_main 294 275 -19
cmp_main 465 439 -26
dd_main 1535 1508 -27
rmmod_main 376 333 -43
cut_file 727 644 -83
ipcs_main 3809 3721 -88
cut_main 722 614 -108
date_main 1443 1263 -180
remove_ids 222 - -222
------------------------------------------------------------------------------
(add/remove: 3/4 grow/shrink: 11/18 up/down: 217/-853) Total: -636 bytes
Diffstat (limited to 'coreutils/catv.c')
-rw-r--r-- | coreutils/catv.c | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/coreutils/catv.c b/coreutils/catv.c index e18203915..f8229c20e 100644 --- a/coreutils/catv.c +++ b/coreutils/catv.c @@ -14,49 +14,55 @@ int catv_main(int argc, char **argv) { - int retval = EXIT_SUCCESS, fd, flags; + int retval = EXIT_SUCCESS, fd; + unsigned long flags; flags = bb_getopt_ulflags(argc, argv, "etv"); - flags ^= 4; - - // Loop through files. +#define CATV_OPT_e (1<<0) +#define CATV_OPT_t (1<<1) +#define CATV_OPT_v (1<<2) + flags ^= CATV_OPT_v; argv += optind; do { - // Read from stdin if there's nothing else to do. - + /* Read from stdin if there's nothing else to do. */ fd = 0; - if (*argv && 0>(fd = xopen(*argv, O_RDONLY))) retval = EXIT_FAILURE; - else for(;;) { + if (*argv && 0 > (fd = xopen(*argv, O_RDONLY))) + retval = EXIT_FAILURE; + else for (;;) { int i, res; res = read(fd, bb_common_bufsiz1, sizeof(bb_common_bufsiz1)); - if (res < 0) retval = EXIT_FAILURE; - if (res <1) break; - for (i=0; i<res; i++) { - char c=bb_common_bufsiz1[i]; + if (res < 0) + retval = EXIT_FAILURE; + if (res < 1) + break; + for (i = 0; i < res; i++) { + char c = bb_common_bufsiz1[i]; - if (c > 126 && (flags & 4)) { + if (c > 126 && (flags & CATV_OPT_v)) { if (c == 127) { - printf("^?"); + bb_printf("^?"); continue; } else { - printf("M-"); + bb_printf("M-"); c -= 128; } } if (c < 32) { if (c == 10) { - if (flags & 1) putchar('$'); - } else if (flags & (c==9 ? 2 : 4)) { - printf("^%c", c+'@'); + if (flags & CATV_OPT_e) + putchar('$'); + } else if (flags & (c==9 ? CATV_OPT_t : CATV_OPT_v)) { + bb_printf("^%c", c+'@'); continue; } } putchar(c); } } - if (ENABLE_FEATURE_CLEAN_UP && fd) close(fd); + if (ENABLE_FEATURE_CLEAN_UP && fd) + close(fd); } while (*++argv); return retval; |