From cad3fc743aa7c7744e4fcf044371f0fda50fa51f Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Wed, 3 Feb 2021 20:47:14 +0100 Subject: libbb: introduce and use fputs_stdout function old new delta fputs_stdout - 12 +12 zxc_vm_process 7237 7230 -7 yes_main 85 78 -7 write_block 380 373 -7 wrapf 305 298 -7 strings_main 437 430 -7 show_bridge 353 346 -7 rev_main 384 377 -7 put_prompt_custom 58 51 -7 put_cur_glyph_and_inc_cursor 168 161 -7 print_numbered_lines 152 145 -7 print_named_ascii 130 123 -7 print_name 135 128 -7 print_login_issue 386 379 -7 print_ascii 208 201 -7 powertop_main 1249 1242 -7 od_main 1789 1782 -7 logread_main 518 511 -7 head_main 804 797 -7 display_process_list 1319 1312 -7 cut_main 1002 995 -7 bb_dump_dump 1550 1543 -7 bb_ask_noecho 393 386 -7 baseNUM_main 702 695 -7 expand_main 755 745 -10 dumpleases_main 497 487 -10 write1 12 - -12 putcsi 37 23 -14 print_login_prompt 55 41 -14 paste_main 525 511 -14 cat_main 440 426 -14 print_it 245 230 -15 print_addrinfo 1188 1171 -17 print_rule 770 750 -20 print_linkinfo 842 822 -20 httpd_main 791 771 -20 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 0/34 up/down: 12/-341) Total: -329 bytes Signed-off-by: Ron Yorston Signed-off-by: Denys Vlasenko --- libbb/bb_askpass.c | 2 +- libbb/dump.c | 2 +- libbb/lineedit.c | 8 ++++---- libbb/login.c | 6 +++--- libbb/print_numbered_lines.c | 2 +- libbb/xfuncs_printf.c | 5 +++++ 6 files changed, 15 insertions(+), 10 deletions(-) (limited to 'libbb') diff --git a/libbb/bb_askpass.c b/libbb/bb_askpass.c index 2dcead35a..66d6a479e 100644 --- a/libbb/bb_askpass.c +++ b/libbb/bb_askpass.c @@ -25,7 +25,7 @@ char* FAST_FUNC bb_ask_noecho(int fd, int timeout, const char *prompt) /* Was buggy: was printing prompt *before* flushing input, * which was upsetting "expect" based scripts of some users. */ - fputs(prompt, stdout); + fputs_stdout(prompt); fflush_all(); tcgetattr(fd, &oldtio); diff --git a/libbb/dump.c b/libbb/dump.c index 1ba1132b3..fb7849e7d 100644 --- a/libbb/dump.c +++ b/libbb/dump.c @@ -560,7 +560,7 @@ static void display(priv_dumper_t* dumper) ) { if (dumper->pub.eofstring) { /* xxd support: requested to not pad incomplete blocks */ - fputs(dumper->pub.eofstring, stdout); + fputs_stdout(dumper->pub.eofstring); return; } if (!(pr->flags & (F_TEXT | F_BPAD))) diff --git a/libbb/lineedit.c b/libbb/lineedit.c index 75de88e77..367396b91 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c @@ -312,7 +312,7 @@ static void BB_PUTCHAR(wchar_t c) ssize_t len = wcrtomb(buf, c, &mbst); if (len > 0) { buf[len] = '\0'; - fputs(buf, stdout); + fputs_stdout(buf); } } else { /* In this case, c is always one byte */ @@ -460,7 +460,7 @@ static void beep(void) */ static void put_prompt_custom(bool is_full) { - fputs((is_full ? cmdedit_prompt : prompt_last_line), stdout); + fputs_stdout((is_full ? cmdedit_prompt : prompt_last_line)); cursor = 0; cmdedit_y = cmdedit_prmt_len / cmdedit_termw; /* new quasireal y */ cmdedit_x = cmdedit_prmt_len % cmdedit_termw; @@ -1851,7 +1851,7 @@ static void ask_terminal(void) pfd.events = POLLIN; if (safe_poll(&pfd, 1, 0) == 0) { S.sent_ESC_br6n = 1; - fputs(ESC"[6n", stdout); + fputs_stdout(ESC"[6n"); fflush_all(); /* make terminal see it ASAP! */ } } @@ -2957,7 +2957,7 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman #undef read_line_input int FAST_FUNC read_line_input(const char* prompt, char* command, int maxsize) { - fputs(prompt, stdout); + fputs_stdout(prompt); fflush_all(); if (!fgets(command, maxsize, stdin)) return -1; diff --git a/libbb/login.c b/libbb/login.c index 7f593d80d..af860c277 100644 --- a/libbb/login.c +++ b/libbb/login.c @@ -120,7 +120,7 @@ void FAST_FUNC print_login_issue(const char *issue_file, const char *tty) buf[0] = c; } } - fputs(outbuf, stdout); + fputs_stdout(outbuf); } fclose(fp); fflush_all(); @@ -130,8 +130,8 @@ void FAST_FUNC print_login_prompt(void) { char *hostname = safe_gethostname(); - fputs(hostname, stdout); - fputs(LOGIN, stdout); + fputs_stdout(hostname); + fputs_stdout(LOGIN); fflush_all(); free(hostname); } diff --git a/libbb/print_numbered_lines.c b/libbb/print_numbered_lines.c index 4758068a4..b64f85597 100644 --- a/libbb/print_numbered_lines.c +++ b/libbb/print_numbered_lines.c @@ -25,7 +25,7 @@ int FAST_FUNC print_numbered_lines(struct number_state *ns, const char *filename printf("%*u%s", ns->width, N, ns->sep); N += ns->inc; } else if (ns->empty_str) - fputs(ns->empty_str, stdout); + fputs_stdout(ns->empty_str); puts(line); free(line); } diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c index 99596b9d0..f0399ca45 100644 --- a/libbb/xfuncs_printf.c +++ b/libbb/xfuncs_printf.c @@ -318,6 +318,11 @@ int FAST_FUNC bb_putchar(int ch) return putchar(ch); } +int FAST_FUNC fputs_stdout(const char *s) +{ + return fputs(s, stdout); +} + /* Die with an error message if we can't copy an entire FILE* to stdout, * then close that file. */ void FAST_FUNC xprint_and_close_file(FILE *file) -- cgit v1.2.3