diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/Modules/pcre.c | 2 | ||||
-rw-r--r-- | Test/V07pcre.ztst | 9 |
3 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index c1395f31c..18fde9344 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-09-07 Barton E. Schaefer <schaefer@zsh.org> + + * 33122: Src/Modules/pcre.c, Test/V07pcre.ztst: typo from 32891 + caused incorrect matches for pcre_match -n + 2014-09-06 Barton E. Schaefer <schaefer@zsh.org> * 33118: Src/subst.c: record original param unset state when diff --git a/Src/Modules/pcre.c b/Src/Modules/pcre.c index 040a33f8e..2393cd1e7 100644 --- a/Src/Modules/pcre.c +++ b/Src/Modules/pcre.c @@ -289,7 +289,7 @@ bin_pcre_match(char *nam, char **args, Options ops, UNUSED(int func)) matched_portion = OPT_ARG(ops,c); } if(OPT_HASARG(ops,c='n')) { /* The offset position to start the search, in bytes. */ - if ((offset_start = getposint(OPT_ARG(ops,c), nam) < 0)) + if ((offset_start = getposint(OPT_ARG(ops,c), nam)) < 0) return 1; } /* For the entire match, 'Return' the offset byte positions instead of the matched string */ diff --git a/Test/V07pcre.ztst b/Test/V07pcre.ztst index f5b05deaa..3a65331b3 100644 --- a/Test/V07pcre.ztst +++ b/Test/V07pcre.ztst @@ -108,3 +108,12 @@ >1 >0 xo→t →t >0 Xo→t →t + + string="The following zip codes: 78884 90210 99513" + pcre_compile -m "\d{5}" + pcre_match -b -- $string && print "$MATCH; ZPCRE_OP: $ZPCRE_OP" + pcre_match -b -n $ZPCRE_OP[(w)2] -- $string || print failed + print "$MATCH; ZPCRE_OP: $ZPCRE_OP" +0:pcre_match -b and pcre_match -n +>78884; ZPCRE_OP: 25 30 +>90210; ZPCRE_OP: 31 36 |