aboutsummaryrefslogtreecommitdiff
path: root/alacritty_terminal/src
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty_terminal/src')
-rw-r--r--alacritty_terminal/src/ansi.rs6
-rw-r--r--alacritty_terminal/src/term/cell.rs4
-rw-r--r--alacritty_terminal/src/term/mod.rs14
3 files changed, 21 insertions, 3 deletions
diff --git a/alacritty_terminal/src/ansi.rs b/alacritty_terminal/src/ansi.rs
index 51a3394e..d5574f59 100644
--- a/alacritty_terminal/src/ansi.rs
+++ b/alacritty_terminal/src/ansi.rs
@@ -768,8 +768,10 @@ pub enum Attr {
Underline,
/// Underlined twice.
DoubleUnderline,
- /// Underlined twice.
+ /// Undercurl twice.
Undercurl,
+ /// Underlined with dots.
+ DottedUnderline,
/// Blink cursor slowly.
BlinkSlow,
/// Blink cursor fast.
@@ -971,6 +973,7 @@ where
.trim()
.to_owned();
self.handler.set_title(Some(title));
+
return;
}
unhandled(params);
@@ -1325,6 +1328,7 @@ fn attrs_from_sgr_parameters(params: &mut ParamsIter<'_>) -> Vec<Option<Attr>> {
[4, 0] => Some(Attr::CancelUnderline),
[4, 2] => Some(Attr::DoubleUnderline),
[4, 3] => Some(Attr::Undercurl),
+ [4, 4] => Some(Attr::DottedUnderline),
[4, ..] => Some(Attr::Underline),
[5] => Some(Attr::BlinkSlow),
[6] => Some(Attr::BlinkFast),
diff --git a/alacritty_terminal/src/term/cell.rs b/alacritty_terminal/src/term/cell.rs
index 4f5ac1e2..a393b332 100644
--- a/alacritty_terminal/src/term/cell.rs
+++ b/alacritty_terminal/src/term/cell.rs
@@ -25,7 +25,8 @@ 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;
+ const DOTTED_UNDERLINE = 0b0010_0000_0000_0000;
+ const OVERLINE = 0b0100_0000_0000_0000;
}
}
@@ -125,6 +126,7 @@ impl GridCell for Cell {
| Flags::UNDERLINE
| Flags::DOUBLE_UNDERLINE
| Flags::UNDERCURL
+ | Flags::DOTTED_UNDERLINE
| Flags::OVERLINE
| Flags::STRIKEOUT
| Flags::WRAPLINE
diff --git a/alacritty_terminal/src/term/mod.rs b/alacritty_terminal/src/term/mod.rs
index 5a641a7b..ba170e32 100644
--- a/alacritty_terminal/src/term/mod.rs
+++ b/alacritty_terminal/src/term/mod.rs
@@ -1514,21 +1514,33 @@ impl<T: EventListener> Handler for Term<T> {
Attr::Underline => {
cursor.template.flags.remove(Flags::DOUBLE_UNDERLINE);
cursor.template.flags.remove(Flags::UNDERCURL);
+ cursor.template.flags.remove(Flags::DOTTED_UNDERLINE);
cursor.template.flags.insert(Flags::UNDERLINE);
},
Attr::DoubleUnderline => {
cursor.template.flags.remove(Flags::UNDERLINE);
cursor.template.flags.remove(Flags::UNDERCURL);
+ cursor.template.flags.remove(Flags::DOTTED_UNDERLINE);
cursor.template.flags.insert(Flags::DOUBLE_UNDERLINE);
},
Attr::Undercurl => {
cursor.template.flags.remove(Flags::UNDERLINE);
cursor.template.flags.remove(Flags::DOUBLE_UNDERLINE);
+ cursor.template.flags.remove(Flags::DOTTED_UNDERLINE);
cursor.template.flags.insert(Flags::UNDERCURL);
},
+ Attr::DottedUnderline => {
+ cursor.template.flags.remove(Flags::UNDERLINE);
+ cursor.template.flags.remove(Flags::DOUBLE_UNDERLINE);
+ cursor.template.flags.remove(Flags::UNDERCURL);
+ cursor.template.flags.insert(Flags::DOTTED_UNDERLINE);
+ },
Attr::CancelUnderline => {
cursor.template.flags.remove(
- Flags::UNDERLINE | Flags::DOUBLE_UNDERLINE | Flags::UNDERCURL);
+ Flags::UNDERLINE |
+ Flags::DOUBLE_UNDERLINE |
+ Flags::UNDERCURL |
+ Flags::DOTTED_UNDERLINE);
},
Attr::Overline => {
cursor.template.flags.insert(Flags::OVERLINE);