static BOOL FindGitPath() { size_t size; _tgetenv_s(&size, NULL, 0, _T("PATH")); if (!size) { return FALSE; } TCHAR *env = (TCHAR*)alloca(size * sizeof(TCHAR)); _tgetenv_s(&size, env, size, _T("PATH")); TCHAR buf[_MAX_PATH]; // search in all paths defined in PATH while ((env = nextpath(env, buf, _MAX_PATH-1)) && *buf) { TCHAR *pfin = buf + _tcslen(buf)-1; // ensure trailing slash if (*pfin != _T('/') && *pfin != _T('\\')) _tcscpy(++pfin, _T("\\")); const int len = _tcslen(buf); if ((len + 7) < _MAX_PATH) _tcscpy(pfin+1, _T("git.exe")); else break; if ( FileExists(buf) ) { // dir found pfin[1] = 0; CGit::ms_LastMsysGitDir = buf; return TRUE; } } return FALSE; }
static void set_builtins_path(void) { register unsigned char *path; ucb_builtins = 0; path = getpath(""); while (path && *path) { if (patheq(path, "/usr/ucb")) { ucb_builtins++; break; } else if (patheq(path, "/usr/bin")) break; else if (patheq(path, "/bin")) break; else if (patheq(path, "/usr/5bin")) break; path = nextpath(path); } }