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]