From: Tim Peters Date: Fri, 29 Sep 2000 04:03:10 +0000 (+0000) Subject: The 2.0b2 change to write .pyc files in exclusive mode (if possible) X-Git-Tag: v2.0c1~215 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=42c83afd14e1c7270124e581e42163ff5ef98ed8;p=python The 2.0b2 change to write .pyc files in exclusive mode (if possible) 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. --- diff --git a/Python/import.c b/Python/import.c index 533f85e0fd..9ecd38de97 100644 --- a/Python/import.c +++ b/Python/import.c @@ -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");