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