diff --git a/src/xercesc/util/XMLUri.cpp b/src/xercesc/util/XMLUri.cpp index a0d5fdc328bda811033a832832dc9acb687c6988..e9aae097cbb8c93a5df7c92bfabed172cf0210ee 100644 --- a/src/xercesc/util/XMLUri.cpp +++ b/src/xercesc/util/XMLUri.cpp @@ -2443,8 +2443,12 @@ bool XMLUri::processPath(const XMLCh* const pathStr, !XMLString::isHex(pathStr[index+2])) return false; } - else if ((testChar==chSpace && !bAllowSpaces) && - !isUnreservedCharacter(testChar) && + else if (testChar==chSpace) + { + if(!bAllowSpaces) + return false; + } + else if (!isUnreservedCharacter(testChar) && ((isOpaque && !isPathCharacter(testChar)) || (!isOpaque && !isReservedCharacter(testChar)))) { @@ -2476,8 +2480,12 @@ bool XMLUri::processPath(const XMLCh* const pathStr, !XMLString::isHex(pathStr[index+2])) return false; } - else if ((testChar==chSpace && !bAllowSpaces) && - !isReservedOrUnreservedCharacter(testChar)) + else if (testChar==chSpace) + { + if(!bAllowSpaces) + return false; + } + else if (!isReservedOrUnreservedCharacter(testChar)) { return false; }