On Sat, Apr 23, 2011 at 12:20:54AM +0200, Adam Wysocki wrote:
> Spróbuj w ui-ncurses.c w ui_ncurses_loop w miejscu:
>
> if (ui_need_refresh) {
> ui_need_refresh = 0;
> endwin();
> refresh();
> keypad(input, TRUE);
> /* wywoła wszystko, co potrzebne */
> header_statusbar_resize(NULL);
> changed_backlog_size("backlog_size");
>
> goto redraw_prompt;
> }
>
> Po endwin a przed refresh dodać:
>
> resizeterm(LINES, COLS);
>
> Nie wiem czy pomoże, ale warto spróbować.
Nie, to nie pomaga, poniewaz problem jest wewnatarz ncrurses. Za to
ponizszy kod dziala prawidlowo. Jednak poczekam na deweloperow OpenBSD
co oni zaproponuja. Moze zajze do mutt'a i irssi jak tam rozwiazany jest
resize okna.
--- src/ui-ncurses.c.orig Mon Apr 18 21:00:09 2011
+++ src/ui-ncurses.c Sat Apr 23 00:51:33 2011
@@ -58,6 +58,7 @@
#ifndef HAVE_SCANDIR
# include "../compat/scandir.h"
#endif
+#include <sys/ioctl.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
@@ -4734,6 +4738,8 @@ static void spellcheck(const char *line, char *checked
*/
static void ui_ncurses_loop()
{
+ struct winsize w;
+
line = xmalloc(LINE_MAXLEN);
#ifdef WITH_ASPELL
aspell_line = xmalloc(LINE_MAXLEN);
@@ -4750,6 +4756,8 @@ static void ui_ncurses_loop()
if (ui_need_refresh) {
ui_need_refresh = 0;
endwin();
+ if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &w) != -1)
+ resizeterm(w.ws_row, w.ws_col);
refresh();
keypad(input, TRUE);
/* wywoła wszystko, co potrzebne */
--
best regards
q#