]> granicus.if.org Git - python/commitdiff
Close stdout and stderr, which are redirected into a temp file, before
authorThomas Heller <theller@ctypes.org>
Wed, 22 Dec 2004 17:24:14 +0000 (17:24 +0000)
committerThomas Heller <theller@ctypes.org>
Wed, 22 Dec 2004 17:24:14 +0000 (17:24 +0000)
trying to remove this file - the file was never removed before.

Fixes [ 1067732 ] wininst --install-script leaves residual files

Already backported.

PC/bdist_wininst/install.c

index be4be3790585e5fcfa77fdf4035d0f92a329949d..e6e673144d171cc6eb102e15dc7a8d6778646056 100644 (file)
@@ -611,8 +611,8 @@ PyMethodDef meth[] = {
 static HINSTANCE LoadPythonDll(char *fname)
 {
        char fullpath[_MAX_PATH];
-       char subkey_name[80];
        LONG size = sizeof(fullpath);
+       char subkey_name[80];
        HINSTANCE h = LoadLibrary(fname);
        if (h)
                return h;
@@ -760,7 +760,9 @@ static int run_simple_script(char *script)
        rc = do_run_simple_script(hPython, script);
        FreeLibrary(hPython);
        fflush(stderr);
+       fclose(stderr);
        fflush(stdout);
+       fclose(stdout);
        /* We only care about the output when we fail.  If the script works
           OK, then we discard it
        */
@@ -1951,7 +1953,9 @@ FinishedDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
                                fprintf(stderr, "*** Could not load Python ***");
                        }
                        fflush(stderr);
+                       fclose(stderr);
                        fflush(stdout);
+                       fclose(stdout);
            
                        fp = fopen(tempname, "rb");
                        n = fread(buffer, 1, sizeof(buffer), fp);
@@ -2299,7 +2303,9 @@ BOOL Run_RemoveScript(char *line)
                }
        
                fflush(stderr);
+               fclose(stderr);
                fflush(stdout);
+               fclose(stdout);
        
                fp = fopen(tempname, "rb");
                n = fread(buffer, 1, sizeof(buffer), fp);