Keep the font size of 8 for the explorer property page
[TortoiseGit.git] / src / Git / GitForWindows.h
blobe5c8a4b33c017bca53a70f1c65bb091e811e0956
1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2008-2016 - TortoiseGit
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 #pragma once
22 #ifndef WIN64
23 #define REG_MSYSGIT_INSTALL L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Git_is1\\InstallLocation"
24 #define REG_MSYSGIT_INSTALL_LOCAL REG_MSYSGIT_INSTALL
25 #else
26 #define REG_MSYSGIT_INSTALL_LOCAL L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Git_is1\\InstallLocation"
27 #define REG_MSYSGIT_INSTALL L"SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Git_is1\\InstallLocation"
28 #endif
30 static bool FindGitForWindows(CString& sMsysGitPath)
32 CRegString msyslocalinstalldir = CRegString(REG_MSYSGIT_INSTALL_LOCAL, L"", FALSE, HKEY_CURRENT_USER);
33 sMsysGitPath = msyslocalinstalldir;
34 sMsysGitPath.TrimRight(L'\\');
35 #ifdef _WIN64
36 if (sMsysGitPath.IsEmpty())
38 CRegString msysinstalldir = CRegString(REG_MSYSGIT_INSTALL_LOCAL, L"", FALSE, HKEY_LOCAL_MACHINE);
39 sMsysGitPath = msysinstalldir;
40 sMsysGitPath.TrimRight(L'\\');
42 #endif
43 if (sMsysGitPath.IsEmpty())
45 CRegString msysinstalldir = CRegString(REG_MSYSGIT_INSTALL, L"", FALSE, HKEY_LOCAL_MACHINE);
46 sMsysGitPath = msysinstalldir;
47 sMsysGitPath.TrimRight(L'\\');
49 if (!sMsysGitPath.IsEmpty())
51 if (PathFileExists(sMsysGitPath + L"\\bin\\git.exe"))
52 sMsysGitPath += L"\\bin";
53 else if (PathFileExists(sMsysGitPath + L"\\cmd\\git.exe")) // only needed for older Git for Windows 2.x packages
54 sMsysGitPath += L"\\cmd";
55 else
57 CTraceToOutputDebugString::Instance()(_T(__FUNCTION__) L": Git for Windows installation found, but git.exe not exists in %s\n", (LPCTSTR)sMsysGitPath);
58 sMsysGitPath.Empty();
61 CTraceToOutputDebugString::Instance()(_T(__FUNCTION__) L": Found no git.exe\n");
62 return !sMsysGitPath.IsEmpty();