X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-ui%2Fcurs_lib.c;h=c50c18d2883d57c67dabc5d839af138da123625b;hb=b8e3053577ab5d351882096830421cd55639cc97;hp=937ada48a0bdc13b07768c18d2c2a54a4197d6f4;hpb=97e1d274dfbeb8b4a5da3f2b68fb66f96b7739d3;p=apps%2Fmadmutt.git diff --git a/lib-ui/curs_lib.c b/lib-ui/curs_lib.c index 937ada4..c50c18d 100644 --- a/lib-ui/curs_lib.c +++ b/lib-ui/curs_lib.c @@ -14,6 +14,11 @@ #include #include +#ifdef HAVE_SYS_IOCTL_H +# include +#elif defined(HAVE_IOCTL_H) +# include +#endif #include #include @@ -438,7 +443,6 @@ void mutt_flushinp (void) flushinp (); } -#if (defined(USE_SLANG_CURSES) || defined(HAVE_CURS_SET)) /* The argument can take 3 values: * -1: restore the value of the last call * 0: make the cursor invisible @@ -458,7 +462,6 @@ void mutt_curs_set (int cursor) curs_set (2); /* cvvis */ } } -#endif int mutt_multi_choice (const char *prompt, const char *letters) { @@ -668,3 +671,36 @@ void mutt_paddstr (int n, const char *s) addch (' '); } +/* this routine should be called after receiving SIGWINCH */ +void mutt_resize_screen (void) +{ + char *cp; + int fd; + struct winsize w; + + int rows, cols; + + rows = -1; + cols = -1; + if ((fd = open ("/dev/tty", O_RDONLY)) != -1) { + if (ioctl (fd, TIOCGWINSZ, &w) != -1) { + rows = w.ws_row; + cols = w.ws_col; + } + close (fd); + } + if (rows <= 0) { + if ((cp = getenv ("LINES")) != NULL) { + rows = atoi (cp); + } + else + rows = 24; + } + if (cols <= 0) { + if ((cp = getenv ("COLUMNS")) != NULL) + cols = atoi (cp); + else + cols = 80; + } + resizeterm (rows, cols); +}