Merge remote-tracking branch 'fsub/rxvt'

This commit is contained in:
Maxime Coste 2020-01-05 10:03:37 +11:00
commit 80ffc4d34f

View File

@ -640,7 +640,7 @@ Optional<Key> NCursesUI::get_next_key()
else else
return {}; return {};
} }
if (c < 0x40 or c > 0x7e) if (c != '$' and (c < 0x40 or c > 0x7e))
return {}; return {};
auto parse_mask = [](int mask) { auto parse_mask = [](int mask) {
@ -678,6 +678,13 @@ Optional<Key> NCursesUI::get_next_key()
switch (c) switch (c)
{ {
case '$':
switch (params[0])
{
case 23: case 24:
return Key{Key::Modifiers::Shift, Key::F11 + params[0] - 23}; // rxvt style
}
return {};
case 'A': return masked_key(Key::Up); case 'A': return masked_key(Key::Up);
case 'B': return masked_key(Key::Down); case 'B': return masked_key(Key::Down);
case 'C': return masked_key(Key::Right); case 'C': return masked_key(Key::Right);
@ -705,6 +712,14 @@ Optional<Key> NCursesUI::get_next_key()
return masked_key(Key::F6 + params[0] - 17); return masked_key(Key::F6 + params[0] - 17);
case 23: case 24: case 23: case 24:
return masked_key(Key::F11 + params[0] - 23); return masked_key(Key::F11 + params[0] - 23);
case 25: case 26:
return Key{Key::Modifiers::Shift, Key::F3 + params[0] - 25}; // rxvt style
case 28: case 29:
return Key{Key::Modifiers::Shift, Key::F5 + params[0] - 28}; // rxvt style
case 31: case 32:
return Key{Key::Modifiers::Shift, Key::F7 + params[0] - 31}; // rxvt style
case 33: case 34:
return Key{Key::Modifiers::Shift, Key::F9 + params[0] - 33}; // rxvt style
} }
return {}; return {};
case 'u': case 'u':