summaryrefslogtreecommitdiff
path: root/src/xmlreader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmlreader.cpp')
-rw-r--r--src/xmlreader.cpp43
1 files changed, 41 insertions, 2 deletions
diff --git a/src/xmlreader.cpp b/src/xmlreader.cpp
index 76c6258..70fd1d7 100644
--- a/src/xmlreader.cpp
+++ b/src/xmlreader.cpp
@@ -332,8 +332,7 @@ bool XmlReader::content()
332 } 332 }
333 setContent( fbContent.getData() ); 333 setContent( fbContent.getData() );
334 } 334 }
335 usedChar(); 335 usedChar( 2 );
336 usedChar();
337 gcall( ws() ); 336 gcall( ws() );
338 FlexBuf fbName; 337 FlexBuf fbName;
339 while( true ) 338 while( true )
@@ -368,6 +367,46 @@ bool XmlReader::content()
368 throw XmlException("Malformed close tag."); 367 throw XmlException("Malformed close tag.");
369 } 368 }
370 } 369 }
370 else if( getChar(1) == '!' )
371 {
372 // We know it's a comment, let's see if it's proper
373 if( getChar(2) != '-' ||
374 getChar(3) != '-' )
375 {
376 // Not a valid XML comment
377 throw XmlException("Malformed comment start tag found.");
378 }
379
380 usedChar( 4 );
381
382 // Now burn text until we find the close tag
383 for(;;)
384 {
385 if( getChar() == '-' )
386 {
387 if( getChar( 1 ) == '-' )
388 {
389 // The next one has to be a '>' now
390 if( getChar( 2 ) != '>' )
391 {
392 throw XmlException("Malformed comment close tag found. You cannot have a '--' that isn't followed by a '>' in a comment.");
393 }
394 usedChar( 3 );
395 break;
396 }
397 else
398 {
399 // Found a dash followed by a non dash, that's ok...
400 usedChar( 2 );
401 }
402 }
403 else
404 {
405 // Burn comment chars
406 usedChar();
407 }
408 }
409 }
371 else 410 else
372 { 411 {
373 if( fbContent.getLength() > 0 ) 412 if( fbContent.getLength() > 0 )