|
@@ -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
|
|