tng 2003/01/06 11:43:32 Modified: c/src/xercesc/util/Platforms/Win32 Win32PlatformUtils.cpp Log: New feature StandardUriConformant to force strict standard uri conformance. Revision Changes Path 1.12 +33 -4 xml-xerces/c/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp Index: Win32PlatformUtils.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- Win32PlatformUtils.cpp 6 Dec 2002 16:40:24 -0000 1.11 +++ Win32PlatformUtils.cpp 6 Jan 2003 19:43:32 -0000 1.12 @@ -260,6 +260,36 @@ if (!fileName) return 0; + // + // We have to play a little trick here. If its /x:..... + // style fully qualified path, we have to toss the leading / + // character. + // + const XMLCh* nameToOpen = fileName; + if (*fileName == chForwardSlash) + { + if (XMLString::stringLen(fileName) > 3) + { + if (*(fileName + 2) == chColon) + { + const XMLCh chDrive = *(fileName + 1); + if (((chDrive >= chLatin_A) && (chDrive <= chLatin_Z)) + || ((chDrive >= chLatin_a) && (chDrive <= chLatin_z))) + { + nameToOpen = fileName + 1; + } + } + + // Similarly for UNC paths + if ( *(fileName + 1) == *(fileName + 2) && + (*(fileName + 1) == chForwardSlash || + *(fileName + 1) == chBackSlash) ) + { + nameToOpen = fileName + 1; + } + } + } + // Ok, this might look stupid but its a semi-expedient way to deal // with a thorny problem. Shift-JIS and some other Asian encodings // are fundamentally broken and map both the backslash and the Yen @@ -279,9 +309,8 @@ // transcode correctly back to 8 bit char * form. // XMLCh *tmpUName = 0; - const XMLCh *nameToOpen = fileName; - const XMLCh* srcPtr = fileName; + const XMLCh* srcPtr = nameToOpen; while (*srcPtr) { if (*srcPtr == chYenSign || @@ -296,7 +325,7 @@ // if (*srcPtr) { - tmpUName = XMLString::replicate(fileName); + tmpUName = XMLString::replicate(nameToOpen); XMLCh* tmpPtr = tmpUName; while (*tmpPtr)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]