diff --git a/.gitignore b/.gitignore index c9eb026..26fb2a6 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,10 @@ .vscode/ scripts/ +# Local test project (stays out of the published plugin repo; +# pure-function safety net for refactor cycles) +HellionChat.Tests/ + # Packaging pack/ diff --git a/HellionChat.sln b/HellionChat.sln index fa2740a..d0908f0 100755 --- a/HellionChat.sln +++ b/HellionChat.sln @@ -1,16 +1,31 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HellionChat", "HellionChat\HellionChat.csproj", "{739F75E6-B65F-41EF-9D90-F7BC519E4875}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Debug|Any CPU.Build.0 = Debug|Any CPU + {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Debug|x64.ActiveCfg = Debug|Any CPU + {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Debug|x64.Build.0 = Debug|Any CPU + {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Debug|x86.ActiveCfg = Debug|Any CPU + {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Debug|x86.Build.0 = Debug|Any CPU {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Release|Any CPU.ActiveCfg = Release|Any CPU {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Release|Any CPU.Build.0 = Release|Any CPU + {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Release|x64.ActiveCfg = Release|Any CPU + {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Release|x64.Build.0 = Release|Any CPU + {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Release|x86.ActiveCfg = Release|Any CPU + {739F75E6-B65F-41EF-9D90-F7BC519E4875}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection EndGlobal diff --git a/HellionChat/HellionChat.csproj b/HellionChat/HellionChat.csproj index 9ba2e94..9e045f3 100644 --- a/HellionChat/HellionChat.csproj +++ b/HellionChat/HellionChat.csproj @@ -36,6 +36,13 @@ + + + + + True diff --git a/HellionChat/Util/StringUtil.cs b/HellionChat/Util/StringUtil.cs index e812e13..fdddc0a 100755 --- a/HellionChat/Util/StringUtil.cs +++ b/HellionChat/Util/StringUtil.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Text; namespace HellionChat.Util; @@ -24,7 +25,8 @@ internal static class StringUtil var place = Convert.ToInt32(Math.Floor(Math.Log(bytes, 1024))); var num = Math.Round(bytes / Math.Pow(1024, place), 1); // "0.#" keeps the rounded fractional digit (1.5 GB stays "1.5GB"); "N0" - // would truncate it back to integer. - return (Math.Sign(byteCount) * num).ToString("0.#") + suf[place]; + // would truncate it back to integer. InvariantCulture pins the decimal + // separator to '.' so a German locale doesn't render "1,5GB". + return (Math.Sign(byteCount) * num).ToString("0.#", CultureInfo.InvariantCulture) + suf[place]; } }