knoaman 2003/03/04 08:36:17 Modified: c/src/xercesc/NLS/EN_US XMLErrList_EN_US.Xml c/src/xercesc/util/MsgLoaders/ICU/resources en_US.txt c/src/xercesc/util/MsgLoaders/InMemory XercesMessages_en_US.hpp c/src/xercesc/util/MsgLoaders/MsgCatalog XercesMessages_en_US.Msg c/src/xercesc/util/Platforms/Win32 Version.rc c/src/xercesc/util/regx RegxParser.cpp Log: RegEx: fix for character category escape Revision Changes Path 1.29 +1 -1 xml-xerces/c/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml Index: XMLErrList_EN_US.Xml =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- XMLErrList_EN_US.Xml 1 Mar 2003 19:32:11 -0000 1.28 +++ XMLErrList_EN_US.Xml 4 Mar 2003 16:36:15 -0000 1.29 @@ -545,7 +545,7 @@ <Message Id="Parser_Factor5" Text="A back reference or an anchor or a lookahead or a lookbehind is expected in a conditional pattern"/> <Message Id="Parser_Factor6" Text="There are more than three choices in a conditional group"/> <Message Id="Parser_Atom1" Text="A character in U+0040-U+005f must follow \c"/> - <Message Id="Parser_Atom2" Text="A Category character or '{' is required"/> + <Message Id="Parser_Atom2" Text="A '{' is required before a category character."/> <Message Id="Parser_Atom3" Text="A property name is not closed by '}'"/> <Message Id="Parser_Atom4" Text="Unexpected meta character"/> <Message Id="Parser_Atom5" Text="Unknown property"/> 1.21 +1 -1 xml-xerces/c/src/xercesc/util/MsgLoaders/ICU/resources/en_US.txt Index: en_US.txt =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/MsgLoaders/ICU/resources/en_US.txt,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- en_US.txt 1 Mar 2003 19:33:19 -0000 1.20 +++ en_US.txt 4 Mar 2003 16:36:15 -0000 1.21 @@ -546,7 +546,7 @@ "A back reference or an anchor or a lookahead or a lookbehind is expected in a conditional pattern " , "There are more than three choices in a conditional group " , "A character in U+0040-U+005f must follow \c " , - "A Category character or '{' is required " , + "A '{' is required before a category character. " , "A property name is not closed by '}' " , "Unexpected meta character " , "Unknown property " , 1.11 +2 -2 xml-xerces/c/src/xercesc/util/MsgLoaders/InMemory/XercesMessages_en_US.hpp Index: XercesMessages_en_US.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/MsgLoaders/InMemory/XercesMessages_en_US.hpp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- XercesMessages_en_US.hpp 1 Mar 2003 19:34:56 -0000 1.10 +++ XercesMessages_en_US.hpp 4 Mar 2003 16:36:15 -0000 1.11 @@ -1092,8 +1092,8 @@ 0x006E,0x0020,0x0061,0x0020,0x0063,0x006F,0x006E,0x0064,0x0069,0x0074,0x0069,0x006F,0x006E,0x0061,0x006C,0x0020,0x0067,0x0072,0x006F,0x0075,0x0070,0x00 } , { 0x0041,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x0069,0x006E,0x0020,0x0055,0x002B,0x0030,0x0030,0x0034,0x0030,0x002D,0x0055,0x002B,0x0030,0x0030,0x0035,0x0066,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0066, 0x006F,0x006C,0x006C,0x006F,0x0077,0x0020,0x005C,0x0063,0x00 } - , { 0x0041,0x0020,0x0043,0x0061,0x0074,0x0065,0x0067,0x006F,0x0072,0x0079,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x0020,0x006F,0x0072,0x0020,0x0027,0x007B,0x0027,0x0020,0x0069,0x0073,0x0020,0x0072,0x0065,0x0071,0x0075, - 0x0069,0x0072,0x0065,0x0064,0x00 } + , { 0x0041,0x0020,0x0027,0x007B,0x0027,0x0020,0x0069,0x0073,0x0020,0x0072,0x0065,0x0071,0x0075,0x0069,0x0072,0x0065,0x0064,0x0020,0x0062,0x0065,0x0066,0x006F,0x0072,0x0065,0x0020,0x0061,0x0020,0x0063,0x0061,0x0074,0x0065,0x0067,0x006F,0x0072,0x0079, + 0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x002E,0x00 } , { 0x0041,0x0020,0x0070,0x0072,0x006F,0x0070,0x0065,0x0072,0x0074,0x0079,0x0020,0x006E,0x0061,0x006D,0x0065,0x0020,0x0069,0x0073,0x0020,0x006E,0x006F,0x0074,0x0020,0x0063,0x006C,0x006F,0x0073,0x0065,0x0064,0x0020,0x0062,0x0079,0x0020,0x0027,0x007D, 0x0027,0x00 } , { 0x0055,0x006E,0x0065,0x0078,0x0070,0x0065,0x0063,0x0074,0x0065,0x0064,0x0020,0x006D,0x0065,0x0074,0x0061,0x0020,0x0063,0x0068,0x0061,0x0072,0x0061,0x0063,0x0074,0x0065,0x0072,0x00 } 1.11 +1 -1 xml-xerces/c/src/xercesc/util/MsgLoaders/MsgCatalog/XercesMessages_en_US.Msg Index: XercesMessages_en_US.Msg =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/MsgLoaders/MsgCatalog/XercesMessages_en_US.Msg,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- XercesMessages_en_US.Msg 1 Mar 2003 20:56:20 -0000 1.10 +++ XercesMessages_en_US.Msg 4 Mar 2003 16:36:16 -0000 1.11 @@ -529,7 +529,7 @@ 122 A back reference or an anchor or a lookahead or a lookbehind is expected in a conditional pattern 123 There are more than three choices in a conditional group 124 A character in U+0040-U+005f must follow \c -125 A Category character or '{' is required +125 A '{' is required before a category character. 126 A property name is not closed by '}' 127 Unexpected meta character 128 Unknown property 1.34 +2 -1 xml-xerces/c/src/xercesc/util/Platforms/Win32/Version.rc Index: Version.rc =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Platforms/Win32/Version.rc,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- Version.rc 1 Mar 2003 20:58:13 -0000 1.33 +++ Version.rc 4 Mar 2003 16:36:16 -0000 1.34 @@ -632,7 +632,7 @@ 8314 L"\x0041\x0020\x0062\x0061\x0063\x006B\x0020\x0072\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x0020\x006F\x0072\x0020\x0061\x006E\x0020\x0061\x006E\x0063\x0068\x006F\x0072\x0020\x006F\x0072\x0020\x0061\x0020\x006C\x006F\x006F\x006B\x0061\x0068\x0065\x0061\x0064\x0020\x006F\x0072\x0020\x0061\x0020\x006C\x006F\x006F\x006B\x0062\x0065\x0068\x0069\x006E\x0064\x0020\x0069\x0073\x0020\x0065\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0069\x006E\x0020\x0061\x0020\x0063\x006F\x006E\x0064\x0069\x0074\x0069\x006F\x006E\x0061\x006C\x0020\x0070\x0061\x0074\x0074\x0065\x0072\x006E\x00" 8315 L"\x0054\x0068\x0065\x0072\x0065\x0020\x0061\x0072\x0065\x0020\x006D\x006F\x0072\x0065\x0020\x0074\x0068\x0061\x006E\x0020\x0074\x0068\x0072\x0065\x0065\x0020\x0063\x0068\x006F\x0069\x0063\x0065\x0073\x0020\x0069\x006E\x0020\x0061\x0020\x0063\x006F\x006E\x0064\x0069\x0074\x0069\x006F\x006E\x0061\x006C\x0020\x0067\x0072\x006F\x0075\x0070\x00" 8316 L"\x0041\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0069\x006E\x0020\x0055\x002B\x0030\x0030\x0034\x0030\x002D\x0055\x002B\x0030\x0030\x0035\x0066\x0020\x006D\x0075\x0073\x0074\x0020\x0066\x006F\x006C\x006C\x006F\x0077\x0020\x005C\x0063\x00" - 8317 L"\x0041\x0020\x0043\x0061\x0074\x0065\x0067\x006F\x0072\x0079\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x006F\x0072\x0020\x0027\x007B\x0027\x0020\x0069\x0073\x0020\x0072\x0065\x0071\x0075\x0069\x0072\x0065\x0064\x00" + 8317 L"\x0041\x0020\x0027\x007B\x0027\x0020\x0069\x0073\x0020\x0072\x0065\x0071\x0075\x0069\x0072\x0065\x0064\x0020\x0062\x0065\x0066\x006F\x0072\x0065\x0020\x0061\x0020\x0063\x0061\x0074\x0065\x0067\x006F\x0072\x0079\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x002E\x00" 8318 L"\x0041\x0020\x0070\x0072\x006F\x0070\x0065\x0072\x0074\x0079\x0020\x006E\x0061\x006D\x0065\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0063\x006C\x006F\x0073\x0065\x0064\x0020\x0062\x0079\x0020\x0027\x007D\x0027\x00" 8319 L"\x0055\x006E\x0065\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x006D\x0065\x0074\x0061\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x00" 8320 L"\x0055\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x0070\x0072\x006F\x0070\x0065\x0072\x0074\x0079\x00" @@ -900,6 +900,7 @@ 24599 L"\x0055\x006E\x0072\x0065\x0070\x0072\x0065\x0073\x0065\x006E\x0074\x0061\x0062\x006C\x0065\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0064\x0061\x0074\x0061\x00" 24600 L"\x0055\x006E\x0072\x0065\x0063\x006F\x0067\x006E\x0069\x007A\x0065\x0064\x0020\x004E\x006F\x0064\x0065\x0020\x0054\x0079\x0070\x0065\x00" END + #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// 1.5 +15 -46 xml-xerces/c/src/xercesc/util/regx/RegxParser.cpp Index: RegxParser.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/regx/RegxParser.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- RegxParser.cpp 13 Jan 2003 19:02:23 -0000 1.4 +++ RegxParser.cpp 4 Mar 2003 16:36:17 -0000 1.5 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/03/04 16:36:17 knoaman + * RegEx: fix for character category escape + * * Revision 1.4 2003/01/13 19:02:23 knoaman * [Bug 14390] C++ Indentifier collision with Python. * @@ -1085,57 +1088,23 @@ RangeToken* RegxParser::processBacksolidus_pP(const XMLInt32 ch) { - bool positive = (ch == chLatin_p); - processNext(); - if (fState != REGX_T_CHAR) - ThrowXML(ParseException,XMLExcepts::Parser_Atom2); - RangeToken* tok = 0; + if (fState != REGX_T_CHAR || fCharData != chOpenCurly) + ThrowXML(ParseException,XMLExcepts::Parser_Atom2); - switch(fCharData) { + int nameStart = fOffset; + int nameEnd = XMLString::indexOf(fString,chCloseCurly,nameStart); - case chLatin_L: - tok = fTokenFactory->getRange(fgUniLetter, !positive); - break; - case chLatin_M: - tok = fTokenFactory->getRange(fgUniMark, !positive); - break; - case chLatin_N: - tok = fTokenFactory->getRange(fgUniNumber, !positive); - break; - case chLatin_Z: - tok = fTokenFactory->getRange(fgUniSeparator, !positive); - break; - case chLatin_C: - tok = fTokenFactory->getRange(fgUniControl, !positive); - break; - case chLatin_P: - tok = fTokenFactory->getRange(fgUniPunctuation, !positive); - break; - case chLatin_S: - tok = fTokenFactory->getRange(fgUniSymbol, !positive); - break; - case chOpenCurly: - { - int nameStart = fOffset; - int nameEnd = XMLString::indexOf(fString,chCloseCurly,nameStart); - - if (nameEnd < 0) - ThrowXML(ParseException,XMLExcepts::Parser_Atom3); - - fOffset = nameEnd + 1; - XMLCh* rangeName = new XMLCh[(nameEnd - nameStart) + 1]; - ArrayJanitor<XMLCh> janRangeName(rangeName); - XMLString::subString(rangeName, fString, nameStart, nameEnd); - tok = fTokenFactory->getRange(rangeName, !positive); - } - break; - default: - ThrowXML(ParseException,XMLExcepts::Parser_Atom2); - } + if (nameEnd < 0) + ThrowXML(ParseException,XMLExcepts::Parser_Atom3); + + fOffset = nameEnd + 1; + XMLCh* rangeName = new XMLCh[(nameEnd - nameStart) + 1]; + ArrayJanitor<XMLCh> janRangeName(rangeName); + XMLString::subString(rangeName, fString, nameStart, nameEnd); - return tok; + return fTokenFactory->getRange(rangeName, !(ch == chLatin_p)); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]