X-Git-Url: http://git.madism.org/?a=blobdiff_plain;ds=sidebyside;f=lib-ui%2Fcurs_lib.c;h=c50c18d2883d57c67dabc5d839af138da123625b;hb=b8e3053577ab5d351882096830421cd55639cc97;hp=936edda6ecfbbef089fd091d60155f6c3606d3c3;hpb=9946738a6a1c27a5602a14d1afe2eea2389732b2;p=apps%2Fmadmutt.git diff --git a/lib-ui/curs_lib.c b/lib-ui/curs_lib.c index 936edda..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 @@ -398,8 +403,8 @@ int _mutt_enter_fname (const char *prompt, char *buf, ssize_t blen, else if (ch.ch == '?') { mutt_refresh (); buf[0] = 0; - _mutt_select_file (buf, blen, M_SEL_FOLDER | (multiple ? M_SEL_MULTI : 0), - files, numfiles); + mutt_select_file (buf, blen, M_SEL_FOLDER | (multiple ? M_SEL_MULTI : 0), + files, numfiles); *redraw = REDRAW_FULL; } else { @@ -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); +}