You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by bu...@apache.org on 2002/06/28 20:35:18 UTC
DO NOT REPLY [Bug 10337] New: -
XMLString::patternMatch doesn't find pattern in particular context
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10337>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10337
XMLString::patternMatch doesn't find pattern in particular context
Summary: XMLString::patternMatch doesn't find pattern in
particular context
Product: Xerces-C++
Version: 1.7.0
Platform: PC
OS/Version: Windows NT/2K
Status: NEW
Severity: Normal
Priority: Other
Component: DOM
AssignedTo: xerces-c-dev@xml.apache.org
ReportedBy: jstgermain@popupsolutions.com
Xerces-C++ version 1.7.0
Windows 2000 SP1
Using Builder C++ 5
Binary distribution
Bugged Function : XMLString::patternMatch
example that fails:
stringToSearch: 1234123455
stringToFind : 12345
similar example that works:
stringToSearch: 1234 123455
stringToFind : 12345
When the function finds the beginning of a pattern (1234..) and finds a
difference, it doesn't restart the pattern search on the next char but the one
after the next.
Here is the modified function:
// Begin
int XMLString::patternMatch( XMLCh* const toSearch
, const XMLCh* const pattern)
{
if (!toSearch || !pattern )
return -1;
XMLCh* srcPtr = toSearch;
const int patnLen = XMLString::stringLen(pattern);
int patnIndex = 0;
bool patnMatch;
while (*srcPtr)
{
patnMatch = (*srcPtr++ == pattern[patnIndex++]);
if (!patnMatch)
{
patnIndex = 0;
patnMatch = (*srcPtr == pattern[patnIndex++]);
}
if (patnMatch)
{
if (patnIndex == patnLen)
// full pattern match found
return (srcPtr - patnLen - toSearch);
}
}
return -1;
}
// End
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org