33 Commits

Author SHA1 Message Date
Marijn Besseling
4496e7d314 implement overline decoration (SGR 53/55) 2024-10-21 08:36:08 -04:00
Tim Culverhouse
93643d1741 sgr: add support for legacy double underline
SGR 21 is defined to be a double underline. This behavior is common
among many terminals, notably xterm.

References: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_
2024-09-27 22:22:22 -05:00
Mitchell Hashimoto
84a0e4e62d terminal: support 58;5 for setting underline color via 256 palette
Fixes #1013
2023-12-07 14:57:07 -08:00
Mitchell Hashimoto
306689b8a4 terminal: sgr direct bg also had wrong slice len 2023-10-27 09:27:45 -07:00
Mitchell Hashimoto
d28e6739c7 terminal: sgr direct color fg missing color doesn't crash 2023-10-27 09:25:16 -07:00
Mitchell Hashimoto
c18527384e terminal: sgr parsing doesn't parse 4-form 48, allows unstyled underline
Fixes #362

We previously tried to parse 4-form 48, but as far as I can tell this is
never used anyways and in this real world scenario it expected us to
parse a 3-form followed by an underline. This fixes the real world
scenario as priority and adds a test.

This also fixes an issue where single form colon underline may actually
exist, again from a real world scenario.
2023-08-30 14:58:44 -07:00
Mitchell Hashimoto
3391908a82 terminal: get rid of duplicate RGB struct 2023-08-30 08:48:57 -07:00
Mitchell Hashimoto
314f9287b1 Update Zig (#164)
* update zig

* pkg/fontconfig: clean up @as

* pkg/freetype,harfbuzz: clean up @as

* pkg/imgui: clean up @as

* pkg/macos: clean up @as

* pkg/pixman,utf8proc: clean up @as

* clean up @as

* lots more @as cleanup

* undo flatpak changes

* clean up @as
2023-06-30 12:15:31 -07:00
Mitchell Hashimoto
56f8e39e5b Update zig, mach, fmt 2023-06-25 11:08:20 -07:00
Mitchell Hashimoto
aafff194f9 terminal: SGR parse invisible (attr 8, 28) 2023-06-25 09:19:43 -07:00
Mitchell Hashimoto
97df179b04 terminfo: switch to semicolon SGR 48 to prevent render issues 2023-06-24 15:04:33 -07:00
Mitchell Hashimoto
b9bc61c0a4 terminal: parse underline color sequences (but do not handle yet) 2023-06-20 09:34:29 -07:00
Mitchell Hashimoto
28a22fc07f various tests to ensure we parse curly underlines correctly 2023-06-20 09:24:07 -07:00
Mitchell Hashimoto
bfc657395a curly underlines 2022-11-27 16:11:15 -08:00
Mitchell Hashimoto
c2d08c3071 terminal: parse all underline styles 2022-11-27 15:39:12 -08:00
Mitchell Hashimoto
5045e51b99 unknown underline styles render a single underline 2022-11-27 15:30:49 -08:00
Mitchell Hashimoto
d7fe6a1c47 fix sgr parsing for underline styles 2022-11-27 15:30:02 -08:00
Mitchell Hashimoto
584149121d use enum for underline styles 2022-11-27 14:16:51 -08:00
Mitchell Hashimoto
feccd550c3 implement many more reset sgr attributes 2022-11-13 21:54:26 -08:00
Mitchell Hashimoto
c1a9184ebd sgr: parse italic (render not implemented) 2022-11-07 14:04:40 -08:00
Mitchell Hashimoto
b18309187e Strikethrough (#19)
Not as straightforward as it sounds, but not hard either:

* Read OS/2 sfnt tables from TrueType fonts
* Calculate strikethrough position/thickness (prefer font-advertised if possible, calculate if not)
* Plumb the SGR code through the terminal state -- does not increase cell memory size
* Modify the shader to support it

The shaders are getting pretty nasty after this... there's tons of room for improvement. I chose to follow the existing shader style for this to keep it straightforward but will likely soon refactor the shaders.
2022-10-06 15:03:19 -07:00
Mitchell Hashimoto
8ff98446a9 sgr parsing bright colors now sets color properly 2022-08-27 10:55:10 -07:00
Mitchell Hashimoto
dc6fc5c1c3 implement faint colors (SGR 2) 2022-08-26 11:13:34 -07:00
Mitchell Hashimoto
4ffd5cd994 SGR 39/49 (reset fg/bg, respectively) 2022-08-26 09:56:17 -07:00
Mitchell Hashimoto
a1130095f8 note charsets are TODO 2022-08-26 09:27:51 -07:00
Mitchell Hashimoto
28acd99d7d reset inverse attribute 2022-07-26 09:37:52 -07:00
Mitchell Hashimoto
e325ea1616 parse more SGR attrs 2022-06-26 17:37:08 -07:00
Mitchell Hashimoto
16d4648cf6 implement bright fg/bg 2022-05-19 21:32:00 -07:00
Mitchell Hashimoto
29f88968e9 mistake calculated background 2022-05-19 21:29:49 -07:00
Mitchell Hashimoto
69365b944c implement named 8 colors sgr 2022-05-19 21:29:06 -07:00
Mitchell Hashimoto
043e29b885 sgr parse bold and 256 fg/bg 2022-05-19 20:47:30 -07:00
Mitchell Hashimoto
8400b683c4 sgr parsing can parse multiple 2022-05-12 16:20:30 -07:00
Mitchell Hashimoto
5743d2a232 terminal sgr attribute parsing 2022-05-11 21:40:54 -07:00