mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-18 13:55:23 -05:00
Don't substitute \n
in char bindings
This broke unintentionally due to routing paste-like input via paste function. Fixes #7476.
This commit is contained in:
parent
b067fcca33
commit
107c8720c3
2 changed files with 18 additions and 7 deletions
|
@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||
- `alacritty migrate` failing with nonexistent imports
|
||||
- `Alt` bindings requiring composed key rather than pre-composed one on macOS
|
||||
- `Alt + Control` bindings not working on Windows
|
||||
- `chars = "\u000A"` action in bindings inserting `\n`
|
||||
|
||||
## 0.13.0
|
||||
|
||||
|
|
|
@ -839,13 +839,23 @@ impl<'a, N: Notify + 'a, T: EventListener> input::ActionContext<T> for ActionCon
|
|||
} else {
|
||||
self.on_terminal_input_start();
|
||||
|
||||
// In non-bracketed (ie: normal) mode, terminal applications cannot distinguish
|
||||
// pasted data from keystrokes.
|
||||
// In theory, we should construct the keystrokes needed to produce the data we are
|
||||
// pasting... since that's neither practical nor sensible (and probably an impossible
|
||||
// task to solve in a general way), we'll just replace line breaks (windows and unix
|
||||
// style) with a single carriage return (\r, which is what the Enter key produces).
|
||||
self.write_to_pty(text.replace("\r\n", "\r").replace('\n', "\r").into_bytes());
|
||||
let payload = if bracketed {
|
||||
// In non-bracketed (ie: normal) mode, terminal applications cannot distinguish
|
||||
// pasted data from keystrokes.
|
||||
//
|
||||
// In theory, we should construct the keystrokes needed to produce the data we are
|
||||
// pasting... since that's neither practical nor sensible (and probably an
|
||||
// impossible task to solve in a general way), we'll just replace line breaks
|
||||
// (windows and unix style) with a single carriage return (\r, which is what the
|
||||
// Enter key produces).
|
||||
text.replace("\r\n", "\r").replace('\n', "\r").into_bytes()
|
||||
} else {
|
||||
// When we explicitly disable bracketed paste don't manipulate with the input,
|
||||
// so we pass user input as is.
|
||||
text.to_owned().into_bytes()
|
||||
};
|
||||
|
||||
self.write_to_pty(payload);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue