summaryrefslogtreecommitdiff
path: root/editors
diff options
context:
space:
mode:
authorEric Andersen2003-09-15 08:33:45 +0000
committerEric Andersen2003-09-15 08:33:45 +0000
commit8efe967018dd79aacfe3ca1e2583f115d744e466 (patch)
tree7590704be6cf03c87242043f5909e12eb4150356 /editors
parentc4f72d1426e03f046ac54a00d733a4a52c3a5d4b (diff)
downloadbusybox-8efe967018dd79aacfe3ca1e2583f115d744e466.zip
busybox-8efe967018dd79aacfe3ca1e2583f115d744e466.tar.gz
Be entirely consistant when using ioctl(0, TIOCGWINSZ, &winsize)
to ensure proper fallback behavior on, i.e. serial consoles. -Erik
Diffstat (limited to 'editors')
-rw-r--r--editors/vi.c36
1 files changed, 9 insertions, 27 deletions
diff --git a/editors/vi.c b/editors/vi.c
index 144e9d7..e01ee11 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -19,7 +19,7 @@
*/
static const char vi_Version[] =
- "$Id: vi.c,v 1.28 2003/03/19 09:11:45 mjn3 Exp $";
+ "$Id: vi.c,v 1.29 2003/09/15 08:33:36 andersen Exp $";
/*
* To compile for standalone use:
@@ -197,9 +197,6 @@ static jmp_buf restart; // catch_sig()
#if defined(CONFIG_FEATURE_VI_USE_SIGNALS) || defined(CONFIG_FEATURE_VI_CRASHME)
static int my_pid;
#endif
-#ifdef CONFIG_FEATURE_VI_WIN_RESIZE
-static struct winsize winsize; // remember the window size
-#endif /* CONFIG_FEATURE_VI_WIN_RESIZE */
#ifdef CONFIG_FEATURE_VI_DOT_CMD
static int adding2q; // are we currently adding user input to q
static Byte *last_modifying_cmd; // last modifying cmd for "."
@@ -412,6 +409,14 @@ extern int vi_main(int argc, char **argv)
return (0);
}
+#ifdef CONFIG_FEATURE_VI_WIN_RESIZE
+//----- See what the window size currently is --------------------
+static inline void window_size_get(int fd)
+{
+ get_terminal_width_height(fd, &columns, &rows);
+}
+#endif /* CONFIG_FEATURE_VI_WIN_RESIZE */
+
static void edit_file(Byte * fn)
{
Byte c;
@@ -2122,29 +2127,6 @@ static void cookmode(void)
tcsetattr(0, TCSANOW, &term_orig);
}
-#ifdef CONFIG_FEATURE_VI_WIN_RESIZE
-//----- See what the window size currently is --------------------
-static void window_size_get(int sig)
-{
- int i;
-
- i = ioctl(0, TIOCGWINSZ, &winsize);
- if (i != 0) {
- // force 24x80
- winsize.ws_row = 24;
- winsize.ws_col = 80;
- }
- if (winsize.ws_row <= 1) {
- winsize.ws_row = 24;
- }
- if (winsize.ws_col <= 1) {
- winsize.ws_col = 80;
- }
- rows = (int) winsize.ws_row;
- columns = (int) winsize.ws_col;
-}
-#endif /* CONFIG_FEATURE_VI_WIN_RESIZE */
-
//----- Come here when we get a window resize signal ---------
#ifdef CONFIG_FEATURE_VI_USE_SIGNALS
static void winch_sig(int sig)