diff options
author | Romain <romain.liautaud@snips.ai> | 2018-05-18 10:59:34 +0200 |
---|---|---|
committer | Romain <romain.liautaud@snips.ai> | 2018-05-18 11:14:19 +0200 |
commit | 149f0fd88d16fd9ca17b57e9a29c53b3eeac6277 (patch) | |
tree | f8ab746ad1ba2e8be5ba219476dcb7f79b62fd7d /src/cell.rs | |
parent | 34c7a91713034e683a727f3650b34d9e392f19e3 (diff) |
Fixed cell width issues when using ANSI color codes.
This commit adds a `utils::display_width` function, which is just a wrapper
around `UnicodeWidthStr::width` which also takes ANSI color codes into account.
This is required when creating cells from strings which are already colored
using ANSI color codes (instead of coloring the cells using styles). Since
color codes are of the form \u{1b}[ ... m, but UnicodeWidthStr::width only
takes the first \u{1b} into account, this would create cell width issues.
Diffstat (limited to 'src/cell.rs')
-rw-r--r-- | src/cell.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cell.rs b/src/cell.rs index 255c3fd..cca22d4 100644 --- a/src/cell.rs +++ b/src/cell.rs @@ -2,9 +2,9 @@ use std::io::{Write, Error}; use std::string::ToString; -use unicode_width::UnicodeWidthStr; use super::{Attr, Terminal, color}; use super::format::Alignment; +use super::utils::display_width; use super::utils::print_align; /// Represent a table cell containing a string. @@ -26,7 +26,7 @@ impl Cell { let content: Vec<String> = string.lines().map(|x| x.to_string()).collect(); let mut width = 0; for cont in &content { - let l = UnicodeWidthStr::width(&cont[..]); + let l = display_width(&cont[..]); if l > width { width = l; } |