From 605c4e3f4c2232e42467f6658f8b5e61516c7159 Mon Sep 17 00:00:00 2001 From: Maxwell Terpstra Date: Tue, 29 Nov 2016 06:04:50 -0800 Subject: [PATCH] fix 'x' flag parsing (#1188) * fix 'x' flag parsing as seen in FunMatches.java#L528, an 'x' flag in regular expressions should be interpreted as Pattern.COMMENTS * typo fix * add analyze-string#3 'x' flag test --- src/org/exist/xquery/functions/fn/FunAnalyzeString.java | 4 ++-- test/src/xquery/xquery3/fn.xql | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/org/exist/xquery/functions/fn/FunAnalyzeString.java b/src/org/exist/xquery/functions/fn/FunAnalyzeString.java index 912ae9f4c26..2c26582d635 100644 --- a/src/org/exist/xquery/functions/fn/FunAnalyzeString.java +++ b/src/org/exist/xquery/functions/fn/FunAnalyzeString.java @@ -195,7 +195,7 @@ private int parseStringFlags(final String flags) { break; case 'x' : - iFlags |= Pattern.CANON_EQ; + iFlags |= Pattern.COMMENTS; break; case 'q' : @@ -205,4 +205,4 @@ private int parseStringFlags(final String flags) { } return iFlags; } -} \ No newline at end of file +} diff --git a/test/src/xquery/xquery3/fn.xql b/test/src/xquery/xquery3/fn.xql index 554c38a1fff..ba7bfab8085 100644 --- a/test/src/xquery/xquery3/fn.xql +++ b/test/src/xquery/xquery3/fn.xql @@ -3,6 +3,7 @@ xquery version "3.0"; module namespace fn="http://exist-db.org/xquery/test/fnfunctions"; declare namespace test="http://exist-db.org/xquery/xqsuite"; +declare namespace xpf = "http://www.w3.org/2005/xpath-functions"; declare %test:assertEquals(0, 4, 3, 2, 1) @@ -14,3 +15,9 @@ return }) }; +declare + %test:args('test', 't e s t', '') %test:assertFalse + %test:args('test', 't e s t', 'x') %test:assertTrue +function fn:analyze-matches($str, $pat, $flags) { + exists(analyze-string($str, $pat, $flags)/xpf:match) +};