From 985fcdd8137c69a6d21a0da8a03393434a64221e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Groenvall?= Date: Fri, 31 Jul 1998 09:40:21 +0000 Subject: [PATCH] Make it work under SysV again. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5106 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/roken/get_window_size.c | 42 +++++++++++++------------------------ 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/lib/roken/get_window_size.c b/lib/roken/get_window_size.c index b709a2049..28a2c1467 100644 --- a/lib/roken/get_window_size.c +++ b/lib/roken/get_window_size.c @@ -68,31 +68,20 @@ RCSID("$Id$"); int get_window_size(int fd, struct winsize *wp) { - char *s; - struct winsize tmp; int ret = -1; memset(wp, 0, sizeof(*wp)); - memset(&tmp, 0, sizeof(tmp)); - if((s = getenv("COLUMNS"))) - wp->ws_col = atoi(s); - if((s = getenv("LINES"))) - wp->ws_row = atoi(s); - if(wp->ws_col > 0 && wp->ws_row > 0) - return 0; - + #if defined(TIOCGWINSZ) - ret = ioctl(fd, TIOCGWINSZ, &tmp); + ret = ioctl(fd, TIOCGWINSZ, wp); #elif defined(TIOCGSIZE) { struct ttysize ts; ret = ioctl(fd, TIOCGSIZE, &ts); if(ret == 0) { - tmp.ws_row = ts.ts_lines; - tmp.ws_col = ts.ts_cols; - tmp.ws_xpixel = 0; - tmp.ws_ypixel = 0; + wp->ws_row = ts.ts_lines; + wp->ws_col = ts.ts_cols; } } #elif defined(HAVE__SCRSIZE) @@ -100,22 +89,19 @@ get_window_size(int fd, struct winsize *wp) int dst[2]; _scrsize(dst); - tmp.ws_row = dst[1]; - tmp.ws_col = dst[0]; - tmp.ws_xpixel = 0; - tmp.ws_ypixel = 0; + wp->ws_row = dst[1]; + wp->ws_col = dst[0]; ret = 0; } #endif - if(ret == 0) { - if(wp->ws_col == 0) { - wp->ws_col = tmp.ws_col; - wp->ws_xpixel = tmp.ws_xpixel; - } - if(wp->ws_row == 0) { - wp->ws_row = tmp.ws_row; - wp->ws_ypixel = tmp.ws_ypixel; - } + if (ret != 0) { + char *s; + if((s = getenv("COLUMNS"))) + wp->ws_col = atoi(s); + if((s = getenv("LINES"))) + wp->ws_row = atoi(s); + if(wp->ws_col > 0 && wp->ws_row > 0) + ret = 0; } return ret; }