libbb: factor out code which queries screen width
No binary (build failed)
—
(log yok)
| @@ -1105,7 +1105,7 @@ int ls_main(int argc UNUSED_PARAM, char **argv) | |
| #if ENABLE_FEATURE_AUTOWIDTH | |
| /* obtain the terminal width */ | |
| - | get_terminal_width_height(STDIN_FILENO, &G_terminal_width, NULL); |
| + | G_terminal_width = get_terminal_width(STDIN_FILENO); |
| /* go one less... */ | |
| G_terminal_width--; | |
| #endif | |
| @@ -1403,7 +1403,7 @@ int stty_main(int argc UNUSED_PARAM, char **argv) | |
| perror_on_device_and_die("%s"); | |
| if (stty_state & (STTY_verbose_output | STTY_recoverable_output | STTY_noargs)) { | |
| - | get_terminal_width_height(STDOUT_FILENO, &G.max_col, NULL); |
| + | G.max_col = get_terminal_width(STDOUT_FILENO); |
| output_func(&mode, display_all); | |
| return EXIT_SUCCESS; | |
| } | |
| @@ -1399,6 +1399,7 @@ extern void print_login_prompt(void) FAST_FUNC; | |
| char *xmalloc_ttyname(int fd) FAST_FUNC RETURNS_MALLOC; | |
| /* NB: typically you want to pass fd 0, not 1. Think 'applet | grep something' */ | |
| int get_terminal_width_height(int fd, unsigned *width, unsigned *height) FAST_FUNC; | |
| + | int get_terminal_width(int fd) FAST_FUNC; |
| int tcsetattr_stdin_TCSANOW(const struct termios *tp) FAST_FUNC; | |
| @@ -623,7 +623,7 @@ static int busybox_main(char **argv) | |
| output_width = 80; | |
| if (ENABLE_FEATURE_AUTOWIDTH) { | |
| /* Obtain the terminal width */ | |
| - | get_terminal_width_height(0, &output_width, NULL); |
| + | output_width = get_terminal_width(2); |
| } | |
| dup2(1, 2); | |
| @@ -45,13 +45,6 @@ enum { | |
| STALLTIME = 5 | |
| }; | |
| - | static unsigned int get_tty2_width(void) |
| - | { |
| - | unsigned width; |
| - | get_terminal_width_height(2, &width, NULL); |
| - | return width; |
| - | } |
| - | |
| void FAST_FUNC bb_progress_init(bb_progress_t *p, const char *curfile) | |
| { | |
| #if ENABLE_UNICODE_SUPPORT | |
| @@ -148,7 +141,7 @@ void FAST_FUNC bb_progress_update(bb_progress_t *p, | |
| unsigned ratio = 100 * beg_and_transferred / totalsize; | |
| fprintf(stderr, "%4u%%", ratio); | |
| - | barlength = get_tty2_width() - 49; |
| + | barlength = get_terminal_width(2) - 49; |
| if (barlength > 0) { | |
| /* god bless gcc for variable arrays :) */ | |
| char buf[barlength + 1]; | |
| @@ -270,6 +270,12 @@ int FAST_FUNC get_terminal_width_height(int fd, unsigned *width, unsigned *heigh | |
| *width = wh_helper(win.ws_col, 80, "COLUMNS", &err); | |
| return err; | |
| } | |
| + | int FAST_FUNC get_terminal_width(int fd) |
| + | { |
| + | unsigned width; |
| + | get_terminal_width_height(fd, &width, NULL); |
| + | return width; |
| + | } |
| int FAST_FUNC tcsetattr_stdin_TCSANOW(const struct termios *tp) | |
| { | |
| @@ -622,7 +622,7 @@ int ps_main(int argc UNUSED_PARAM, char **argv) | |
| * and such large widths */ | |
| terminal_width = MAX_WIDTH; | |
| if (isatty(1)) { | |
| - | get_terminal_width_height(0, &terminal_width, NULL); |
| + | terminal_width = get_terminal_width(0); |
| if (--terminal_width > MAX_WIDTH) | |
| terminal_width = MAX_WIDTH; | |
| } | |
| @@ -672,7 +672,7 @@ int ps_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |
| if (w_count) { | |
| terminal_width = (w_count == 1) ? 132 : MAX_WIDTH; | |
| } else { | |
| - | get_terminal_width_height(0, &terminal_width, NULL); |
| + | terminal_width = get_terminal_width(0); |
| /* Go one less... */ | |
| if (--terminal_width > MAX_WIDTH) | |
| terminal_width = MAX_WIDTH; | |
| @@ -381,7 +381,7 @@ int pstree_main(int argc UNUSED_PARAM, char **argv) | |
| INIT_G(); | |
| - | get_terminal_width_height(0, &G.output_width, NULL); |
| + | G.output_width = get_terminal_width(0); |
| opt_complementary = "?1"; | |
| getopt32(argv, "p"); | |
| @@ -72,7 +72,7 @@ int watch_main(int argc UNUSED_PARAM, char **argv) | |
| // STDERR_FILENO is procps3 compat: | |
| // "watch ls 2>/dev/null" does not detect tty size | |
| - | get_terminal_width_height(STDERR_FILENO, &new_width, NULL); |
| + | new_width = get_terminal_width(STDERR_FILENO); |
| if (new_width != width) { | |
| width = new_width; | |
| free(header); | |