Commit 736b949
committed
fix(typst): clean up latent bugs in CSS translator
While writing tests for #14460, found and fixed five latent bugs in
src/resources/filters/modules/typst_css.lua:
- parse_color: brand-color reference path (var(--brand-NAME)) crashed
when NAME contained digits. The capture class [%a--]* excluded %d, so
e.g. var(--brand-red-50) failed to match and fell into a broken error
branch that concatenated an undefined `v` and `return null`. Widened
the class to [%w-] and fixed the error branch to use the actual color
string and return nil.
- output_color: implicit global `zero` (missing `local`) leaked from the
no-color-with-opacity path. Made it local.
- translate_font_weight: passed `null` (an undefined global -> nil) to
output_warning, silently bypassing any user-supplied warnings
collector. Changed to forward `warnings`.
- consume_width / consume_style: `fbeg, fend = ...` without `local`
leaked them as globals on every call. Added `local`.
Each fix is covered by a regression test in tests/unit-lua/typst-css.test.lua.1 parent dad7821 commit 736b949
3 files changed
Lines changed: 91 additions & 13 deletions
File tree
- news
- src/resources/filters/modules
- tests/unit-lua
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
305 | 305 | | |
306 | 306 | | |
307 | 307 | | |
308 | | - | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
309 | 311 | | |
310 | | - | |
311 | | - | |
| 312 | + | |
| 313 | + | |
312 | 314 | | |
313 | | - | |
| 315 | + | |
314 | 316 | | |
315 | 317 | | |
316 | 318 | | |
| |||
332 | 334 | | |
333 | 335 | | |
334 | 336 | | |
335 | | - | |
| 337 | + | |
336 | 338 | | |
337 | 339 | | |
338 | 340 | | |
| |||
627 | 629 | | |
628 | 630 | | |
629 | 631 | | |
630 | | - | |
| 632 | + | |
631 | 633 | | |
632 | 634 | | |
633 | | - | |
| 635 | + | |
634 | 636 | | |
635 | 637 | | |
636 | 638 | | |
| |||
716 | 718 | | |
717 | 719 | | |
718 | 720 | | |
719 | | - | |
720 | | - | |
721 | | - | |
722 | | - | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
723 | 725 | | |
724 | 726 | | |
725 | 727 | | |
726 | | - | |
| 728 | + | |
727 | 729 | | |
728 | 730 | | |
729 | 731 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
153 | 229 | | |
0 commit comments