From 232f0b3357ad5799b4d7bfc70a27be075d6bc14e Mon Sep 17 00:00:00 2001 From: Tinny Ng <tng@apache.org> Date: Fri, 26 Jul 2002 18:22:21 +0000 Subject: [PATCH] =?UTF-8?q?[Bug=2010337]=20XMLString::patternMatch=20doesn?= =?UTF-8?q?'t=20find=20pattern=20in=20particular=20context.=20=20Fixed=20b?= =?UTF-8?q?y=20Jo=EF=BF=BD=20St-Germain.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@174066 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/util/XMLString.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/xercesc/util/XMLString.cpp b/src/xercesc/util/XMLString.cpp index 905fb1fa8..7302d2b41 100644 --- a/src/xercesc/util/XMLString.cpp +++ b/src/xercesc/util/XMLString.cpp @@ -1180,14 +1180,19 @@ int XMLString::patternMatch( XMLCh* const toSearch XMLCh* srcPtr = toSearch; const int patnLen = XMLString::stringLen(pattern); int patnIndex = 0; + bool patnMatch; while (*srcPtr) { - if (*srcPtr++ != pattern[patnIndex++]) + patnMatch = (*srcPtr++ == pattern[patnIndex++]); + + if (!patnMatch) { patnIndex = 0; + patnMatch = (*srcPtr == pattern[patnIndex++]); } - else + + if (patnMatch) { if (patnIndex == patnLen) // full pattern match found -- GitLab