Fixes#2651
First, our OSC parser didn't allow blank OSC 0 or 2 requests. This
should be allowed and this fixes that with a test.
Second, it seems many terminals (iTerm2, Kitty) treat setting a blank
title as resetting to whatever the default title is rather than
explicitly setting it as blank. If a program wants a title to be blank
they should send a single space. This commit follows this behavior.
- break formatting values out into a function so that we can
catch errors and never fail
- eliminate the use of toOwnedSentinelSlice since we are using
an arena to clean up memory
Prior to this change both C and c would copy the path to the theme even though
the help screen claimed that c would copy the theme name.
There is a bug in libvaxis that results in both of these matches matching c:
`key.matches('c', .{})`
`key.matches('c', .{ .shift = true })`
Tested:
Before the change: 'c' copies path and 'C' copies path
After the change: 'c' copies the name and 'C' copies the path
I hit an edge case when using Private Wi-Fi addressing on macOS where
the last section of the randomized mac address starts with a '0'. The
hostname parsing for the shell integration didn't handle this case, so
issue #2512 reappeared.
This fixes that by explicitly handling port numbers < 10.
This is more correct: a pagelist is a linked list of nodes, not pages.
The nodes themselves contain pages but we were previously calling the
nodes "pages" which was confusing, especially as I plan some future
changes to the way pages are stored.
addresses #2561 - adds support for most Git branch drawing characters as
specified in 
except for fading vertical and horizontal lines.
Adds git_draw_node function and a new Git node type.
Add this range (0xf5d0...0xf60d) for Git branch characters, to tests.
adds vline_middle_xy and hline_middle_xy for node connections.
add git characters to Face.zig.
This was causing discovery to find some odd fonts under certain
scenarios (namely: Recursive Mono). Due to our prior fix in
e08eeb2b2ad810c4db22530a181858caee834b22 we no longer need to set
variations here for them to stick.
This fixes an issue where for the regular style we were picking a
suboptimal style because for some font faces we were choosing more bold
faces (just as chance). This modifies our scoring to take the style
length into account even for regular style. We already had this logic
for explicit styles.
Fixes#2601
It is more expected behavior that `-e` affects only the first window. By
introducing a dedicated configuration we avoid making `-e` too magical:
its simply syntax sugar for setting the "initial-command" configuration.
This commit makes CoreText behave a lot like FreeType where we set the
variation axes on the deferred face load. This fixes a bug where the
`slnt` variation axis could not be set with CoreText with the Monaspace
Argon Variable font.
This was a bug found in Discord. Specifically, with the Monaspace Argon
Variable font, the `slnt` variation axis could not be set with CoreText.
I'm not sure _exactly_ what causes this but I suspect it has to do with
the `slnt` axis being a negative value. I'm not sure if this is a bug
with CoreText or not.
What was happening was that with CoreText, we set the variation axes
during discovery and expect them to be preserved in the resulting
discovered faces. That seems to be true with the `wght` axis but not the
`slnt` axis for whatever reason.
Note that this includes some failing tests because I want to make the
uri handling better and more specific. It's a little bit too general
right now so I want to lock it down to:
1. macOS only; and
2. valid mac address values
because that's how the macOS private Wi-Fi address thing works;
randomizes your mac address and sets that as your hostname.