summaryrefslogtreecommitdiff
path: root/src/ninep
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 18:58:24 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commitff867666106fa85bd91341beb9e8121b2f99bc5f (patch)
treea4a84b3f6f733673149fd2541cc9f70e61629fac /src/ninep
parentab806dc38ddcd74958b999fe708ae9ea63609f72 (diff)
downloadpardes-ff867666106fa85bd91341beb9e8121b2f99bc5f.tar.gz
pardes-ff867666106fa85bd91341beb9e8121b2f99bc5f.zip
^ in a pattern with \n matches at every line start, and a ^ or $ that cannot work is refused
A pattern naming a newline runs over the whole text, where mvzr's ^ is only the text's start: /^def .*\n/ from #0 failed, and Edit ,x/^def .*\n/.../ silently did nothing. A leading ^ is now tried at each line start from the search's own; $ just before \n is dropped, as it changes nothing; any other ^ or $ in such a pattern is refused with why, since mvzr would read it as the text's ends. ^ inside an alternation holds only where a search starts, an mvzr limit, documented. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/ninep')
-rw-r--r--src/ninep/addr.zig4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ninep/addr.zig b/src/ninep/addr.zig
index f57c62bd..1e47183b 100644
--- a/src/ninep/addr.zig
+++ b/src/ninep/addr.zig
@@ -222,8 +222,8 @@ pub const Addr = struct {
a.err = "no previous regular expression";
return null;
}
- var rx = regexp_.Regex.compile(pat) catch {
- a.err = e_regexp;
+ var rx = regexp_.Regex.compile(pat) catch |err| {
+ a.err = if (err == error.Anchor) regexp_.Regex.e_anchor else e_regexp;
return null;
};
const found = if (back) found: {