From 79c618c41193eaaa092cb977f06fc112155ba92b Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Tue, 30 Jul 2013 06:29:42 +0200 Subject: Refactor catv. Move visible() from stty to libbb. Fixes the following TODO: stty's visible() function and catv's guts are identical. Merge them into an appropriate libbb function. Also makes catv behave exactly like coreutils' cat -v e.g. it'll print 'M-^I' instead of 'M- '. function old new delta visible - 70 +70 do_display 431 379 -52 catv_main 306 250 -56 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/2 up/down: 70/-108) Total: -38 bytes Signed-off-by: Bartosz Golaszewski Signed-off-by: Denys Vlasenko --- include/libbb.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/libbb.h') diff --git a/include/libbb.h b/include/libbb.h index 83e9b5fb9..0c3734cdb 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -678,6 +678,10 @@ const char* FAST_FUNC printable_string(uni_stat_t *stats, const char *str); * else it is printed as-is (except for ch = 0x9b) */ enum { PRINTABLE_META = 0x100 }; void fputc_printable(int ch, FILE *file) FAST_FUNC; +/* Return a string that is the printable representation of character ch. + * Buffer must hold at least four characters. */ +enum { VISIBLE_SHOW_TABS = 1, VISIBLE_ENDLINE = 2 }; +void visible(unsigned ch, char *buf, int flags) FAST_FUNC; /* dmalloc will redefine these to it's own implementation. It is safe * to have the prototypes here unconditionally. */ -- cgit v1.2.3