b44c790e41
chrt,taskset,dc,eject: shrink crontab: call "vi" with just name, no path watchdog: intercept all fatal signals function old new delta xstrtoull_range - 35 +35 static.sg_commands - 18 +18 packed_usage 23698 23712 +14 watchdog_main 148 151 +3 crontab_main 637 638 +1 base 1 - -1 static.ps 4 - -4 pointer 4 - -4 stack_machine 99 92 -7 run_command 273 260 -13 eject_main 360 343 -17 static.C 30 12 -18 ptok 61 38 -23 xstrtol_range 27 - -27 get_token 35 - -35 taskset_main 586 550 -36 chrt_main 411 372 -39 dc_main 158 117 -41 time_main 1127 1037 -90 ------------------------------------------------------------------------------ (add/remove: 2/5 grow/shrink: 3/9 up/down: 71/-355) Total: -284 bytes text data bss dec hex filename 793680 662 7420 801762 c3be2 busybox_old 793327 662 7412 801401 c3a79 busybox_unstripped
45 lines
975 B
C
45 lines
975 B
C
/* vi: set sw=4 ts=4: */
|
|
/*
|
|
* Replacement for "stty size", which is awkward for shell script use.
|
|
* - Allows to request width, height, or both, in any order.
|
|
* - Does not complain on error, but returns width 80, height 24.
|
|
* - Size: less than 200 bytes
|
|
*
|
|
* Copyright (C) 2007 by Denys Vlasenko <vda.linux@googlemail.com>
|
|
*
|
|
* Licensed under the GPL v2, see the file LICENSE in this tarball.
|
|
*/
|
|
#include "libbb.h"
|
|
|
|
int ttysize_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
|
int ttysize_main(int argc, char **argv)
|
|
{
|
|
unsigned w, h;
|
|
struct winsize wsz;
|
|
|
|
w = 80;
|
|
h = 24;
|
|
if (!ioctl(0, TIOCGWINSZ, &wsz)) {
|
|
w = wsz.ws_col;
|
|
h = wsz.ws_row;
|
|
}
|
|
|
|
if (argc == 1) {
|
|
printf("%u %u", w, h);
|
|
} else {
|
|
const char *fmt, *arg;
|
|
|
|
fmt = "%u %u" + 3; /* "%u" */
|
|
while ((arg = *++argv) != NULL) {
|
|
char c = arg[0];
|
|
if (c == 'w')
|
|
printf(fmt, w);
|
|
if (c == 'h')
|
|
printf(fmt, h);
|
|
fmt = "%u %u" + 2; /* " %u" */
|
|
}
|
|
}
|
|
bb_putchar('\n');
|
|
return 0;
|
|
}
|