#include <lib-lib/lib-lib.h>
#include <termios.h>
+#ifdef HAVE_SYS_IOCTL_H
+# include <sys/ioctl.h>
+#elif defined(HAVE_IOCTL_H)
+# include <ioctl.h>
+#endif
#include <langinfo.h>
#include <lib-lua/lib-lua.h>
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
curs_set (2); /* cvvis */
}
}
-#endif
int mutt_multi_choice (const char *prompt, const char *letters)
{
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);
+}