From 6279185536b98e816d87b78aabd2c1ea4883a1c7 Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Wed, 15 Sep 2004 01:27:00 +0000 Subject: Fix Delete action for non-existent files and must_exist=1 under Python 2.3. (Kevin Quick) --- src/CHANGES.txt | 9 +++++++++ src/engine/SCons/Defaults.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/CHANGES.txt b/src/CHANGES.txt index ec8ac36..feb988a 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -15,6 +15,10 @@ RELEASE 0.97 - XXX - Allow Help() to be called multiple times, appending to the help text each call. + From Steve Christensen: + + - Handle exceptions from Python functions a build actions. + From Steven Knight: - When compiling with Microsoft Visual Studio, don't include the ATL and @@ -54,6 +58,11 @@ RELEASE 0.97 - XXX - Provide more info in the error message when a user tries to build a target multiple ways. + - Fix Delete() when a file doesn't exist and must_exist=1. (We were + unintentionally dependent on a bug in versions of the Python shutil.py + module prior to Python 2.3, which would generate an exception for + a nonexistent file even when ignore_errors was set.) + From Christoph Wiedemann: - Add an Environment.SetDefault() method that only sets values if diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py index a99850b..6ebc6eb 100644 --- a/src/engine/SCons/Defaults.py +++ b/src/engine/SCons/Defaults.py @@ -184,7 +184,7 @@ Copy = ActionFactory(copy_func, def delete_func(entry, must_exist=0): if not must_exist and not os.path.exists(entry): return None - if os.path.isfile(entry): + if not os.path.exists(entry) or os.path.isfile(entry): return os.unlink(entry) else: return shutil.rmtree(entry, 1) -- cgit v0.12