diff --git a/CSTNet/CST.cs b/CSTNet/CST.cs index 36342a3..6c1ba93 100644 --- a/CSTNet/CST.cs +++ b/CSTNet/CST.cs @@ -1,6 +1,6 @@ // This project is licensed under the BSD 3-Clause license. // See the LICENSE file in the project root for more information. -#if NET8_0 +#if DEBUG using System.Runtime.InteropServices; #endif @@ -30,7 +30,7 @@ public static class CST return GetEntry(entries, key); } -#if (NET8_0 && DEBUG) +#if DEBUG [UnmanagedCallersOnly(EntryPoint = "parse")] public static IntPtr Parse(IntPtr content, IntPtr key) { @@ -39,12 +39,13 @@ public static class CST return Marshal.StringToHGlobalAnsi(GetEntry(entries, Marshal.PtrToStringAnsi(key))); } #endif + /// /// Normalizes the content by replacing various newline characters with Environment.NewLine and filters out comments. /// /// The content to normalize. /// An enumerable of normalized lines. - public static IEnumerable NormalizeEntries(string content) + static IEnumerable NormalizeEntries(string? content) { var newLines = new[] { LF, CR, CRLF, LS }; @@ -60,7 +61,7 @@ public static class CST /// The entries to search through. /// The key to search for. /// The value for the specified key, or a default string if not found. - static string GetEntry(IEnumerable entries, string key) + static string GetEntry(IEnumerable entries, string? key) { // Iterate through the entries. foreach (var entry in entries) diff --git a/CSTNet/CSTNet.csproj b/CSTNet/CSTNet.csproj index 6bd95e3..9e9ef5e 100644 --- a/CSTNet/CSTNet.csproj +++ b/CSTNet/CSTNet.csproj @@ -2,7 +2,7 @@ net8.0;net10.0 - 2.2.100-alpha + 2.1.101-alpha enable latest enable diff --git a/doc/changelog.md b/doc/changelog.md index e94d8fc..d95d609 100644 --- a/doc/changelog.md +++ b/doc/changelog.md @@ -1,59 +1,69 @@ # Change Log -## 2.1.100 +## 2.1 + +### 2.1.101 + +- Bumped target framework to .NET 10 + +### 2.1.100 - Removed `CaretSeparatedText` in favor of `CST` class - Due to technical reasons, .NET Standard Standard support was removed -### Experimental +#### Experimental - Parser function can now be consumed from non-.NET programming languages. -## 2.0.104 +## 2.0 + +### 2.0.104 - Support for .NET 8 -## 2.0.102 +### 2.0.102 - Properly commented and documented the rest of the code. -## 2.0.100 +### 2.0.100 This version supports both .NET Standard 2.1 and .NET 6 and brings with it (much needed) quality of life changes internally. Apart from that, nothing has changed to the API itself apart from much needed documentation. -### UIText class and interface +#### UIText class and interface Based on FreeSO's API, the `UIText` class allows for traversing in `//.dir` directories and searching CST files by their Id number. (e.g. \_*154*\_miscstrings.cst). By defualt, the base path is `//uitext/.dir`. You may also create your own implementation based on these APIs using the `IUIText` interface which mine also uses. For more info, see [usage.md](./usage.md). -## 1.0.300 +## 1.0 + +### 1.0.300 - Minor patch. -## 1.0.3 +### 1.0.3 - Backport switch to CSTNet namespace - Internal improvements. -## 1.0.2 +### 1.0.2 - Fixed the multiple line parsing in the v2 format. - Replaced "`[ENTRY NOT FOUND]`" message with "`***MISSING***`". -## 1.0.1 +### 1.0.1 Despite only being a patch release, this includes a major refinement to the normalizing algorithm. -### Rewrote normalizing algorithm +#### Rewrote normalizing algorithm The normalizing algorithm has been rewritten to be more efficient and hopefully more reliable. The new algorithm de-constructs each line after converting it to the system's native line ending. Then it searches for the key and returns value. The rewrite also normalizes line endings to match the system's within the entry itself before returning the final output. This should make things more stable and predictable. -### Known issues +#### Known issues - Skipping comments is still a little buggy. - Multiline parsing with the v2 format is still a little unpredictable. -## 1.0.0 +### 1.0.0 - Initial release. \ No newline at end of file