mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-18 13:55:23 -05:00
Fix dynamic multi-color escape codes
This commit is contained in:
parent
f59aa19892
commit
204c46c7f9
2 changed files with 24 additions and 40 deletions
|
@ -392,6 +392,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
- Pressing enter on the numpad should now insert a newline
|
||||
- The mouse bindings now support keyboard modifiers (shift/ctrl/alt/super)
|
||||
- Add support for the bright foreground color
|
||||
- Support for setting foreground, background colors in one escape sequence
|
||||
|
||||
### Changed
|
||||
|
||||
|
|
|
@ -537,10 +537,10 @@ pub enum NamedColor {
|
|||
Foreground = 256,
|
||||
/// The background color
|
||||
Background,
|
||||
/// Color for the text under the cursor
|
||||
CursorText,
|
||||
/// Color for the cursor itself
|
||||
Cursor,
|
||||
/// Color for the text under the cursor
|
||||
CursorText,
|
||||
/// Dim black
|
||||
DimBlack,
|
||||
/// Dim red
|
||||
|
@ -793,47 +793,30 @@ where
|
|||
unhandled(params);
|
||||
},
|
||||
|
||||
// Get/set foreground color
|
||||
b"10" => {
|
||||
// Get/set Foreground, Background, Cursor colors
|
||||
b"10" | b"11" | b"12" => {
|
||||
if params.len() >= 2 {
|
||||
if let Some(color) = parse_rgb_color(params[1]) {
|
||||
self.handler.set_color(NamedColor::Foreground as usize, color);
|
||||
return;
|
||||
} else if params[1] == b"?" {
|
||||
self.handler.dynamic_color_sequence(
|
||||
writer,
|
||||
10,
|
||||
NamedColor::Foreground as usize,
|
||||
);
|
||||
return;
|
||||
}
|
||||
}
|
||||
unhandled(params);
|
||||
},
|
||||
if let Some(mut dynamic_code) = parse_number(params[0]) {
|
||||
for param in ¶ms[1..] {
|
||||
// 10 is the first dynamic color, also the foreground
|
||||
let offset = dynamic_code as usize - 10;
|
||||
let index = NamedColor::Foreground as usize + offset;
|
||||
|
||||
// Get/set background color
|
||||
b"11" => {
|
||||
if params.len() >= 2 {
|
||||
if let Some(color) = parse_rgb_color(params[1]) {
|
||||
self.handler.set_color(NamedColor::Background as usize, color);
|
||||
return;
|
||||
} else if params[1] == b"?" {
|
||||
self.handler.dynamic_color_sequence(
|
||||
writer,
|
||||
11,
|
||||
NamedColor::Background as usize,
|
||||
);
|
||||
return;
|
||||
}
|
||||
}
|
||||
unhandled(params);
|
||||
},
|
||||
// End of setting dynamic colors
|
||||
if index > NamedColor::Cursor as usize {
|
||||
unhandled(params);
|
||||
break;
|
||||
}
|
||||
|
||||
// Set text cursor color
|
||||
b"12" => {
|
||||
if params.len() >= 2 {
|
||||
if let Some(color) = parse_rgb_color(params[1]) {
|
||||
self.handler.set_color(NamedColor::Cursor as usize, color);
|
||||
if let Some(color) = parse_rgb_color(param) {
|
||||
self.handler.set_color(index, color);
|
||||
} else if param == b"?" {
|
||||
self.handler.dynamic_color_sequence(writer, dynamic_code, index);
|
||||
} else {
|
||||
unhandled(params);
|
||||
}
|
||||
dynamic_code += 1;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue