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#

Odpowiedź listem elektroniczym