summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2021-05-28 20:15:56 +1000
committerMaxime Coste <mawww@kakoune.org>2021-05-28 20:15:56 +1000
commitfb9dbfed2a903fbf38f37db904c960d69973fb8b (patch)
treefa620c792a994c5116b4b4b963b0ef17ff0b206b /src
parente4a23a64faf56b5822fee13d976e038174408238 (diff)
Canonicalize <s-ascii> into uppercase in csi key parsing code
Fixes #4159
Diffstat (limited to 'src')
-rw-r--r--src/ncurses_ui.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ncurses_ui.cc b/src/ncurses_ui.cc
index 18be7bd2..31c5269a 100644
--- a/src/ncurses_ui.cc
+++ b/src/ncurses_ui.cc
@@ -725,7 +725,13 @@ Optional<Key> NCursesUI::get_next_key()
auto masked_key = [&](Codepoint key) {
int mask = std::max(params[1] - 1, 0);
- return Key{parse_mask(mask), key};
+ Key::Modifiers modifiers = parse_mask(mask);
+ if (is_basic_alpha(key) and (modifiers & Key::Modifiers::Shift))
+ {
+ modifiers &= ~Key::Modifiers::Shift;
+ key = to_upper(key);
+ }
+ return Key{modifiers, key};
};
switch (c)