diff --git a/font/src/ft/mod.rs b/font/src/ft/mod.rs index 25917e9..b855923 100644 --- a/font/src/ft/mod.rs +++ b/font/src/ft/mod.rs @@ -24,7 +24,7 @@ use libc::c_uint; pub mod fc; -use super::{FontDesc, RasterizedGlyph, Metrics, Size, FontKey, GlyphKey, Weight, Slant, Style}; +use super::{FontDesc, RasterizedGlyph, Metrics, Size, FontKey, GlyphKey, Weight, Slant, Style, UNDERLINE_CURSOR_CHAR}; struct FixedSize { pixelsize: f64, @@ -295,7 +295,7 @@ impl FreeTypeRasterizer { let (pixel_width, buf) = Self::normalize_buffer(&glyph.bitmap())?; // Render a custom symbol for the underline cursor - if glyph_key.c == '􊏢' { + if glyph_key.c == UNDERLINE_CURSOR_CHAR { // Get the bottom of the bounding box let size_metrics = face.ft_face.size_metrics() .ok_or(Error::MissingSizeMetrics)?; diff --git a/font/src/lib.rs b/font/src/lib.rs index 513dacd..d22746d 100644 --- a/font/src/lib.rs +++ b/font/src/lib.rs @@ -58,6 +58,12 @@ mod darwin; #[cfg(target_os = "macos")] pub use darwin::*; +/// Character used for the underline cursor +#[cfg(not(target_os = "macos"))] +pub const UNDERLINE_CURSOR_CHAR: char = '􊏢'; +#[cfg(target_os = "macos")] +pub const UNDERLINE_CURSOR_CHAR: char = '▁'; + #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct FontDesc { name: String, diff --git a/src/term/mod.rs b/src/term/mod.rs index 892a96b..1fbe4d8 100644 --- a/src/term/mod.rs +++ b/src/term/mod.rs @@ -22,6 +22,7 @@ use std::time::{Duration, Instant}; use arraydeque::ArrayDeque; use unicode_width::UnicodeWidthChar; +use font; use ansi::{self, Color, NamedColor, Attr, Handler, CharsetIndex, StandardCharset, CursorStyle}; use grid::{BidirectionalIterator, Grid, ClearRegion, ToRange, Indexed}; use index::{self, Point, Column, Line, Linear, IndexRange, Contains, RangeInclusive}; @@ -208,7 +209,7 @@ impl<'a> RenderableCellsIter<'a> { let cursor_color = self.text_cursor_color(&cursor_cell); // This is part of the private use area and shouldn't be used by any font - cursor_cell.c = '􊏢'; + cursor_cell.c = font::UNDERLINE_CURSOR_CHAR; cursor_cell.fg = cursor_color; self.cursor_cells.push_back(Indexed { line: self.cursor.line,