aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraldot <aldot@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-09-22 08:18:41 +0000
committeraldot <aldot@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-09-22 08:18:41 +0000
commit0d8d1a368efe2f9dec33693d50c9fc0c76e94d3b (patch)
tree7ef19a74169e184fab135e134d6f21b66bd6f44a
parent310cb43afb101eacc9588643530c41873cd7869a (diff)
downloadbusybox-w32-0d8d1a368efe2f9dec33693d50c9fc0c76e94d3b.tar.gz
busybox-w32-0d8d1a368efe2f9dec33693d50c9fc0c76e94d3b.tar.bz2
busybox-w32-0d8d1a368efe2f9dec33693d50c9fc0c76e94d3b.zip
- add new applet resize.
text data bss dec hex filename 185 0 0 185 b9 console-tools/resize.o 255 0 0 255 ff console-tools/resize.o.print git-svn-id: svn://busybox.net/trunk/busybox@16176 69ca8d6d-28ef-0310-b511-8ec308f3f277
-rw-r--r--console-tools/Config.in17
-rw-r--r--console-tools/Makefile.in1
-rw-r--r--console-tools/resize.c38
-rw-r--r--include/applets.h1
-rw-r--r--include/usage.h5
5 files changed, 62 insertions, 0 deletions
diff --git a/console-tools/Config.in b/console-tools/Config.in
index ec2273c35..27b14a865 100644
--- a/console-tools/Config.in
+++ b/console-tools/Config.in
@@ -58,6 +58,23 @@ config CONFIG_RESET
58 This program is used to reset the terminal screen, if it 58 This program is used to reset the terminal screen, if it
59 gets messed up. 59 gets messed up.
60 60
61config CONFIG_APP_RESIZE
62 bool "resize"
63 default n
64 help
65 This program is used to (re)set the width and height of your current
66 terminal.
67
68config CONFIG_FEATURE_RESIZE_PRINT
69 bool "print environment variables"
70 default n
71 depends on CONFIG_APP_RESIZE
72 help
73 Prints the newly set size (number of columns and rows) of
74 the terminal.
75 E.g.:
76 COLUMNS=80;LINES=44;export COLUMNS LINES;
77
61config CONFIG_SETCONSOLE 78config CONFIG_SETCONSOLE
62 bool "setconsole" 79 bool "setconsole"
63 default n 80 default n
diff --git a/console-tools/Makefile.in b/console-tools/Makefile.in
index 437bcd0ec..92331f527 100644
--- a/console-tools/Makefile.in
+++ b/console-tools/Makefile.in
@@ -20,6 +20,7 @@ CONSOLETOOLS-$(CONFIG_LOADFONT) += loadfont.o
20CONSOLETOOLS-$(CONFIG_LOADKMAP) += loadkmap.o 20CONSOLETOOLS-$(CONFIG_LOADKMAP) += loadkmap.o
21CONSOLETOOLS-$(CONFIG_OPENVT) += openvt.o 21CONSOLETOOLS-$(CONFIG_OPENVT) += openvt.o
22CONSOLETOOLS-$(CONFIG_RESET) += reset.o 22CONSOLETOOLS-$(CONFIG_RESET) += reset.o
23CONSOLETOOLS-$(CONFIG_APP_RESIZE) += resize.o
23CONSOLETOOLS-$(CONFIG_SETKEYCODES) += setkeycodes.o 24CONSOLETOOLS-$(CONFIG_SETKEYCODES) += setkeycodes.o
24CONSOLETOOLS-$(CONFIG_SETLOGCONS) += setlogcons.o 25CONSOLETOOLS-$(CONFIG_SETLOGCONS) += setlogcons.o
25 26
diff --git a/console-tools/resize.c b/console-tools/resize.c
new file mode 100644
index 000000000..4aaf2f233
--- /dev/null
+++ b/console-tools/resize.c
@@ -0,0 +1,38 @@
1/* vi: set sw=4 ts=4: */
2/*
3 * resize - set terminal width and height.
4 *
5 * Copyright 2006 Bernhard Fischer
6 *
7 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
8 */
9/* no options, no getopt */
10#include "busybox.h"
11
12int resize_main(int argc, char **argv)
13{
14 struct termios old, new;
15 struct winsize w = {0,0,0,0};
16 int ret;
17
18 tcgetattr(STDOUT_FILENO, &old); /* fiddle echo */
19 new = old;
20 new.c_cflag |= (CLOCAL | CREAD);
21 new.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
22 tcsetattr(STDOUT_FILENO, TCSANOW, &new);
23 /* save_cursor_pos 7
24 * scroll_whole_screen [r
25 * put_cursor_waaaay_off [$x;$yH
26 * get_cursor_pos [6n
27 * restore_cursor_pos 8
28 */
29 printf("\0337\033[r\033[999;999H\033[6n");
30 scanf("\033[%hu;%huR", &w.ws_row, &w.ws_col);
31 ret = ioctl(STDOUT_FILENO, TIOCSWINSZ, &w);
32 printf("\0338");
33 tcsetattr(STDOUT_FILENO, TCSANOW, &old);
34 if (ENABLE_FEATURE_RESIZE_PRINT)
35 printf("COLUMNS=%d;LINES=%d;export COLUMNS LINES;",
36 w.ws_col, w.ws_row);
37 return ret;
38}
diff --git a/include/applets.h b/include/applets.h
index 0bb257b6d..0263a2098 100644
--- a/include/applets.h
+++ b/include/applets.h
@@ -226,6 +226,7 @@ USE_REALPATH(APPLET(realpath, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
226USE_HALT(APPLET_ODDNAME(reboot, halt, _BB_DIR_SBIN, _BB_SUID_NEVER, reboot)) 226USE_HALT(APPLET_ODDNAME(reboot, halt, _BB_DIR_SBIN, _BB_SUID_NEVER, reboot))
227USE_RENICE(APPLET(renice, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) 227USE_RENICE(APPLET(renice, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
228USE_RESET(APPLET(reset, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) 228USE_RESET(APPLET(reset, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
229USE_APP_RESIZE(APPLET(resize, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
229USE_RM(APPLET(rm, _BB_DIR_BIN, _BB_SUID_NEVER)) 230USE_RM(APPLET(rm, _BB_DIR_BIN, _BB_SUID_NEVER))
230USE_RMDIR(APPLET(rmdir, _BB_DIR_BIN, _BB_SUID_NEVER)) 231USE_RMDIR(APPLET(rmdir, _BB_DIR_BIN, _BB_SUID_NEVER))
231USE_RMMOD(APPLET(rmmod, _BB_DIR_SBIN, _BB_SUID_NEVER)) 232USE_RMMOD(APPLET(rmmod, _BB_DIR_SBIN, _BB_SUID_NEVER))
diff --git a/include/usage.h b/include/usage.h
index 6ef7f1ecf..d7b8b2ab4 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -2455,6 +2455,11 @@ USE_FEATURE_MDEV_CONFIG( \
2455#define reset_full_usage \ 2455#define reset_full_usage \
2456 "Resets the screen." 2456 "Resets the screen."
2457 2457
2458#define resize_trivial_usage \
2459 ""
2460#define resize_full_usage \
2461 "Resizes the screen."
2462
2458#define rm_trivial_usage \ 2463#define rm_trivial_usage \
2459 "[OPTION]... FILE..." 2464 "[OPTION]... FILE..."
2460#define rm_full_usage \ 2465#define rm_full_usage \