diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a209cde83..1d9107535 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,10 @@ +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 4f3d88ba1..188bce239 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(' '); }