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]

Reply via email to