]> granicus.if.org Git - python/commitdiff
The 2.0b2 change to write .pyc files in exclusive mode (if possible)
authorTim Peters <tim.peters@gmail.com>
Fri, 29 Sep 2000 04:03:10 +0000 (04:03 +0000)
committerTim Peters <tim.peters@gmail.com>
Fri, 29 Sep 2000 04:03:10 +0000 (04:03 +0000)
unintentionally caused them to get written in text mode under Windows.
As a result, when .pyc files were later read-- in binary mode --the
magic number was always wrong (note that .pyc magic numbers deliberately
include \r and \n characters, so this was "good" breakage, 100% across
all .pyc files, not random corruption in a subset).  Fixed that.

Python/import.c

index 533f85e0fd7be054ad4189505eead89daed26c6e..9ecd38de978dbec227daa9e590b772a267f70dfc 100644 (file)
@@ -646,7 +646,12 @@ open_exclusive(char *filename)
        */
        int fd;
        (void) unlink(filename);
-       fd = open(filename, O_EXCL|O_CREAT|O_WRONLY|O_TRUNC, 0666);
+       fd = open(filename, O_EXCL|O_CREAT|O_WRONLY|O_TRUNC
+#ifdef O_BINARY
+                               |O_BINARY   /* necessary for Windows */
+#endif
+               
+                       , 0666);
        if (fd < 0)
                return NULL;
        return fdopen(fd, "wb");