amassari    2004/12/23 06:21:27

  Modified:    c/src/xercesc/internal IGXMLScanner.cpp SGXMLScanner.cpp
                        XSAXMLScanner.cpp
  Log:
  Don't use the content of fPrefixBuf inside the end tag handler, as it is 
modified by the nearest start tag: instead retrieve the current prefix from the 
end tag string [jira#1308]
  
  Revision  Changes    Path
  1.82      +6 -1      xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
  
  Index: IGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
  retrieving revision 1.81
  retrieving revision 1.82
  diff -u -r1.81 -r1.82
  --- IGXMLScanner.cpp  7 Dec 2004 19:45:43 -0000       1.81
  +++ IGXMLScanner.cpp  23 Dec 2004 14:21:27 -0000      1.82
  @@ -1157,6 +1157,11 @@
       // If we have a doc handler, tell it about the end tag
       if (fDocHandler)
       {
  +        int prefixColonPos = XMLString::indexOf(elemName, chColon);
  +        if (prefixColonPos == -1)
  +            fPrefixBuf.reset();
  +        else
  +            fPrefixBuf.set(elemName, prefixColonPos);
           fDocHandler->endElement
           (
               *topElem->fThisElement
  
  
  
  1.103     +6 -1      xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp
  
  Index: SGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v
  retrieving revision 1.102
  retrieving revision 1.103
  diff -u -r1.102 -r1.103
  --- SGXMLScanner.cpp  9 Dec 2004 20:31:39 -0000       1.102
  +++ SGXMLScanner.cpp  23 Dec 2004 14:21:27 -0000      1.103
  @@ -1013,6 +1013,11 @@
       // If we have a doc handler, tell it about the end tag
       if (fDocHandler)
       {
  +        int prefixColonPos = XMLString::indexOf(elemName, chColon);
  +        if (prefixColonPos == -1)
  +            fPrefixBuf.reset();
  +        else
  +            fPrefixBuf.set(elemName, prefixColonPos);
           fDocHandler->endElement
           (
               *topElem->fThisElement
  
  
  
  1.3       +6 -1      xml-xerces/c/src/xercesc/internal/XSAXMLScanner.cpp
  
  Index: XSAXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XSAXMLScanner.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XSAXMLScanner.cpp 29 Sep 2004 23:25:42 -0000      1.2
  +++ XSAXMLScanner.cpp 23 Dec 2004 14:21:27 -0000      1.3
  @@ -158,6 +158,11 @@
       // If we have a doc handler, tell it about the end tag
       if (fDocHandler)
       {
  +        int prefixColonPos = XMLString::indexOf(elemName, chColon);
  +        if (prefixColonPos == -1)
  +            fPrefixBuf.reset();
  +        else
  +            fPrefixBuf.set(elemName, prefixColonPos);
           fDocHandler->endElement
           (
               *topElem->fThisElement, uriId, isRoot, fPrefixBuf.getRawBuffer()
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to