1
2
3
4
5
6
7
8
9
10
11
12#include "libbb.h"
13
14int ttysize_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
15int ttysize_main(int argc, char **argv)
16{
17 unsigned w, h;
18 struct winsize wsz;
19
20 w = 80;
21 h = 24;
22 if (!ioctl(0, TIOCGWINSZ, &wsz)) {
23 w = wsz.ws_col;
24 h = wsz.ws_row;
25 }
26
27 if (argc == 1) {
28 printf("%u %u", w, h);
29 } else {
30 const char *fmt, *arg;
31
32 fmt = "%u %u" + 3;
33 while ((arg = *++argv) != NULL) {
34 char c = arg[0];
35 if (c == 'w')
36 printf(fmt, w);
37 if (c == 'h')
38 printf(fmt, h);
39 fmt = "%u %u" + 2;
40 }
41 }
42 bb_putchar('\n');
43 return 0;
44}
45