(at_begline_loc_p): Also recognize the \\(?:^ case
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 25 May 2000 16:30:40 +0000 (16:30 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 25 May 2000 16:30:40 +0000 (16:30 +0000)
of an anchor at the beginning of a shy-group.

regex.c

diff --git a/regex.c b/regex.c
index 3b4eb50..9ea8699 100644 (file)
--- a/regex.c
+++ b/regex.c
@@ -3208,7 +3208,12 @@ at_begline_loc_p (pattern, p, syntax)
        /* After a subexpression?  */
        (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash))
        /* After an alternative?         */
-    || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash));
+    || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash))
+       /* After a shy subexpression?  */
+    || ((syntax & RE_SHY_GROUPS) && prev - 2 >= pattern
+       && prev[-1] == '?' && prev[-2] == '('
+       && (syntax & RE_NO_BK_PARENS
+           || (prev - 3 >= pattern && prev[-3] == '\\')));
 }