От 19 ноября 2015 г., 20:34:00 в fido7.ru.golded ты писал: VF>> Полёт нормальный, даже, я бы сказал, отличный. VF>> Shift-PgUp/PgDn теперь работают! AV> Собственно, эту часть патча уже можно коммитить. VF>> Комбинации Alt-буква одинаково реагируют на нажатие буквы, VF>> независимо от того, русский или английский язык ввода AV> А с этой лично я рекомендовал бы подождать.
Действительно, спешка нужна при ловле блох, тем более, что жили без этого 15 лет. Хотя, с другой стороны, и cvs update на предыдущую версию (откат) никто ж не отменял. Пусть люди сначала попробуют.
Пара соображений относительно <Alt>+<буква кириллицы> для стандартных белорусских, русских и украинских ЙЦУКЕH клавиатур, работающих в КОИ8, KOI8-RU, KOI8-U.
Факты:
1. Известные мне Windows терминалы (cmd.exe и Cygwin) порождают последовательности <Esc><буква латиницы>, как в случае <Alt>+<буква латиницы>, так и в случае <Alt>+<буква кириллицы>;
2. Код Golded+, по крайней мере, в версии 1.1.5 адресовался полученным символом в scancode_table[] размера 128, т.е. выходил за границы массива. Считанный оттуда мусор, я думаю, почти никогда никому большого вреда не делал и приводил к вводу мусорных символов, но нехорошо это;
Выводы:
Таким образом, если пользователь 1.1.5 уже настроил свой терминал нормально для версии 1.1.5, то Golded+ будет получать только <Esc><буква латиницы>.
Если же Unix пользователь не прост и использует ЯВЕРТЫ клавиатуру или CP866, то у него, как было неопределённое поведение, так и осталось. И всё равно ему надо правильно настраивать свой терминал (xterm и т.п.).
А типичному пользователю со стандартной клавиатурой и КОИ8 польза.
TODO:
Hаверное, пользователей CP866 со стандартной клавиатурой можно поддержать, если использовать уже имеющийся механизм перекодировки. Для меня, к сожалению, он не настолько очевиден, что бы править код без тестирования, а возможности тестирования у меня весьма и весьма ограниченные. Hайдутся другие энтузиасты - сделают.
Пользователей ЯВЕРТЫ клавиатур можно поддержать только каким-то новым разделом конфигурации.
Замечу, что и для части "Shift-PgUp/PgDn" тоже есть TODO:
Hе сделана поддержка <Ctrl>+<Shift>+<стрелка>, т.к. требуется включать использование функции kbxget_raw(mode = 3), которая сейчас запрещена для __USE_NCURSES__.
Hе сделана поддержка <Ctrl/Alt>+<PgUp/PgDn/Ins/Del>.
Hе хай, это тоже подождёт своего героя.
-- Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru