-rw-r--r--Cargo.lock120
-rw-r--r--src/lib.rs36
2 files changed, 72 insertions, 84 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 97fa6fa..d094228 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -28,14 +28,14 @@ checksum = "75892c1bdf5a3e474bbab36fa7f08d1bcc49ce35bd08fdd44cd761805b5865ac"
[[package]]
name = "atools"
-version = "0.1.10"
+version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3dc7edbf411ccc4efc88a9538f0d1f22820fb5a62e1789dc07c0e75cfc861c8"
+checksum = "59fdfa9d3089fc0aa2676b7b3fe46484581faeef796d7b19b6eb1b908664efc3"
[[package]]
name = "atools"
-version = "0.1.10"
-source = "git+https://github.com/bend-n/atools#4e3ee6f557f9af7c7908ab2420b7e8b7b22bd332"
+version = "0.1.12"
+source = "git+https://github.com/bend-n/atools#1df461b58cd728c1d6ad4fb5161cd1e37d6d773f"
[[package]]
name = "autocfg"
@@ -94,9 +94,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.2.41"
+version = "1.2.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7"
+checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a"
dependencies = [
"find-msvc-tools",
"shlex",
@@ -149,7 +149,7 @@ name = "dsb"
version = "0.1.0"
dependencies = [
"array_chunks",
- "atools 0.1.10 (git+https://github.com/bend-n/atools)",
+ "atools 0.1.12 (git+https://github.com/bend-n/atools)",
"fimg",
"implicit-fn",
"itertools",
@@ -203,7 +203,7 @@ version = "0.4.50"
source = "git+https://github.com/bend-n/fimg#4ef37597ee44dff03d6fc55393c4e97baa080196"
dependencies = [
"array_chunks",
- "atools 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "atools 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
"car",
"clipline",
"fer",
@@ -222,15 +222,15 @@ dependencies = [
[[package]]
name = "find-msvc-tools"
-version = "0.1.4"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127"
+checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
[[package]]
name = "flate2"
-version = "1.1.4"
+version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9"
+checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
dependencies = [
"crc32fast",
"miniz_oxide",
@@ -238,9 +238,9 @@ dependencies = [
[[package]]
name = "font-types"
-version = "0.10.0"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "511e2c18a516c666d27867d2f9821f76e7d591f762e9fc41dd6cc5c90fe54b0b"
+checksum = "39a654f404bbcbd48ea58c617c2993ee91d1cb63727a37bf2323a4edeed1b8c5"
dependencies = [
"bytemuck",
]
@@ -405,9 +405,9 @@ dependencies = [
[[package]]
name = "js-sys"
-version = "0.3.81"
+version = "0.3.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305"
+checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8"
dependencies = [
"once_cell",
"wasm-bindgen",
@@ -459,25 +459,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
[[package]]
-name = "log"
-version = "0.4.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
-
-[[package]]
name = "lower"
-version = "0.2.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "913cca45d9edb04b7ce3334ad0e551e29b2e8f3eea7f0c9c1f799dc2f33bc80e"
+checksum = "9faac1cfe5c3c955d3caa12e501034062890c67c7dd756eedfcf38709eb917d9"
dependencies = [
"lower-macros",
]
[[package]]
name = "lower-macros"
-version = "0.2.9"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7a7e2ceb9f44e1db6f2fe5f91ae5c0c0e25b66272d757fad0a9929525e7e3f0"
+checksum = "a2996a18b899178abb5e49750d670a908ffb67b13f15b95e4fc5c40a1dffbd76"
dependencies = [
"proc-macro2",
"quote",
@@ -570,9 +564,9 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
[[package]]
name = "orbclient"
-version = "0.3.48"
+version = "0.3.49"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43"
+checksum = "247ad146e19b9437f8604c21f8652423595cf710ad108af40e77d3ae6e96b827"
dependencies = [
"libc",
"libredox",
@@ -613,18 +607,18 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.101"
+version = "1.0.103"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
+checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
-version = "1.0.41"
+version = "1.0.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1"
+checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
dependencies = [
"proc-macro2",
]
@@ -636,7 +630,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41da814f20fd1322bd0952e5b5de7a25b71137fd471e0da192ac3f7a1d3327ae"
dependencies = [
"array_chunks",
- "atools 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "atools 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -798,9 +792,9 @@ checksum = "9cd32a3a5640a1e8ba59937591c61be77cae746e7c0fa081b24deebb4f7ece4c"
[[package]]
name = "syn"
-version = "2.0.107"
+version = "2.0.111"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a26dbd934e5451d21ef060c018dae56fc073894c5a7896f882928a76e6d081b"
+checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
dependencies = [
"proc-macro2",
"quote",
@@ -834,9 +828,9 @@ checksum = "42f74eb7957e3a63fa27bfa53c3d361e7ce3871e66f2518292a011eb8e2c00cc"
[[package]]
name = "unicode-ident"
-version = "1.0.20"
+version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06"
+checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
[[package]]
name = "vecto"
@@ -870,9 +864,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen"
-version = "0.2.104"
+version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d"
+checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd"
dependencies = [
"cfg-if",
"once_cell",
@@ -882,24 +876,10 @@ dependencies = [
]
[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.104"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19"
-dependencies = [
- "bumpalo",
- "log",
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-shared",
-]
-
-[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.54"
+version = "0.4.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c"
+checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c"
dependencies = [
"cfg-if",
"js-sys",
@@ -910,9 +890,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.104"
+version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119"
+checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -920,22 +900,22 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.104"
+version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7"
+checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40"
dependencies = [
+ "bumpalo",
"proc-macro2",
"quote",
"syn",
- "wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.104"
+version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1"
+checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4"
dependencies = [
"unicode-ident",
]
@@ -1012,9 +992,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.81"
+version = "0.3.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120"
+checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -1175,9 +1155,9 @@ checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b"
[[package]]
name = "xml-rs"
-version = "0.8.27"
+version = "0.8.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7"
+checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f"
[[package]]
name = "yazi"
@@ -1193,18 +1173,18 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524"
[[package]]
name = "zerocopy"
-version = "0.8.27"
+version = "0.8.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
+checksum = "4ea879c944afe8a2b25fef16bb4ba234f47c694565e97383b36f3a878219065c"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
-version = "0.8.27"
+version = "0.8.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
+checksum = "cf955aa904d6040f70dc8e9384444cb1030aed272ba3cb09bbc4ab9e7c1f34f5"
dependencies = [
"proc-macro2",
"quote",
diff --git a/src/lib.rs b/src/lib.rs
index ff25598..78c3ce8 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -218,15 +218,23 @@ pub unsafe fn render(
if (cell.style.flags & Style::DIM) != 0 {
color = color.map(|x| x / 2);
}
- // if (cell.style.flags & Style::UNDERLINE) != 0 {
- // unsafe {
- // i.as_mut().overlay_at(
- // &Image::<_, 4>::build(fw.ceil() as u32, 2).fill(color.join(255)),
- // 4 + (j as f32 * fw as u32,
- // (k as f32 * (ppem * 1.25)) as u32 + 5,
- // )
- // };
- // }
+ if (cell.style.flags & Style::UNDERLINE) != 0 {
+ unsafe {
+ i.as_mut().overlay_at(
+ &Image::<_, 4>::build(
+ fw.ceil() as u32,
+ ((0.05 * ppem) as u32).max(1),
+ )
+ .fill(color.join(255)),
+ ((j as f32 * fw).round() as i32 + offset_x as i32)
+ .max(0) as u32,
+ (k as f32 * (fh + line_spacing * fac)
+ + (met.ascent * fac * 1.05))
+ .floor() as u32
+ + offset_y,
+ )
+ };
+ }
// if (cell.style.flags & Style::STRIKETHROUGH) != 0 {
// unsafe {
// i.as_mut().overlay_at(
@@ -425,7 +433,7 @@ fn x() {
style: Style {
bg: [31, 36, 48],
color: [255, 255, 255],
- flags: 5,
+ flags: Style::UNDERLINE,
},
letter: Some('['),
},
@@ -433,7 +441,7 @@ fn x() {
style: Style {
bg: [31, 36, 48],
color: [255, 173, 102],
- flags: 5,
+ flags: Style::UNDERLINE,
},
letter: Some('='),
},
@@ -441,7 +449,7 @@ fn x() {
style: Style {
bg: [31, 36, 48],
color: [204, 202, 194],
- flags: 0,
+ flags: Style::UNDERLINE,
},
letter: Some('s'),
},
@@ -449,7 +457,7 @@ fn x() {
style: Style {
bg: [31, 36, 48],
color: [255, 173, 102],
- flags: 5,
+ flags: Style::UNDERLINE,
},
letter: Some('>'),
},
@@ -465,7 +473,7 @@ fn x() {
render_owned(
&z,
(5, 1),
- 200.0,
+ 20.0,
&mut Fonts::new(*FONT, *FONT, *FONT, *FONT),
2.0,
true,