diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-29 17:46:11 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:17 -0300 |
| commit | e3e605bd33fc5be56cb7ec842449718bc5337a75 (patch) | |
| tree | 85a9d70524ecb3358bc3f92225851c6abd249a10 /src/ninep | |
| parent | 290584fc1127d017603c7c98c9aab27c0523a2cf (diff) | |
| download | pardes-e3e605bd33fc5be56cb7ec842449718bc5337a75.tar.gz pardes-e3e605bd33fc5be56cb7ec842449718bc5337a75.zip | |
A class with non-ASCII runes matches them: [éa-z] is taken as (é|[a-z]), a range up to 256 runes spelled out
mvzr's classes hold bytes, and it refused a multibyte member as a bad expression. Rewriting the class before compiling, as ^a|^b already is, needs no mvzr patch; runes that differ only in their last byte go as one alternative (\xc3[\xa0-\xbf] for [à-ÿ]) so a 256-rune range fits the 512-operation limit, which counts the pattern as rewritten. A wider range and [^é] are refused, naming why.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/ninep')
| -rw-r--r-- | src/ninep/addr.zig | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/ninep/addr.zig b/src/ninep/addr.zig index 005ad593..33a3f646 100644 --- a/src/ninep/addr.zig +++ b/src/ninep/addr.zig @@ -302,6 +302,8 @@ pub const Addr = struct { a.err = switch (err) { error.Anchor => regexp_.Regex.e_anchor, error.TooLong => regexp_.Regex.e_long, + error.WideRange => regexp_.Regex.e_wide, + error.NegatedRunes => regexp_.Regex.e_negated, error.Bad => e_regexp, }; return null; |
