Ticket #21: my.diff
| File my.diff, 1.0 kB (added by CyberShadow, 2 years ago) |
|---|
-
teqXML.d
old new 227 227 void addAttribute(T[] key, T[] value) 228 228 { 229 229 assert(status == Status.InTag); 230 writer(Const.space)(key)(Const.equals)(Const.dqm)(value)(Const.dqm); 230 writer(Const.space)(key)(Const.equals)(Const.dqm); 231 outputChecked(value); 232 writer(Const.dqm); 231 233 } 232 234 233 235 void endElement(T[] name) … … 663 665 start.moveTo(end); 664 666 end.advanceTo(quote); 665 667 T[] value = start.sliceTo(end); 668 // unescape the value 669 T[] escapedvalue = value; 670 foreach_reverse(int i,T c;value) 671 if(c=='&') 672 { 673 int ampend = Text.locate(value, ';', i); 674 if(ampend<value.length) 675 escapedvalue = value[0..i] ~ entities[value[i+1..ampend]] ~ escapedvalue[ampend+1..$]; 676 } 666 677 667 myHandler.addAttribute(nameSCpy, value);678 myHandler.addAttribute(nameSCpy, escapedvalue); 668 679 end++; 669 680 } 670 681 start.moveTo(end);
