]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Factorize win32getshell() out of win32execute()
authorRamiro Polla <ramiro.polla@gmail.com>
Wed, 22 Sep 2010 01:09:14 +0000 (22:09 -0300)
committerJoel Rosdahl <joel@rosdahl.net>
Sun, 26 Sep 2010 20:10:58 +0000 (22:10 +0200)
ccache.h
execute.c

index 38126ed9df6a9133f5acd1bab0381751b386e62e..4a9cc9e9ccab6acd0079ff326feae9f35e7807f2 100644 (file)
--- a/ccache.h
+++ b/ccache.h
@@ -239,6 +239,7 @@ typedef int (*COMPAR_FN_T)(const void *, const void *);
 
 #ifdef _WIN32
 char *win32argvtos(char *prefix, char **argv);
+char *win32getshell(char *path);
 int win32execute(char *path, char **argv, int doreturn,
                  const char *path_stdout, const char *path_stderr);
 #    ifndef _WIN32_WINNT
index 73fdde260cf3634e7c88f2811b053d47793799c9..6cd0f5682c95b4d5969be3c4a57284fadf62363e 100644 (file)
--- a/execute.c
+++ b/execute.c
@@ -87,22 +87,13 @@ win32argvtos(char *prefix, char **argv)
        return str;
 }
 
-int
-win32execute(char *path, char **argv, int doreturn,
-             const char *path_stdout, const char *path_stderr)
+char *
+win32getshell(char *path)
 {
-       PROCESS_INFORMATION pi;
-       STARTUPINFO si;
-       BOOL ret;
-       DWORD exitcode;
        char *path_env;
        char *sh = NULL;
-       char *args;
        const char *ext;
 
-       memset(&pi, 0x00, sizeof(pi));
-       memset(&si, 0x00, sizeof(si));
-
        ext = get_extension(path);
        if (ext && strcasecmp(ext, ".sh") == 0 && (path_env = getenv("PATH")))
                sh = find_executable_in_path("sh.exe", NULL, path_env);
@@ -119,6 +110,25 @@ win32execute(char *path, char **argv, int doreturn,
                        fclose(fp);
                }
        }
+
+       return sh;
+}
+
+int
+win32execute(char *path, char **argv, int doreturn,
+             const char *path_stdout, const char *path_stderr)
+{
+       PROCESS_INFORMATION pi;
+       STARTUPINFO si;
+       BOOL ret;
+       DWORD exitcode;
+       char *sh = NULL;
+       char *args;
+
+       memset(&pi, 0x00, sizeof(pi));
+       memset(&si, 0x00, sizeof(si));
+
+       sh = win32getshell(path);
        if (sh)
                path = sh;