LINUX.ORG.RU

mc 4.8.11 и ncurses

 , ,


0

1

вышел. вот и славненько. но с ncurses не собирается. господа разработчики, вы хоть скомпилировать все возможные конфигурации пытайтесь, прежде чем релизить (я уж молчу про тестирование)

--- mc-4.8.11/lib/tty/key.c.orig	2013-11-29 20:27:07.000000000 +0200
+++ mc-4.8.11/lib/tty/key.c	2013-12-02 12:33:30.425849204 +0200
@@ -1952,6 +1952,9 @@
     struct timeval time_out;
     struct timeval *time_addr = NULL;
     static int dirty = 3;
+#ifndef HAVE_SLANG
+    int flag; 
+#endif
 
     if ((dirty == 3) || is_idle ())
     {
@@ -1978,7 +1981,7 @@
     while (pending_keys == NULL)
     {
         int nfd;
-        static int flag = 0;    /* Return value from select */
+        static int sflag = 0;    /* Return value from select */
         fd_set select_set;
 
         FD_ZERO (&select_set);
@@ -2047,7 +2050,7 @@
         }
 
         tty_enable_interrupt_key ();
-        flag = select (nfd, &select_set, NULL, NULL, time_addr);
+        sflag = select (nfd, &select_set, NULL, NULL, time_addr);
         tty_disable_interrupt_key ();
 
         /* select timed out: it could be for any of the following reasons:
@@ -2055,7 +2058,7 @@
          * !block     -> we did not block in the select call
          * else       -> 10 second timeout to check the vfs status.
          */
-        if (flag == 0)
+        if (sflag == 0)
         {
             if (redo_event)
                 return EV_MOUSE;
@@ -2063,7 +2066,7 @@
                 return EV_NONE;
             vfs_timeout_handler ();
         }
-        if (flag == -1 && errno == EINTR)
+        if (sflag == -1 && errno == EINTR)
             return EV_NONE;
 
         check_selects (&select_set);
--- mc-4.8.11/lib/tty/tty-ncurses.c.orig	2013-11-29 20:27:07.000000000 +0200
+++ mc-4.8.11/lib/tty/tty-ncurses.c	2013-12-02 12:30:01.947851997 +0200
@@ -51,6 +51,7 @@
 #include "color-internal.h"
 #include "mouse.h"
 #include "win.h"
+#include "key.h"
 
 /* include at last !!! */
 #ifdef WANT_TERM_H
@@ -529,6 +530,7 @@
 {
     if (mc_global.utf8_display || c > 255)
     {
+        unsigned char str[UTF8_CHAR_LEN + 1];
         int res;
 
         res = g_unichar_to_utf8 (c, (char *) str);
@@ -540,7 +542,6 @@
         }
         else
         {
-            unsigned char str[UTF8_CHAR_LEN + 1];
             const char *s;
 
             str[res] = '\0';
★★★★★

Ответ на: комментарий от kot_otbelivatel

тогда придется форкать, наверное

ananas ★★★★★
() автор топика

вы хоть скомпилировать все возможные конфигурации пытайтесь

Я бы, на их месте, ответил: «спасибо за патч, но рук не хватает; нужен ncurses - добро пожаловать в команду». :-)

AS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.