From: <ou...@us...> - 2011-08-24 06:49:57
|
Revision: 3589 http://jcl.svn.sourceforge.net/jcl/?rev=3589&view=rev Author: outchy Date: 2011-08-24 06:49:51 +0000 (Wed, 24 Aug 2011) Log Message: ----------- Bug from Olivier in the newsgroups: all IDE settings are destroyed by revision 3580. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=3580&view=rev Modified Paths: -------------- trunk/jcl/source/windows/JclMsBuild.pas Modified: trunk/jcl/source/windows/JclMsBuild.pas =================================================================== --- trunk/jcl/source/windows/JclMsBuild.pas 2011-08-19 14:07:02 UTC (rev 3588) +++ trunk/jcl/source/windows/JclMsBuild.pas 2011-08-24 06:49:51 UTC (rev 3589) @@ -23,7 +23,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -332,8 +332,10 @@ procedure InitEnvironmentProperties; procedure InitReservedProperties; - // do not encode ' + // encode just <, > and & procedure XMLEncodeValue(Sender: TObject; var Value: string); + // decode all entities + procedure XMLDecodeValue(Sender: TObject; var Value: string); property CurrentFileName: TFileName read FCurrentFileName; property ProjectFileName: TFileName read FProjectFileName; @@ -824,6 +826,7 @@ try AXml.Options := AXml.Options - [sxoAutoEncodeValue,sxoAutoEncodeEntity]; AXml.OnEncodeValue := XMLEncodeValue; + AXml.OnDecodeValue := XMLDecodeValue; AXml.LoadFromFile(AFileName, Encoding, CodePage); except AXml.Free; @@ -1791,6 +1794,7 @@ SubXml := TJclSimpleXML.Create; SubXml.Options := SubXml.Options - [sxoAutoEncodeValue,sxoAutoEncodeEntity]; SubXml.OnEncodeValue := XMLEncodeValue; + SubXml.OnDecodeValue := XMLDecodeValue; SubXml.LoadFromFile(Project); SubOwnsXml := True; end; @@ -2604,10 +2608,16 @@ Xml.SaveToFile(ProjectFileName); end; +procedure TJclMsBuildParser.XMLDecodeValue(Sender: TObject; var Value: string); +begin + Value := XMLDecode(Value); +end; + procedure TJclMsBuildParser.XMLEncodeValue(Sender: TObject; var Value: string); begin - Value := SimpleXMLEncode(Value); - StrReplace(Value, ''', NativeSingleQuote, [rfReplaceAll]); + StrReplace(Value, '&', '&', [rfReplaceAll]); + StrReplace(Value, '<', '<', [rfReplaceAll]); + StrReplace(Value, '>', '>', [rfReplaceAll]); end; {$IFDEF UNITVERSIONING} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |