summaryrefslogtreecommitdiff
path: root/.agents
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 17:46:11 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:17 -0300
commite3e605bd33fc5be56cb7ec842449718bc5337a75 (patch)
tree85a9d70524ecb3358bc3f92225851c6abd249a10 /.agents
parent290584fc1127d017603c7c98c9aab27c0523a2cf (diff)
downloadpardes-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 '.agents')
-rw-r--r--.agents/skills/pardes-9p/SKILL.md4
1 files changed, 3 insertions, 1 deletions
diff --git a/.agents/skills/pardes-9p/SKILL.md b/.agents/skills/pardes-9p/SKILL.md
index 94ad0de8..56123b89 100644
--- a/.agents/skills/pardes-9p/SKILL.md
+++ b/.agents/skills/pardes-9p/SKILL.md
@@ -293,7 +293,9 @@ newline, the leftmost match wins (the first alternative there, not the
longest). In a pattern with `\n`, `^` works only first (`^def .*\n` finds
every def line) and `$` only just before a `\n`; anywhere else the pattern is
refused, not silently unmatched. `^def|^ ` finds lines starting either way
-(every branch anchored; a mix like `^def|x` is refused). An expression is evaluated from the current address (the last one
+(every branch anchored; a mix like `^def|x` is refused). `[éa-z]` and
+`[à-ÿ]` match those runes (a range up to 256 runes); `[^é]` and a wider
+range are refused. An expression is evaluated from the current address (the last one
written, or just past the last `data` write): `.` is that address, not the
selection, `/re/` searches on from its end and wraps unless `limit` is set,
`?re?` or `-/re/` searches back, `#100,#50` fails `addresses out of order`,