^? под иксами
Aug. 8th, 2017 04:05 pmВот XKB весь из себя такой конфигурируемый в 10 слоёв абстракции, но что происходит при отработке Ctrl - зашито в код намертво:
и в этом есть несколько совершенно неожиданных вещей (например, почему "забой", который 0x7f и традиционно передаётся как ^?, они сделали ^8, а ^? даёт то же, что ^_ ?)
Похоже, это очередное место типа "40 лет назад сделали на 'отцепись', а теперь фиг поменяешь".
Да, и место, где эта функция, совершенно "ожидаемо" - XKBBind.c в libX11 (что в этой трансляции от слова bind?)
char
XkbToControl(char ch)
{
register char c = ch;
if ((c >= '@' && c < '\177') || c == ' ')
c &= 0x1F;
else if (c == '2')
c = '\000';
else if (c >= '3' && c <= '7')
c -= ('3' - '\033');
else if (c == '8')
c = '\177';
else if (c == '/')
c = '_' & 0x1F;
return c;
}
и в этом есть несколько совершенно неожиданных вещей (например, почему "забой", который 0x7f и традиционно передаётся как ^?, они сделали ^8, а ^? даёт то же, что ^_ ?)
Похоже, это очередное место типа "40 лет назад сделали на 'отцепись', а теперь фиг поменяешь".
Да, и место, где эта функция, совершенно "ожидаемо" - XKBBind.c в libX11 (что в этой трансляции от слова bind?)
no subject
Date: 2017-08-08 01:33 pm (UTC)