summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-03-27 17:41:13 (GMT)
committerSteven Knight <knight@baldmt.com>2003-03-27 17:41:13 (GMT)
commitf63429682eca0f75ba22c2e01f155bb8d986bd85 (patch)
treeb504040aa79775f8aa732b82cefb5c5001ff67d3 /src/engine
parentc3cc4f04d2abb93c746ab467e07e2ca11dd0e54e (diff)
downloadSCons-f63429682eca0f75ba22c2e01f155bb8d986bd85.zip
SCons-f63429682eca0f75ba22c2e01f155bb8d986bd85.tar.gz
SCons-f63429682eca0f75ba22c2e01f155bb8d986bd85.tar.bz2
Fix a side effect of chdir to SConscript directory.
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Script/SConscript.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py
index 0fe0d64..df86853 100644
--- a/src/engine/SCons/Script/SConscript.py
+++ b/src/engine/SCons/Script/SConscript.py
@@ -265,7 +265,13 @@ def SConscript(*ls, **kw):
frame = stack.pop()
default_fs.chdir(frame.prev_dir)
if old_dir:
- default_fs.chdir(old_dir, change_os_dir=sconscript_chdir)
+ try:
+ default_fs.chdir(old_dir, change_os_dir=sconscript_chdir)
+ except OSError:
+ # There was no local directory, so chdir to the
+ # Repository directory. Like above, we do this
+ # directly.
+ os.chdir(old_dir.rdir().abspath)
results.append(frame.retval)