aboutsummaryrefslogtreecommitdiff
path: root/alacritty_terminal
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2021-09-15 12:13:09 -0600
committerJosh Rahm <rahm@google.com>2021-09-15 12:13:09 -0600
commit843583e2246a2404999b6c36293d7966cfb84334 (patch)
treeb39bc41b3436cf3e3c849d27623f5c06b11596aa /alacritty_terminal
parent579a59b054b5b994317b58bde1f075b1389f05e7 (diff)
downloadr-alacritty-843583e2246a2404999b6c36293d7966cfb84334.tar.gz
r-alacritty-843583e2246a2404999b6c36293d7966cfb84334.tar.bz2
r-alacritty-843583e2246a2404999b6c36293d7966cfb84334.zip
Add overline attribute.
Diffstat (limited to 'alacritty_terminal')
-rw-r--r--alacritty_terminal/src/ansi.rs6
-rw-r--r--alacritty_terminal/src/term/cell.rs2
-rw-r--r--alacritty_terminal/src/term/mod.rs6
3 files changed, 14 insertions, 0 deletions
diff --git a/alacritty_terminal/src/ansi.rs b/alacritty_terminal/src/ansi.rs
index 35a46549..51a3394e 100644
--- a/alacritty_terminal/src/ansi.rs
+++ b/alacritty_terminal/src/ansi.rs
@@ -780,6 +780,8 @@ pub enum Attr {
Hidden,
/// Strikeout text.
Strike,
+ /// Strikeout text.
+ Overline,
/// Cancel bold.
CancelBold,
/// Cancel bold and dim.
@@ -796,6 +798,8 @@ pub enum Attr {
CancelHidden,
/// Cancel strikeout.
CancelStrike,
+ /// Cancel strikeout.
+ CancelOverline,
/// Set indexed foreground color.
Foreground(Color),
/// Set indexed background color.
@@ -1375,6 +1379,8 @@ fn attrs_from_sgr_parameters(params: &mut ParamsIter<'_>) -> Vec<Option<Attr>> {
parse_sgr_color(&mut iter).map(Attr::Background)
},
[49] => Some(Attr::Background(Color::Named(NamedColor::Background))),
+ [53] => Some(Attr::Overline),
+ [55] => Some(Attr::CancelOverline),
[58, params @ ..] => {
let rgb_start = if params.len() > 4 { 2 } else { 1 };
let rgb_iter = params[rgb_start..].iter().copied();
diff --git a/alacritty_terminal/src/term/cell.rs b/alacritty_terminal/src/term/cell.rs
index 467d955a..4f5ac1e2 100644
--- a/alacritty_terminal/src/term/cell.rs
+++ b/alacritty_terminal/src/term/cell.rs
@@ -25,6 +25,7 @@ bitflags! {
const LEADING_WIDE_CHAR_SPACER = 0b0000_0100_0000_0000;
const DOUBLE_UNDERLINE = 0b0000_1000_0000_0000;
const UNDERCURL = 0b0001_0000_0000_0000;
+ const OVERLINE = 0b0010_0000_0000_0000;
}
}
@@ -124,6 +125,7 @@ impl GridCell for Cell {
| Flags::UNDERLINE
| Flags::DOUBLE_UNDERLINE
| Flags::UNDERCURL
+ | Flags::OVERLINE
| Flags::STRIKEOUT
| Flags::WRAPLINE
| Flags::WIDE_CHAR_SPACER
diff --git a/alacritty_terminal/src/term/mod.rs b/alacritty_terminal/src/term/mod.rs
index 85b76937..5a641a7b 100644
--- a/alacritty_terminal/src/term/mod.rs
+++ b/alacritty_terminal/src/term/mod.rs
@@ -1530,6 +1530,12 @@ impl<T: EventListener> Handler for Term<T> {
cursor.template.flags.remove(
Flags::UNDERLINE | Flags::DOUBLE_UNDERLINE | Flags::UNDERCURL);
},
+ Attr::Overline => {
+ cursor.template.flags.insert(Flags::OVERLINE);
+ },
+ Attr::CancelOverline => {
+ cursor.template.flags.remove(Flags::OVERLINE);
+ },
Attr::Hidden => cursor.template.flags.insert(Flags::HIDDEN),
Attr::CancelHidden => cursor.template.flags.remove(Flags::HIDDEN),
Attr::Strike => cursor.template.flags.insert(Flags::STRIKEOUT),