Browse Source

Fix bug introduced by FileUtility changes.

pull/32/merge
Daniel Grunwald 13 years ago
parent
commit
7041571019
  1. 8
      src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs
  2. 6
      src/Main/Core/Test/FileUtilityTests.cs
  3. 144
      src/Main/SharpDevelop/app.config

8
src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs

@ -32,7 +32,7 @@ namespace ICSharpCode.Core @@ -32,7 +32,7 @@ namespace ICSharpCode.Core
/// </summary>
public static partial class FileUtility
{
readonly static char[] separators = { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar, Path.VolumeSeparatorChar };
readonly static char[] separators = { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar };
static string applicationRootPath = AppDomain.CurrentDomain.BaseDirectory;
const string fileNameRegEx = @"^([a-zA-Z]:)?[^:]+$";
@ -284,9 +284,9 @@ namespace ICSharpCode.Core @@ -284,9 +284,9 @@ namespace ICSharpCode.Core
break;
}
// if (indx == 0) {
// return absPath;
// }
if (indx == 0 && (Path.IsPathRooted(baseDirectoryPath) || Path.IsPathRooted(absPath))) {
return absPath;
}
if(indx == bPath.Length && indx == aPath.Length) {
return ".";

6
src/Main/Core/Test/FileUtilityTests.cs

@ -103,6 +103,8 @@ namespace ICSharpCode.Core.Tests.AddInTreeTests.Tests @@ -103,6 +103,8 @@ namespace ICSharpCode.Core.Tests.AddInTreeTests.Tests
Assert.AreEqual(@"..\a\blub", FileUtility.GetRelativePath(@"C:\.\.\.\.\hello\", @"C:\.\blub\.\..\.\a\.\blub"));
Assert.AreEqual(@".", FileUtility.GetRelativePath(@"C:\hello", @"C:\.\hello"));
Assert.AreEqual(@".", FileUtility.GetRelativePath(@"C:\", @"C:\"));
Assert.AreEqual(@"D:\", FileUtility.GetRelativePath(@"C:\", @"D:\"));
Assert.AreEqual(@"D:\def", FileUtility.GetRelativePath(@"C:\abc", @"D:\def"));
// casing troubles
Assert.AreEqual(@"blub", FileUtility.GetRelativePath(@"C:\hello\.\..\A", @"C:\.\a\blub"));
@ -121,6 +123,10 @@ namespace ICSharpCode.Core.Tests.AddInTreeTests.Tests @@ -121,6 +123,10 @@ namespace ICSharpCode.Core.Tests.AddInTreeTests.Tests
Assert.AreEqual(@"..", FileUtility.GetRelativePath(@"a", @"."));
Assert.AreEqual(@"..\b", FileUtility.GetRelativePath(@"a", @"b"));
// Assert.AreEqual(@"..\..", FileUtility.GetRelativePath(@"a", @".."));
// Getting a path from an absolute path to a relative path isn't really possible;
// so we just keep the existing relative path (don't introduce incorrect '..\').
Assert.AreEqual(@"def", FileUtility.GetRelativePath(@"C:\abc", @"def"));
}
[Test]

144
src/Main/SharpDevelop/app.config

@ -1,144 +0,0 @@ @@ -1,144 +0,0 @@
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
<!--
WARNING!
This file is automatically generated and will be overwritten every time SharpDevelop is compiled.
Change the template file "app.template.config" instead!
-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<runtime>
<!-- This option allows running SharpDevelop from network drives -->
<loadFromRemoteSources enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<!-- The redirects for SharpDevelop allow using old AddIns in newer SharpDevelop versions -->
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.Core" publicKeyToken="f829da5c02be14ee" culture="neutral"/>
<bindingRedirect oldVersion="5.0.0.0-5.0.0.2379" newVersion="5.0.0.2379"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.Core.WinForms" publicKeyToken="f829da5c02be14ee" culture="neutral"/>
<bindingRedirect oldVersion="5.0.0.0-5.0.0.2379" newVersion="5.0.0.2379"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.Core.Presentation" publicKeyToken="f829da5c02be14ee" culture="neutral"/>
<bindingRedirect oldVersion="5.0.0.0-5.0.0.2379" newVersion="5.0.0.2379"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.SharpDevelop" publicKeyToken="f829da5c02be14ee" culture="neutral"/>
<bindingRedirect oldVersion="5.0.0.0-5.0.0.2379" newVersion="5.0.0.2379"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.SharpDevelop.Widgets" publicKeyToken="f829da5c02be14ee" culture="neutral"/>
<bindingRedirect oldVersion="5.0.0.0-5.0.0.2379" newVersion="5.0.0.2379"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.AvalonEdit" publicKeyToken="9cc39be672370310" culture="neutral"/>
<bindingRedirect oldVersion="5.0.0.0-5.0.0.2379" newVersion="5.0.0.2379"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.TreeView" publicKeyToken="f829da5c02be14ee" culture="neutral"/>
<bindingRedirect oldVersion="5.0.0.0-5.0.0.2379" newVersion="5.0.0.2379"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="FormsDesigner" publicKeyToken="f829da5c02be14ee" culture="neutral"/>
<bindingRedirect oldVersion="5.0.0.0-5.0.0.2379" newVersion="5.0.0.2379"/>
</dependentAssembly>
<!-- redirect MSBuild.Framework requests to make old task assemblies work with MSBuild 4.0 -->
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Engine" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.CompactFramework.Build.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="10.0.0.0"/>
</dependentAssembly>
<probing privatePath="Tools\NUnit"/>
</assemblyBinding>
</runtime>
<appSettings>
<!-- Use this configuration setting to store settings in a directory relative to the location
of SharpDevelop.exe instead of the user's profile directory. -->
<!-- <add key="settingsPath" value="..\Settings" /> -->
<!-- Use this setting to specify a different path for the code completion cache.
The cache contains information about referenced assemblies to speed up loading
the information on future SharpDevelop starts. -->
<!-- <add key="domPersistencePath" value="..\DomCache" /> -->
<!-- Use this setting to disable the code completion cache. Code completion will still be
available, but take longer to load and use more RAM. -->
<!-- <add key="domPersistencePath" value="none" /> -->
</appSettings>
<log4net>
<!-- Writes to the console. The console is only visible in debug builds of SharpDevelop. -->
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="FATAL" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="ERROR" />
<foreColor value="Red" />
</mapping>
<mapping>
<level value="WARN" />
<foreColor value="Yellow" />
</mapping>
<mapping>
<level value="INFO" />
<foreColor value="White" />
</mapping>
<mapping>
<level value="DEBUG" />
<foreColor value="Green" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level- %message%newline" />
</layout>
</appender>
<!-- Writes to OutputDebugString - use a tool like Sysinternals DebugView to view the log -->
<appender name="DebugAppender" type="log4net.Appender.OutputDebugStringAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%thread] %-5level- %message%newline" />
</layout>
</appender>
<!-- Allows writing to a log file -->
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="SharpDevelopLog.txt" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level- %message%newline" />
</layout>
</appender>
<!--- Keeps the last few log entries and appends them to bug reports when an exception occurs -->
<appender name="Recorder" type="ICSharpCode.SharpDevelop.Logging.LogMessageRecorder, SharpDevelop">
<bufferSize value="25" />
</appender>
<root>
<level value="DEBUG" />
<!-- Here you can configure which log appenders should be used -->
<appender-ref ref="ColoredConsoleAppender" />
<appender-ref ref="Recorder" />
</root>
</log4net>
</configuration>
Loading…
Cancel
Save