aboutsummaryrefslogtreecommitdiff
path: root/lib/interestingtimes.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2018-10-21 13:05:22 -0500
committerRob Landley <rob@landley.net>2018-10-21 13:05:22 -0500
commit3e0b077ec236aa26bfeb290f3cd7973ec3fbcb7d (patch)
tree0fd8275af029861fa62a9316bef316c12f71ae0c /lib/interestingtimes.c
parent74f22a7d5cb6ed03f00c261fb4e28b411f1c4c0a (diff)
downloadtoybox-3e0b077ec236aa26bfeb290f3cd7973ec3fbcb7d.tar.gz
Move start_redraw() to lib/ and have ps.c (top) use it.
Diffstat (limited to 'lib/interestingtimes.c')
-rw-r--r--lib/interestingtimes.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/interestingtimes.c b/lib/interestingtimes.c
index c3ed9f9a..9cf84041 100644
--- a/lib/interestingtimes.c
+++ b/lib/interestingtimes.c
@@ -258,3 +258,20 @@ void tty_sigreset(int i)
tty_reset();
_exit(i ? 128+i : 0);
}
+
+void start_redraw(unsigned *width, unsigned *height)
+{
+ // If never signaled, do raw mode setup.
+ if (!toys.signal) {
+ *width = 80;
+ *height = 25;
+ set_terminal(0, 1, 0, 0);
+ sigatexit(tty_sigreset);
+ xsignal(SIGWINCH, generic_signal);
+ }
+ if (toys.signal != -1) {
+ toys.signal = -1;
+ terminal_probesize(width, height);
+ }
+ xprintf("\033[H\033[J");
+}