Browse Source

cmXml.c : XML declaration nodes of the form: <?label ... ?> which do not have conventional attribute lists are now handled.

master
kevin 3 years ago
parent
commit
0243857bfe
1 changed files with 13 additions and 0 deletions
  1. 13
    0
      cmXml.c

+ 13
- 0
cmXml.c View File

@@ -312,7 +312,19 @@ cmXmlRC_t  _cmXmlParseAttr( cmXml_t* p, cmChar_t endChar,  cmXmlNode_t* np )
312 312
 
313 313
   // advance past the next '='
314 314
   if( _cmXmlAdvancePast(p,"=") == NULL )
315
+  {
316
+    if( endChar=='?')
317
+    {
318
+      if((v1 = _cmXmlAdvanceToNext(p,"?")) != NULL )
319
+      {
320
+        v0 = l1+1;
321
+        goto allocLabel;
322
+      }
323
+      
324
+    }
325
+    
315 326
     return _cmXmlSyntaxError(p);
327
+  }
316 328
   
317 329
   // advance to the next non-white character
318 330
   if((v0 = _cmXmlAdvanceToNextNonWhite(p)) == NULL )
@@ -341,6 +353,7 @@ cmXmlRC_t  _cmXmlParseAttr( cmXml_t* p, cmChar_t endChar,  cmXmlNode_t* np )
341 353
     if( _cmXmlAdvanceOne(p) == NULL )
342 354
       return _cmXmlSyntaxError(p);
343 355
 
356
+ allocLabel:
344 357
   _cmXmlAttrAlloc(p, np, l0, l1-l0, v0, v1-v0 );
345 358
   
346 359
 

Loading…
Cancel
Save