aboutsummaryrefslogtreecommitdiff
path: root/alacritty
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2021-09-15 01:08:10 -0600
committerJosh Rahm <rahm@google.com>2021-09-15 01:18:33 -0600
commit2ded77656793f340440fe0efb54119697bb22a1a (patch)
treedb9e584a2882f2137ff029800cf35a61a7502e65 /alacritty
parentd2b578e011d62311125033d895060986a96d3c88 (diff)
downloadr-alacritty-2ded77656793f340440fe0efb54119697bb22a1a.tar.gz
r-alacritty-2ded77656793f340440fe0efb54119697bb22a1a.tar.bz2
r-alacritty-2ded77656793f340440fe0efb54119697bb22a1a.zip
Added ability to set the special color for the undercur and underlines using the standard ANSI code 59
Diffstat (limited to 'alacritty')
-rw-r--r--alacritty/src/display/content.rs7
-rw-r--r--alacritty/src/renderer/mod.rs2
-rw-r--r--alacritty/src/renderer/rects.rs2
3 files changed, 10 insertions, 1 deletions
diff --git a/alacritty/src/display/content.rs b/alacritty/src/display/content.rs
index 09116508..9f52e74e 100644
--- a/alacritty/src/display/content.rs
+++ b/alacritty/src/display/content.rs
@@ -189,6 +189,7 @@ pub struct RenderableCell {
pub point: Point<usize>,
pub fg: Rgb,
pub bg: Rgb,
+ pub sp: Rgb, // Special
pub bg_alpha: f32,
pub flags: Flags,
}
@@ -198,6 +199,11 @@ impl RenderableCell {
// Lookup RGB values.
let mut fg = Self::compute_fg_rgb(content, cell.fg, cell.flags);
let mut bg = Self::compute_bg_rgb(content, cell.bg);
+ let mut sp = if cell.sp == Color::Named(NamedColor::Foreground) {
+ fg
+ } else {
+ Self::compute_bg_rgb(content, cell.sp)
+ };
let mut bg_alpha = if cell.flags.contains(Flags::INVERSE) {
mem::swap(&mut fg, &mut bg);
@@ -263,6 +269,7 @@ impl RenderableCell {
point,
fg,
bg,
+ sp,
}
}
diff --git a/alacritty/src/renderer/mod.rs b/alacritty/src/renderer/mod.rs
index 11ccfc63..0173769c 100644
--- a/alacritty/src/renderer/mod.rs
+++ b/alacritty/src/renderer/mod.rs
@@ -835,6 +835,7 @@ impl<'a> RenderApi<'a> {
bg: Rgb,
string: &str,
) {
+ let sp = Rgb { b: 0, g: 0, r: 0 };
let cells = string
.chars()
.enumerate()
@@ -846,6 +847,7 @@ impl<'a> RenderApi<'a> {
bg_alpha: 1.0,
fg,
bg,
+ sp,
})
.collect::<Vec<_>>();
diff --git a/alacritty/src/renderer/rects.rs b/alacritty/src/renderer/rects.rs
index 91a67c22..2640b645 100644
--- a/alacritty/src/renderer/rects.rs
+++ b/alacritty/src/renderer/rects.rs
@@ -260,7 +260,7 @@ impl RenderLines {
}
// Start new line if there currently is none.
- let line = RenderLine { start: cell.point, end, color: cell.fg };
+ let line = RenderLine { start: cell.point, end, color: cell.sp };
match self.inner.get_mut(&flag) {
Some(lines) => lines.push(line),
None => {