From 80be16cfce7351790942c215195d90b2dff06b7d Mon Sep 17 00:00:00 2001 From: Robert Bradshaw Date: Thu, 26 Feb 2009 14:05:53 -0800 Subject: [PATCH] Create new c file to play better with hard links (Trac #220) --- Cython/Utils.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cython/Utils.py b/Cython/Utils.py index 5da150b7..a54070b2 100644 --- a/Cython/Utils.py +++ b/Cython/Utils.py @@ -10,22 +10,22 @@ def replace_suffix(path, newsuf): return base + newsuf def open_new_file(path): - # Open and truncate existing file to - # preserve metadata on the Mac. - return open(path, "w+") + if os.path.exists(path): + # Make sure to create a new file here so we can + # safely hard link the output files. + os.unlink(path) + return open(path, "w") def castrate_file(path, st): # Remove junk contents from an output file after a - # failed compilation, but preserve metadata on Mac. + # failed compilation. # Also sets access and modification times back to # those specified by st (a stat struct). try: - f = open(path, "r+") + f = open_new_file(path) except EnvironmentError: pass else: - f.seek(0, 0) - f.truncate() f.write( "#error Do not use this file, it is the result of a failed Cython compilation.\n") f.close() -- 2.26.2