\r
LPTSTR pEnv = l_processEnv;\r
DWORD dwFlags = pEnv ? CREATE_UNICODE_ENVIRONMENT : 0;\r
- dwFlags |= DETACHED_PROCESS;\r
+ \r
+ //DETACHED_PROCESS make ssh recognize that it has no console to launch askpass to input password. \r
+ dwFlags |= DETACHED_PROCESS; \r
\r
if(!CreateProcess(NULL,(LPWSTR)cmd.GetString(), NULL,NULL,TRUE,dwFlags,pEnv,(LPWSTR)m_CurrentDir.GetString(),&si,&pi))\r
{\r
}\r
}\r
\r
- _tputenv_s(_T("DISPLAY"),_T(":9999"));\r
- _tputenv_s(_T("SSH_ASKPASS"),_T("/C/Program Files/TortoiseGit/bin/TortoiseProc.exe"));\r
+ {\r
+ TCHAR sAskPass[MAX_PATH];\r
+ GetModuleFileName(NULL, sAskPass, _countof(sAskPass));\r
+ LPTSTR ptr = _tcsrchr(sAskPass, _T('\\'));\r
+ if (ptr) \r
+ {\r
+ _tcscpy(ptr + 1, _T("SshAskPass.exe"));\r
+ _tputenv_s(_T("DISPLAY"),_T(":9999"));\r
+ _tputenv_s(_T("SSH_ASKPASS"),sAskPass);\r
+ }\r
+ }\r
// search PATH if git/bin directory is alredy present\r
if ( FindGitPath() )\r
{\r