*: add most of the required setup_common_bufsiz() calls
[oweals/busybox.git] / console-tools / resize.c
index fdfe2a6a0cf80020702e049f0dc27fe7360536fb..a3342a1956bc43550450a98e850e8d79777afaee 100644 (file)
@@ -7,11 +7,19 @@
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 /* no options, no getopt */
+
+//usage:#define resize_trivial_usage
+//usage:       ""
+//usage:#define resize_full_usage "\n\n"
+//usage:       "Resize the screen"
+
 #include "libbb.h"
+#include "common_bufsiz.h"
 
 #define ESC "\033"
 
-#define old_termios_p ((struct termios*)&bb_common_bufsiz1)
+#define old_termios_p ((struct termios*)bb_common_bufsiz1)
+#define INIT_G() do { setup_common_bufsiz(); } while (0)
 
 static void
 onintr(int sig UNUSED_PARAM)
@@ -27,6 +35,8 @@ int resize_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
        struct winsize w = { 0, 0, 0, 0 };
        int ret;
 
+       INIT_G();
+
        /* We use _stderr_ in order to make resize usable
         * in shell backticks (those redirect stdout away from tty).
         * NB: other versions of resize open "/dev/tty"
@@ -53,6 +63,7 @@ int resize_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
         */
        fprintf(stderr, ESC"7" ESC"[r" ESC"[999;999H" ESC"[6n");
        alarm(3); /* Just in case terminal won't answer */
+//BUG: death by signal won't restore termios
        scanf(ESC"[%hu;%huR", &w.ws_row, &w.ws_col);
        fprintf(stderr, ESC"8");