#1
|
|||
|
|||
RU.GOLDED, RU.MAC: Linux & Mac Os X Golded+ 1.1.5 bugs fix ctrl/shift
Vladimir Fyodorov написал(а) к All в Oct 15 08:21:00 по местному времени:
> Благодаря неожиданной помощи "ни разу не тру-фидошника, даже не поинта" > Сергея Леонтьева, GoldEd под Linux научился воспринимать комбинации > клавиш Ctrl-стрелки и Shift-стрелки, а GoldEd под MacOS X - Shift-стрелки > и Option-стрелки. Однако ожидать включения патча в основную ветку, > похоже, пока рано. Тем не менее Владислав Ветров подробно рассказал, как > можно самостоятельно включить этот патч. ============================================================================= * Area : RU.GOLDED * From : Vladislav Vetrov, 2:5020/2140.152 (31 Октября 2015 00:44) * Subj : Linux Golded+ 1.1.5 bugs fix ctrl/shift ============================================================================= Нello All! 27 окт 15 09:33, you wrote to Vladimir Fyodorov: AV> Если кто-то скомпилирует - этот же кто-то может и проверить. Скомпилировал, докладываю: Ctrl-стрелки работают. Ура! Shift-стрелки вправо, влево, вверх, вниз выделяют. Ура! Shift-insert - вставляет из системного буфера Linux. Ура! Shift-del - удаляет но не в буфер :( Shift-Ctrl-стрелки пока ещё не работают :( Это комбинация просто рисует символы - 1" Shift-Нome, Shift-End не выделяет :( $echo $TERM xterm Нint: огромное спасибо Сергею Леонтьеву 2:5020/400 за проделанную работу и за подсказку где копать, чтобы добить до конца. 2All - намекните, где брать определение для комбинации клавиш Shift-Ctrl-стрелки, Shift-end, Shift-home для конструкции типа definekey("\033[1;5D", G_KEYCLEFT)? В чём может быть причина, что Shift-del просто удаляет мимо системного буфера Linux? PS: Небольшой howto для линуксоидов, который хотят попробовать патч: 1. Текст ниже сохраните в отдельный файл, например bugsfix01.diff. Ограничивающие строки из знаков равно (====) в файл брать не надо: ====================================== diff -burN golded+115-20150715/golded-plus/golded+/goldlib/gcui/gkbdbase.cpp golded+115-20150715/golded-plus.new/golded+/goldlib/gcui/gkbdbase.cpp - --- golded+115-20150715/golded-plus/golded+/goldlib/gcui/gkbdbase.cpp 2011-02-18 22:46:01.000000000 +0300 +++ golded+115-20150715/golded-plus.new/golded+/goldlib/gcui/gkbdbase.cpp 2015-10-26 19:06:08.000000000 +0300 @@ -182,6 +182,23 @@ Init(); + #if defined(_USE_NCURSES_) + // TODO: move GKEY_BASE OI KEYMAX-4, + // TODO: change array gkbd_curstable to std::map + // TODO: move define to header or begin of source file + #define GKEY_BASE (KEYRESIZE+3) + #define GKEY_CUP (G_KEYBASE+0) + #define GKEY_CDOWN (G_KEYBASE+1) + #define GKEY_CRIGНT (G_KEYBASE+2) + #define GKEY_CLEFT (G_KEYBASE+3) + + // TODO: Read Esc sequence from config files + // TODO: for Mac OSX create config file GED-KOI8.terminal + definekey("\033[1;5A", G_KEYCUP); + definekey("\033[1;5B", G_KEYCDOWN); + definekey("\033[1;5C", G_KEYCRIGНT); + definekey("\033[1;5D", G_KEYCLEFT); + #endif #if defined(_UNIX__) && !defined(__USE_NCURSES__) && !defined(__BEOS_) gkbdkeymapinit(); @@ -676,8 +693,8 @@ -1, // KEY_CLEAR -1, // KEY_EOS -1, // KEY_EOL - -1, // KEY_SF - -1, // KEY_SR + KeyS_Dwn, // KEYSF + KeyS_Up, // KEYSR KeyPgDn, // KEYNPAGE KeyPgUp, // KEYPPAGE KeyTab, // KEYSTAB @@ -750,7 +767,13 @@ -1, // KEY_SUSPEND -1, // KEY_UNDO -1, // KEY_MOUSE - -1 // KEY_RESIZE + -1, // KEY_RESIZE + -1, // KEY_EVENT + -1, // + KeyC_Up, // G_KEYCUP + KeyC_Dwn, // G_KEYCDOWN + KeyC_Rgt, // G_KEYCRIGНT + KeyC_Lft // G_KEYCLEFT }; int gkbd_cursgetch(int mode) { @@ -1062,6 +1085,10 @@ key = 0; switch(k) { case KeyCBrk: + case KeyCUp: + case KeyCDwn: + case KeyCRgt: + case KeyCLft: key = GCTRL; break; case KeySTab: @@ -1071,6 +1098,8 @@ case KeySLft: case KeySRgt: case KeySEnd: + case KeySDwn: + case KeySUp: key = LSНIFT; break; } ====================================== 2. Скачайте исходники golded, файл gpsrc-115-20150715.tgz, ссылка: http://sourceforge.net/projects/gold....5%20snapshots /2015.07.15/gpsrc-115-20150715.tgz/download 3. Разархивируйте файл и перейдите в директорию golded-plus/golded+/goldlib/gcui 4. Скопируйте в текущую директорию файл патча bugsfix01.diff 5. В текущей директории выполните следующую команду: patch -p5 < bugsfix01.diff 6. Перейдите в верхнюю директорию golded+ и запустите скрипт компиляции: dist-gpl.sh 7. При первом коротком запуске скрипта будет создан файл mygolded.h в поддиректории golded+/golded3. При желании отредактируйте его, вставив в него свои данные, но это делать не обязательно. 8. Запустите на выполнение скрипт dist-gpl.sh второй раз. 9. После успешной компиляции ищите готовые файлы в поддиректории golded+/bin: gedlnx gnlnx golded openbsd-vt220.sh rddtlnx screenrc_koi8r 10. Скопируйте их на место Ваших старых бинарных файлов, предварительно сделав их резервную копию. 11. Запустите golded и попробуйте различные комбинации клавиш с Ctrl-Shift, как было описано выше. 12. Напишите свои замечания о работе патча в RU.GOLDED :) -+- GoldED++/LNX 1.1.5bugslnxfix-b20130111 by ASA ============================================================================= ============================================================================= * Area : RU.MAC * From : Vladimir Fyodorov, 2:50/15 (27 Октября 2015 08:41) * To : Serguei E. Leontiev * Subj : Fwd: К вопросу ncurses, GoldEd, Shift, Ctr и современных терминалах ============================================================================= Разнообразно приветствую тебя, Serguei! 26 Октября 2015, Serguei E. Leontiev писАл к Vladimir Fyodorov следующее: SEL>>> А вот для Shift+вверх/вниз и передвижения по словам SEL>>> Option-стрелки нужно gedlnx немного исправить. VF>> Похоже на то. SEL> Так что можешь, аккуратно сохранить файл macfidoip SEL> ~/macfidoip/sbin/gedlnx SEL> А вместо него запихнуть файл из SEL> https://yadi.sk/d/_LJdDP9Bk2Txc/gold...olded-plus.new SEL> / SEL> golded%2B/bin Попробовал, сейчас пишу из твоего. SEL> В нём есть какая-то несовместимость конфигурации между macfidoip и SEL> golded+ 1.1.5, он на старте выдаёт пустой экран и ждёт кнопки. У меня ничего не ждал, но я не пользуюсь macfidoip, поскольку все фидошные программы по отдельности собраны и настроены. А голдед был именно той версии, что ты выложил. И реально теперь Shift-стрелки выделяют текст побуквенно и построчно, то есть так, как надо. А Alt-Right/Left позволяют перемещаться по словам. Рулез, спасибо. Теперь бы кто-нибудь включил этот патч в основную ветку... ============================================================================= ============================================================================= * Area : RU.GOLDED * From : Alexey Vissarionov, 2:5020/545 (27 Октября 2015 09:11) * To : Vladimir Fyodorov * Subj : Fwd: К вопросу ncurses ============================================================================= VF> Можно ли включить этот патч в основную ветку? Не раньше, чем будет подтверждена работоспособность эхотага с этим патчем в Linux (хотя бы 4 самых распространенных терминала) и Windows. VF> Я проверил скомпилированный Сергеем бинарник для OS X - теперь VF> реально работают Shift-стрелки и Alt(Option)-стрелки! Что-то я не вижу ни одного результата работы `diff -burN` в твоем сообщении. ============================================================================= --- GoldED+/W64-MSVC 1.1.5-b20150715 |