Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 25016 invoked from network); 13 Oct 2004 04:52:00 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 13 Oct 2004 04:52:00 -0000 Received: (qmail 70725 invoked by uid 500); 13 Oct 2004 04:51:56 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 70684 invoked by uid 500); 13 Oct 2004 04:51:56 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 70669 invoked by uid 99); 13 Oct 2004 04:51:56 -0000 X-ASF-Spam-Status: No, hits=-10.0 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Tue, 12 Oct 2004 21:51:56 -0700 Received: (qmail 24961 invoked by uid 1852); 13 Oct 2004 04:51:54 -0000 Date: 13 Oct 2004 04:51:54 -0000 Message-ID: <20041013045154.24960.qmail@minotaur.apache.org> From: samisa@apache.org To: ws-axis-cvs@apache.org Subject: cvs commit: ws-axis/c/src/xml/xerces XercesHandler.cpp X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N samisa 2004/10/12 21:51:54 Modified: c/src/xml/xerces XercesHandler.cpp Log: Included logic to handle '>' and '<' in strings. Fix for Jira AXISCPP-184 Revision Changes Path 1.7 +21 -1 ws-axis/c/src/xml/xerces/XercesHandler.cpp Index: XercesHandler.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/xml/xerces/XercesHandler.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- XercesHandler.cpp 28 Jun 2004 07:26:40 -0000 1.6 +++ XercesHandler.cpp 13 Oct 2004 04:51:54 -0000 1.7 @@ -100,9 +100,29 @@ void XercesHandler::characters(const XMLCh* const chars, const unsigned int length) { + const char* cp_PreviousNameOrValue = NULL; + if( m_pCurrElement && m_pCurrElement->m_pchNameOrValue) + { + if (m_pCurrElement->m_type == CHARACTER_ELEMENT) + cp_PreviousNameOrValue = m_pCurrElement->m_pchNameOrValue; + } m_pCurrElement = m_pNextElement; m_pNextElement->m_type = CHARACTER_ELEMENT; - m_pNextElement->m_pchNameOrValue = XMLString::transcode(chars); + + if (cp_PreviousNameOrValue) + { + char* cp_CurrentNameOrValue = XMLString::transcode(chars); + char* cp_FullNameOrValue = (char*) malloc(strlen(cp_PreviousNameOrValue) + strlen(cp_CurrentNameOrValue) + 1); + cp_FullNameOrValue[0] = '\0'; + strcat(cp_FullNameOrValue, cp_PreviousNameOrValue); + strcat(cp_FullNameOrValue, cp_CurrentNameOrValue); + m_pNextElement->m_pchNameOrValue = (const char*)cp_FullNameOrValue; + free(const_cast (cp_PreviousNameOrValue)); + free(cp_CurrentNameOrValue); + } + else + m_pNextElement->m_pchNameOrValue = XMLString::transcode(chars); + } void XercesHandler::ignorableWhitespace(const XMLCh* const chars, const unsigned int length)