diff --git a/src/key_event.cc b/src/key_event.cc index 971a5e6717..ce7089a027 100644 --- a/src/key_event.cc +++ b/src/key_event.cc @@ -89,6 +89,13 @@ KeySequence::KeySequence(const string& repr) { clear(); } +static bool is_unescaped_character(const KeyEvent& key_event) { + int ch = key_event.keycode(); + return key_event.modifier() == 0 && + ch >= 0x20 && ch <= 0x7e && + ch != '{' && ch != '}'; +} + string KeySequence::repr() const { std::ostringstream result; string k; @@ -97,6 +104,9 @@ string KeySequence::repr() const { if (k.size() == 1) { result << k; } + else if (is_unescaped_character(*it)) { + result << char(it->keycode()); + } else { result << '{' << k << '}'; }