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


Присутствуют сообщения из эхоконференции RU.GOLDED с датами от 16 Jul 13 03:28:02 до 16 Nov 24 03:28:00, всего сообщений: 3632
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 626 из 3632 ========================================= RU.GOLDED =
От   : Vladimir Fyodorov                2:50/15            27 Oct 15 09:59:02
Кому : Alexey Vissarionov                                  27 Oct 15 09:59:02
Тема : Re: Fwd: К вопросу ncurses
FGHI : area://RU.GOLDED?msgid=2:50/15+562f21f3
На   : area://RU.GOLDED?msgid=2:5020/545+562f1b08
= Кодировка сообщения определена как: CP866 ==================================
==============================================================================
Разнообразно приветствую тебя, Alexey!

27 Октября 2015, Alexey Vissarionov писАл к Vladimir Fyodorov следующее:

VF>> Линукса у меня нету, а вот если для виндов кто-нибудь
VF>> скомпилирует, проверю.
AV> Если кто-то скомпилирует - этот же кто-то может и проверить.

Ну вот Сергей компилировать умеет, а для проверки использует fidoip (пусть и под мак), поскольку сам фидософтом не пользуется. А оно нам надо? ;)

VF>>>> Я проверил скомпилированный Сергеем бинарник для OS X - теперь
VF>>>> реально работают Shift-стрелки и Alt(Option)-стрелки!
AV>>> Что-то я не вижу ни одного результата работы `diff -burN` в
AV>>> твоем сообщении.
VF>> Пппереведи.
AV> Сам патч-то где?

Разве в первом письме Сергея не было патча? Я, конечно, в этом мало что понимаю, но мне показалось, там очень много умных букв.

= RU.GOLDED (2:50/15) =========================================================
 From : Serguei E. Leontiev                 2:5020/400      Пят 23 Окт 15 19:53
 Subj : Fwd: К вопросу ncurses, GoldEd, Shift, Ctr и современных терминалах
===============================================================================

[...]

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
===============================================================================

Всяческих благ. Искренне Ваш, Vladimir Fyodorov, эсквайр.
... Слабый женский Poll ...
--- GoldED+/OSX 1.1.5-b20150715
* Origin: Esquire Station (2:50/15)

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