diff --git a/README.md b/README.md index 4decb85..0855e85 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Types ----- The library offers several struct (i.e. low to zero memory overhead) types wrapping path strings. The types are designed to not involve any disk IO operations by default, and thus provide excellent performance during common operations. This comes with a drawback, though: **path comparison is only performed as string comparison so far**, which means that the library doesn't provide any means to compare paths in a case-insensitive way. -This is a subject to change in future releases, where we will provide more control over this: better platform-wide defaults (such as case-insensitive comparison on Windows and macOS), and options to enable more IO-intensive comparison (to check sensitivity settings of particular file path components during comparison). +This is a subject to change in future releases, where we will provide more control over this: better platform-wide defaults (such as case-insensitive comparison on Windows and macOS), and options to enable more IO-intensive comparison (to check sensitivity settings of particular file path components during comparison). See [issue #20][issue.20] on the current progress on this change. The paths are stored in the **normalized form**. @@ -58,6 +58,7 @@ You are welcome to explicitly state your copyright in the file's header as descr [docs.contributing]: CONTRIBUTING.md [docs.maintaining]: MAINTAINING.md [file-system-globbing.nuget]: https://www.nuget.org/packages/Microsoft.Extensions.FileSystemGlobbing +[issue.20]: https://github.com/ForNeVeR/TruePath/issues/20 [nuget.badge]: https://img.shields.io/nuget/v/TruePath [nuget.page]: https://www.nuget.org/packages/TruePath [reuse.spec]: https://reuse.software/spec/ diff --git a/TruePath.Tests/PathStringsTests.cs b/TruePath.Tests/PathStringsTests.cs index 98d7e35..f2d542b 100644 --- a/TruePath.Tests/PathStringsTests.cs +++ b/TruePath.Tests/PathStringsTests.cs @@ -56,7 +56,7 @@ public void DotFoldersAreTraversed(string input, string expected) Assert.Equal(NormalizeSeparators(expected), PathStrings.Normalize(input)); } - [Theory(Skip = "TODO[36]: Make it work properly")] + [Theory(Skip = "TODO[#16]: Make it work properly")] [InlineData("C:.", "C:")] [InlineData("C:./foo", "C:foo")] [InlineData("C:..", "C:..")] diff --git a/TruePath/AbsolutePath.cs b/TruePath/AbsolutePath.cs index e6ed292..e06508a 100644 --- a/TruePath/AbsolutePath.cs +++ b/TruePath/AbsolutePath.cs @@ -24,7 +24,7 @@ public AbsolutePath(string value) /// The parent of this path. Will be null for a rooted absolute path. public AbsolutePath? Parent => _underlying.Parent is { } path ? new(path.Value) : null; - // TODO[#36]: Optimize, the strict check here is not necessary. + // TODO[#17]: Optimize, the strict check here is not necessary. /// The full name of the last component of this path. public string FileName => _underlying.FileName; diff --git a/TruePath/LocalPath.cs b/TruePath/LocalPath.cs index 438d9c6..4477a81 100644 --- a/TruePath/LocalPath.cs +++ b/TruePath/LocalPath.cs @@ -30,7 +30,6 @@ public readonly struct LocalPath(string value) /// The parent of this path. Will be null for a rooted absolute path, or relative path pointing to the /// current directory. /// - // TODO: Add tests for parent of `.` and `""` and `..`: what should they be actually? public LocalPath? Parent => Path.GetDirectoryName(Value) is { } parent ? new(parent) : null; /// The full name of the last component of this path. diff --git a/TruePath/PathStrings.cs b/TruePath/PathStrings.cs index 16297f4..3ce401b 100644 --- a/TruePath/PathStrings.cs +++ b/TruePath/PathStrings.cs @@ -38,7 +38,7 @@ public static class PathStrings /// public static string Normalize(string path) { - // TODO[36]: Optimize this. It is possible to do with less allocations. + // TODO[#19]: Optimize this. It is possible to do with less allocations. var segments = new List<(int Start, int End)>(); int? currentSegmentStart = 0;