@@ -1081,7 +1081,6 @@ const char* TiXmlElement::Parse( const char* p, TiXmlParsingData* data, TiXmlEnc
1081
1081
1082
1082
TIXML_STRING endTag (" </" );
1083
1083
endTag += value;
1084
- endTag += " >" ;
1085
1084
1086
1085
// Check for and read attributes. Also look for an empty
1087
1086
// tag or an end tag.
@@ -1121,7 +1120,13 @@ const char* TiXmlElement::Parse( const char* p, TiXmlParsingData* data, TiXmlEnc
1121
1120
if ( StringEqual ( p, endTag.c_str (), false , encoding ) )
1122
1121
{
1123
1122
p += endTag.length ();
1124
- return p;
1123
+ p = SkipWhiteSpace ( p, encoding );
1124
+ if ( p && *p && *p == ' >' ) {
1125
+ ++p;
1126
+ return p;
1127
+ }
1128
+ if ( document ) document->SetError ( TIXML_ERROR_READING_END_TAG, p, data, encoding );
1129
+ return 0 ;
1125
1130
}
1126
1131
else
1127
1132
{
@@ -1158,7 +1163,7 @@ const char* TiXmlElement::Parse( const char* p, TiXmlParsingData* data, TiXmlEnc
1158
1163
#endif
1159
1164
if ( node )
1160
1165
{
1161
- node-> SetValue ( attrib-> Value () );
1166
+ if ( document ) document-> SetError ( TIXML_ERROR_PARSING_ELEMENT, pErr, data, encoding );
1162
1167
xr_delete (attrib);
1163
1168
return 0 ;
1164
1169
}
@@ -1345,7 +1350,8 @@ const char* TiXmlComment::Parse( const char* p, TiXmlParsingData* data, TiXmlEnc
1345
1350
1346
1351
if ( !StringEqual ( p, startTag, false , encoding ) )
1347
1352
{
1348
- document->SetError ( TIXML_ERROR_PARSING_COMMENT, p, data, encoding );
1353
+ if ( document )
1354
+ document->SetError ( TIXML_ERROR_PARSING_COMMENT, p, data, encoding );
1349
1355
return 0 ;
1350
1356
}
1351
1357
p += xr_strlen ( startTag );
@@ -1373,10 +1379,6 @@ const char* TiXmlAttribute::Parse( const char* p, TiXmlParsingData* data, TiXmlE
1373
1379
p = SkipWhiteSpace ( p, encoding );
1374
1380
if ( !p || !*p ) return 0 ;
1375
1381
1376
- // int tabsize = 4;
1377
- // if ( document )
1378
- // tabsize = document->TabSize();
1379
-
1380
1382
if ( data )
1381
1383
{
1382
1384
data->Stamp ( p, encoding );
@@ -1497,7 +1499,8 @@ const char* TiXmlText::Parse( const char* p, TiXmlParsingData* data, TiXmlEncodi
1497
1499
1498
1500
if ( !StringEqual ( p, startTag, false , encoding ) )
1499
1501
{
1500
- document->SetError ( TIXML_ERROR_PARSING_CDATA, p, data, encoding );
1502
+ if ( document )
1503
+ document->SetError ( TIXML_ERROR_PARSING_CDATA, p, data, encoding );
1501
1504
return 0 ;
1502
1505
}
1503
1506
p += xr_strlen ( startTag );
0 commit comments