diff --git a/.gitignore b/.gitignore index 534c9c6f..f348333a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .idea .vs +.vscode bin obj publish -*.user \ No newline at end of file +*.user diff --git a/src/Views/Preference.xaml.cs b/src/Views/Preference.xaml.cs index 5cab241d..eb54cb44 100644 --- a/src/Views/Preference.xaml.cs +++ b/src/Views/Preference.xaml.cs @@ -17,12 +17,13 @@ namespace SourceGit.Views { public string CRLF { get; set; } public string Version { get; set; } + const int MAX_PATH = 260; // https://docs.microsoft.com/en-us/windows/desktop/api/shlwapi/nf-shlwapi-pathfindonpathw // https://www.pinvoke.net/default.aspx/shlwapi.PathFindOnPath [DllImport("shlwapi.dll", CharSet = CharSet.Unicode, SetLastError = false)] private static extern bool PathFindOnPath([In, Out] StringBuilder pszFile, [In] string[] ppszOtherDirs); - public bool EnableWindowsTerminal { get; set; } = PathFindOnPath(new StringBuilder("wt.exe"), null); + public bool EnableWindowsTerminal { get; set; } = PathFindOnPath(new StringBuilder("wt.exe", MAX_PATH), null); public Preference() { UpdateGitInfo(false); @@ -64,7 +65,7 @@ namespace SourceGit.Views { } private void SelectGitPath(object sender, RoutedEventArgs e) { - var sb = new StringBuilder("git.exe"); + var sb = new StringBuilder("git.exe", MAX_PATH); string dir = PathFindOnPath(sb, null) ? sb.ToString() : Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);