diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 23f72f9dd..f094b5f36 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -140,6 +140,13 @@ Changes to the argparse builtin -------------- +fish 4.0.9 (released ???) +========================= + +This release fixes a regression in 4.0.6 that caused shifted keys to not be inserted on some terminals. + +-------------- + fish 4.0.8 (released September 18, 2025) ======================================== diff --git a/src/input_common.rs b/src/input_common.rs index d43ce0a01..375344c8f 100644 --- a/src/input_common.rs +++ b/src/input_common.rs @@ -171,10 +171,15 @@ pub fn from_single_byte(c: u8) -> Self { } pub(crate) fn codepoint_text(&self) -> Option { - if self.modifiers.is_some() { + let mut modifiers = self.modifiers; + let mut c = self.codepoint; + if self.shifted_codepoint != '\0' && modifiers.shift { + modifiers.shift = false; + c = self.shifted_codepoint; + } + if modifiers.is_some() { return None; } - let c = self.codepoint; if c == key::Space { return Some(' '); }