+}\r
+\r
+BOOL CGit::CheckMsysGitDir()\r
+{\r
+ static BOOL bInitialized = FALSE;\r
+\r
+ if (bInitialized)\r
+ {\r
+ return TRUE;\r
+ }\r
+\r
+ TCHAR *oldpath,*home;\r
+ size_t size;\r
+\r
+ // set HOME if not set already\r
+ _tgetenv_s(&size, NULL, 0, _T("HOME"));\r
+ if (!size)\r
+ {\r
+ _tdupenv_s(&home,&size,_T("USERPROFILE")); \r
+ _tputenv_s(_T("HOME"),home);\r
+ free(home);\r
+ }\r
+\r
+ //setup ssh client\r
+ CRegString sshclient=CRegString(_T("Software\\TortoiseGit\\SSH"));\r
+ CString ssh=sshclient;\r
+\r
+ if(!ssh.IsEmpty())\r
+ {\r
+ _tputenv_s(_T("GIT_SSH"),ssh);\r
+ }else\r
+ {\r
+ _tputenv_s(_T("GIT_SSH"),_T(""));\r
+ }\r
+\r
+ // search PATH if git/bin directory is alredy present\r
+ if ( FindGitPath() )\r
+ {\r
+ bInitialized = TRUE;\r
+ return TRUE;\r
+ }\r
+\r
+ // add git/bin path to PATH\r
+\r
+ CRegString msysdir=CRegString(REG_MSYSGIT_PATH,_T(""),FALSE,HKEY_LOCAL_MACHINE);\r
+ CString str=msysdir;\r
+ if(str.IsEmpty())\r
+ {\r
+ CRegString msysinstalldir=CRegString(REG_MSYSGIT_INSTALL,_T(""),FALSE,HKEY_LOCAL_MACHINE);\r
+ str=msysinstalldir;\r
+ if ( !str.IsEmpty() )\r
+ {\r
+ str += (str[str.GetLength()-1] != '\\') ? "\\bin" : "bin";\r
+ msysdir=str;\r
+ msysdir.write();\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+ }\r
+ //CGit::m_MsysGitPath=str;\r
+\r
+ //set path\r
+\r
+ _tdupenv_s(&oldpath,&size,_T("PATH")); \r
+\r
+ CString path;\r
+ path.Format(_T("%s;%s"),oldpath,str);\r
+\r
+ _tputenv_s(_T("PATH"),path);\r
+\r
+ free(oldpath);\r
+\r
+\r
+ if( !FindGitPath() )\r
+ {\r
+ return false;\r
+ }\r
+ else\r
+ {\r
+ bInitialized = TRUE;\r
+ return true;\r
+ }\r
+}\r