summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Duerr <contact@christianduerr.com>2019-11-28 08:08:04 +0100
committerGitHub <noreply@github.com>2019-11-28 08:08:04 +0100
commita075c932f1e88b3a4064102cfeb01b17882f2c68 (patch)
tree7c38739e1c0b00da43cab1e1ec728c93b8958d10
parentb9c513bd27f26271c51ff32fed38ce99abfc7e0d (diff)
downloadalacritty-a075c932f1e88b3a4064102cfeb01b17882f2c68.tar.gz
alacritty-a075c932f1e88b3a4064102cfeb01b17882f2c68.zip
Fix `OSC 52` with empty clipboard param
This fixes the behavior of the clipboard escape (`OSC 52`) when the second parameter is not specified. If it is missing, the parameter is now assumed to be `c`, defaulting to the default clipboard. This has been fixed both for writing and reading. Fixes #3037.
-rw-r--r--CHANGELOG.md1
-rw-r--r--alacritty_terminal/src/ansi.rs7
2 files changed, 5 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3ee9dec0..e94b53a9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- URLs not truncated with non-matching single quote
- Absolute file URLs (`file:///home`) not recognized because of leading `/`
+- Clipboard escape `OSC 52` not working with empty clipboard parameter
## 0.4.0-dev
diff --git a/alacritty_terminal/src/ansi.rs b/alacritty_terminal/src/ansi.rs
index c2388540..f41c3951 100644
--- a/alacritty_terminal/src/ansi.rs
+++ b/alacritty_terminal/src/ansi.rs
@@ -849,13 +849,14 @@ where
// Set clipboard
b"52" => {
- if params.len() < 3 || params[1].is_empty() {
+ if params.len() < 3 {
return unhandled(params);
}
+ let clipboard = params[1].get(0).unwrap_or(&b'c');
match params[2] {
- b"?" => self.handler.write_clipboard(params[1][0], writer),
- base64 => self.handler.set_clipboard(params[1][0], base64),
+ b"?" => self.handler.write_clipboard(*clipboard, writer),
+ base64 => self.handler.set_clipboard(*clipboard, base64),
}
},