From 860f52153b1056f0101ff982570a6845f67644e0 Mon Sep 17 00:00:00 2001 From: Gadfly Date: Mon, 10 Mar 2025 20:05:37 +0800 Subject: [PATCH] fix: Force English locale in branch query command. (#1078) --- src/Commands/Command.cs | 8 ++++++-- src/Commands/ExecuteCustomAction.cs | 10 ++++++++-- src/Commands/QueryBranches.cs | 1 + 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/Commands/Command.cs b/src/Commands/Command.cs index 3f61de17..f0896526 100644 --- a/src/Commands/Command.cs +++ b/src/Commands/Command.cs @@ -37,6 +37,7 @@ namespace SourceGit.Commands public string Args { get; set; } = string.Empty; public bool RaiseError { get; set; } = true; public bool TraitErrorAsOutput { get; set; } = false; + protected bool ForceEnglishLocale { get; set; } = false; public bool Exec() { @@ -193,8 +194,11 @@ namespace SourceGit.Commands start.Environment.Add("GIT_SSH_COMMAND", $"ssh -i '{SSHKey}'"); // Force using en_US.UTF-8 locale to avoid GCM crash - if (OperatingSystem.IsLinux()) - start.Environment.Add("LANG", "en_US.UTF-8"); + if (ForceEnglishLocale || OperatingSystem.IsLinux()) + { + start.Environment.Add("LANG", "C"); + start.Environment.Add("LC_ALL", "C"); + } // Fix macOS `PATH` env if (OperatingSystem.IsMacOS() && !string.IsNullOrEmpty(Native.OS.CustomPathEnv)) diff --git a/src/Commands/ExecuteCustomAction.cs b/src/Commands/ExecuteCustomAction.cs index 7775da34..e343700f 100644 --- a/src/Commands/ExecuteCustomAction.cs +++ b/src/Commands/ExecuteCustomAction.cs @@ -19,7 +19,10 @@ namespace SourceGit.Commands // Force using en_US.UTF-8 locale to avoid GCM crash if (OperatingSystem.IsLinux()) - start.Environment.Add("LANG", "en_US.UTF-8"); + { + start.Environment.Add("LANG", "C"); + start.Environment.Add("LC_ALL", "C"); + } // Fix macOS `PATH` env if (OperatingSystem.IsMacOS() && !string.IsNullOrEmpty(Native.OS.CustomPathEnv)) @@ -50,7 +53,10 @@ namespace SourceGit.Commands // Force using en_US.UTF-8 locale to avoid GCM crash if (OperatingSystem.IsLinux()) - start.Environment.Add("LANG", "en_US.UTF-8"); + { + start.Environment.Add("LANG", "C"); + start.Environment.Add("LC_ALL", "C"); + } // Fix macOS `PATH` env if (OperatingSystem.IsMacOS() && !string.IsNullOrEmpty(Native.OS.CustomPathEnv)) diff --git a/src/Commands/QueryBranches.cs b/src/Commands/QueryBranches.cs index 44438cef..effd25b0 100644 --- a/src/Commands/QueryBranches.cs +++ b/src/Commands/QueryBranches.cs @@ -14,6 +14,7 @@ namespace SourceGit.Commands { WorkingDirectory = repo; Context = repo; + ForceEnglishLocale = true; Args = "branch -l --all -v --format=\"%(refname)%00%(objectname)%00%(HEAD)%00%(upstream)%00%(upstream:trackshort)\""; }