Browse Source

Fixed reading project files that start with whitespace.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@519 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
f40fe7fb52
  1. 16
      src/Main/Base/Project/Src/Project/Converter/PrjxToSolutionProject.cs
  2. 2
      src/Main/Base/Project/Src/Project/MSBuildProject.cs

16
src/Main/Base/Project/Src/Project/Converter/PrjxToSolutionProject.cs

@ -191,11 +191,10 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
xsltDict[script] = xslt; xsltDict[script] = xslt;
} }
StringWriter stringWriter = new StringWriter();
using (XmlTextReader reader = new XmlTextReader(inFile)) { using (XmlTextReader reader = new XmlTextReader(inFile)) {
//Create an XmlTextWriter which outputs to the console. //Create an XmlTextWriter which outputs to memory.
using (XmlTextWriter writer = new XmlTextWriter(outFile, Encoding.UTF8)) { using (XmlTextWriter writer = new XmlTextWriter(stringWriter)) {
writer.Formatting = Formatting.Indented;
XsltArgumentList argList = new XsltArgumentList(); XsltArgumentList argList = new XsltArgumentList();
argList.AddExtensionObject("urn:Conversion", conversion); argList.AddExtensionObject("urn:Conversion", conversion);
@ -203,6 +202,15 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
xslt.Transform(reader, argList, writer, null); xslt.Transform(reader, argList, writer, null);
} }
} }
// We have to use the stringWriter for writing because xslt.Transform doesn't use
// writer.Formatting. Also, we need to remove some unwanted whitespace from the beginning.
using (XmlTextWriter writer = new XmlTextWriter(outFile, Encoding.UTF8)) {
writer.Formatting = Formatting.Indented;
using (XmlTextReader reader = new XmlTextReader(new StringReader(stringWriter.ToString()))) {
reader.WhitespaceHandling = WhitespaceHandling.Significant;
writer.WriteNode(reader, false);
}
}
} }
public static IProject ConvertOldProject(string fileName, Conversion conversion) public static IProject ConvertOldProject(string fileName, Conversion conversion)

2
src/Main/Base/Project/Src/Project/MSBuildProject.cs

@ -79,6 +79,7 @@ namespace ICSharpCode.SharpDevelop.Project
{ {
this.fileName = projectFileName; this.fileName = projectFileName;
using (XmlTextReader reader = new XmlTextReader(projectFileName)) { using (XmlTextReader reader = new XmlTextReader(projectFileName)) {
reader.WhitespaceHandling = WhitespaceHandling.Significant;
reader.Read(); reader.Read();
if (reader.Name == "VisualStudioProject") { if (reader.Name == "VisualStudioProject") {
reader.Close(); reader.Close();
@ -110,6 +111,7 @@ namespace ICSharpCode.SharpDevelop.Project
string userSettingsFileName = projectFileName + ".user"; string userSettingsFileName = projectFileName + ".user";
if (File.Exists(userSettingsFileName)) { if (File.Exists(userSettingsFileName)) {
using (XmlTextReader reader = new XmlTextReader(userSettingsFileName)) { using (XmlTextReader reader = new XmlTextReader(userSettingsFileName)) {
reader.WhitespaceHandling = WhitespaceHandling.Significant;
reader.Read(); reader.Read();
while (reader.Read()){ while (reader.Read()){
if (reader.IsStartElement()) { if (reader.IsStartElement()) {

Loading…
Cancel
Save