[ expat-Bugs-481400 ] xmlparser needs parentheses

noreply@sourceforge.net noreply@sourceforge.net
Fri Nov 16 05:21:03 2001


Bugs item #481400, was opened at 2001-11-13 10:49
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=110127&aid=481400&group_id=10127

Category: None
Group: None
Status: Open
Resolution: None
>Priority: 7
Submitted By: Marc Rubin (jayseye)
Assigned to: Nobody/Anonymous (nobody)
Summary: xmlparser needs parentheses

Initial Comment:
Two additional sets of parenteses are needed, in 
xmlparse.c line 3483, under appendAttributeValue(),
as follows: 
 
 if ((!isCdata && (poolLength(pool) == 0) || 
(poolLastChar(pool) == 0x20))) 
 
The intent of the existing code is to suppress 
multiple spaces, but this gets short-circuited as 
currently written: 
 
 if (!isCdata && (poolLength(pool) == 0 || poolLastChar
(pool) == 0x20)) 
 
The second test is skipped due to the expansion of the 
poolLength() and poolLastChar() preprocessor #defines. 
  
The symptom is that multiple spaces are incorrectly 
preserved in attribute values. They are suppressed, as 
intended, by adding the parenteses. 
 
The same fix should be applied to xmlparse.cpp line 
2688. 

----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=110127&aid=481400&group_id=10127