Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.LINUX
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.LINUX с датами от 24 Jan 02 06:01:34 до 23 Aug 24 12:51:58, всего сообщений: 8555
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 2457 из 8555 ========================================= RU.LINUX =
От   : Serguei E. Leontiev              2:5020/400         23 Oct 15 19:35:48
Кому : All                                                 23 Oct 15 19:35:48
Тема : К вопросу ncurses, GoldEd, Shift, Ctr и современных терминалах
FGHI : area://RU.LINUX?msgid=<1187502869@ddt.demos.su>+641ef86f
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.LINUX?msgid=2:5020/2140.152@Fidonet.org+562b41f1
==============================================================================
From: "Serguei E. Leontiev" <leo@sai.msu.ru>

Всем привет,

В честь всенародного праздника и наличия разумного количества бутылок
водки разумного размера. Взглянул я во внутренности этого вашего Golded+
1.1.5.

VV>> Ещё более странно, что у меня и там и там - XTERM. Hо в mc
VV>> всё работает, а в Golded - нет.
NS> итого, похоже, виновата криворукость авторов голдед+ ?

Согласен с Hикитой, виновата, зашкаливает.

SL>> стандартные xterm/DECFNK Modifiers, и потом скармливаешь их
SL>> функции define_key() библиотеки ncurses.
VV> Дай пример пож-та для конфига хотя бы для одной комбинации
VV> Ctrl-стрелка.

Конфигурационный файл для клавиатуры - это ж gkbdbase.cpp :)

Итого, т.к. известные мне современные terminfo используют kri и kind,
для честного включения Shift+стрелка вверх/вниз следует сделать:

 golded-plus.new/golded+/goldlib/gcui/gkbdbase.cpp.shiftupdown
- --- golded-plus/golded+/goldlib/gcui/gkbdbase.cpp 2011-02-18
22:46:01.000000000 +0300
+++ golded-plus.new/golded+/goldlib/gcui/gkbdbase.cpp.shiftupdown
2015-10-23 18:58:46.000000000 +0300
@@ -676,8 +676,8 @@
   -1,        //  KEY_CLEAR
   -1,        //  KEY_EOS
   -1,        //  KEY_EOL
-  -1,        //  KEY_SF
-  -1,        //  KEY_SR
+  Key_S_Dwn, //  KEY_SF
+  Key_S_Up,  //  KEY_SR
   Key_PgDn,  //  KEY_NPAGE
   Key_PgUp,  //  KEY_PPAGE
   Key_Tab,   //  KEY_STAB
@@ -1071,6 +1071,8 @@
       case Key_S_Lft:
       case Key_S_Rgt:
       case Key_S_End:
+      case Key_S_Dwn:
+      case Key_S_Up:
         key = LSHIFT;
         break;
     }


С Ctrl-стрелка дело обстоит хуже. В качестве макета можно использовать
следующий грязный хак:

- --- golded-plus.new/golded+/goldlib/gcui/gkbdbase.cpp.shiftupdown
2015-10-23 18:58:46.000000000 +0300
+++ golded-plus.new/golded+/goldlib/gcui/gkbdbase.cpp.ctrlarrow
2015-10-23 19:15:13.000000000 +0300
@@ -182,6 +182,17 @@

   Init();

+  #if defined(__USE_NCURSES__)
+    #define KEY_CUP    (KEY_RESIZE+3)
+    #define KEY_CDOWN  (KEY_RESIZE+4)
+    #define KEY_CRIGHT (KEY_RESIZE+5)
+    #define KEY_CLEFT  (KEY_RESIZE+6)
+
+    define_key("\033[1;5A", KEY_CUP);
+    define_key("\033[1;5B", KEY_CDOWN);
+    define_key("\033[1;5C", KEY_CRIGHT);
+    define_key("\033[1;5D", KEY_CLEFT);
+  #endif
   #if defined(__UNIX__) && !defined(__USE_NCURSES__) && !defined(__BEOS__)

   gkbd_keymap_init();
@@ -750,7 +761,13 @@
   -1,        //  KEY_SUSPEND
   -1,        //  KEY_UNDO
   -1,        //  KEY_MOUSE
-  -1         //  KEY_RESIZE
+  -1,        //  KEY_RESIZE
+  -1,      //  KEY_EVENT
+  -1,      //
+  Key_C_Up,  //  KEY_CUP
+  Key_C_Dwn, //  KEY_CDOWN
+  Key_C_Rgt, //  KEY_CRIGHT
+  Key_C_Lft  //  KEY_CLEFT
 };

 int gkbd_cursgetch(int mode) {
@@ -1062,6 +1079,10 @@
     key = 0;
     switch(k) {
       case Key_C_Brk:
+      case Key_C_Up:
+      case Key_C_Dwn:
+      case Key_C_Rgt:
+      case Key_C_Lft:
         key = GCTRL;
         break;
       case Key_S_Tab:

Это последний раз, второй раз я туда, в Golded не полезу.

--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru
--- ifmail v.2.15dev5.4
* Origin: ГАИШ МГУ (2:5020/400)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.076079 секунды