From f40fe7fb52d00a4724bdbfdc2ecf68b161cce171 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 27 Sep 2005 17:12:16 +0000 Subject: [PATCH] Fixed reading project files that start with whitespace. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@519 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Converter/PrjxToSolutionProject.cs | 16 ++++++++++++---- .../Base/Project/Src/Project/MSBuildProject.cs | 2 ++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Main/Base/Project/Src/Project/Converter/PrjxToSolutionProject.cs b/src/Main/Base/Project/Src/Project/Converter/PrjxToSolutionProject.cs index 14dfb72b7f..86fcacd360 100644 --- a/src/Main/Base/Project/Src/Project/Converter/PrjxToSolutionProject.cs +++ b/src/Main/Base/Project/Src/Project/Converter/PrjxToSolutionProject.cs @@ -191,11 +191,10 @@ namespace ICSharpCode.SharpDevelop.Project.Converter xsltDict[script] = xslt; } + StringWriter stringWriter = new StringWriter(); using (XmlTextReader reader = new XmlTextReader(inFile)) { - //Create an XmlTextWriter which outputs to the console. - using (XmlTextWriter writer = new XmlTextWriter(outFile, Encoding.UTF8)) { - writer.Formatting = Formatting.Indented; - + //Create an XmlTextWriter which outputs to memory. + using (XmlTextWriter writer = new XmlTextWriter(stringWriter)) { XsltArgumentList argList = new XsltArgumentList(); argList.AddExtensionObject("urn:Conversion", conversion); @@ -203,6 +202,15 @@ namespace ICSharpCode.SharpDevelop.Project.Converter 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) diff --git a/src/Main/Base/Project/Src/Project/MSBuildProject.cs b/src/Main/Base/Project/Src/Project/MSBuildProject.cs index 998eb564ae..88982d0a56 100644 --- a/src/Main/Base/Project/Src/Project/MSBuildProject.cs +++ b/src/Main/Base/Project/Src/Project/MSBuildProject.cs @@ -79,6 +79,7 @@ namespace ICSharpCode.SharpDevelop.Project { this.fileName = projectFileName; using (XmlTextReader reader = new XmlTextReader(projectFileName)) { + reader.WhitespaceHandling = WhitespaceHandling.Significant; reader.Read(); if (reader.Name == "VisualStudioProject") { reader.Close(); @@ -110,6 +111,7 @@ namespace ICSharpCode.SharpDevelop.Project string userSettingsFileName = projectFileName + ".user"; if (File.Exists(userSettingsFileName)) { using (XmlTextReader reader = new XmlTextReader(userSettingsFileName)) { + reader.WhitespaceHandling = WhitespaceHandling.Significant; reader.Read(); while (reader.Read()){ if (reader.IsStartElement()) {