summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/engine/SCons/Node/FS.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index 3742f34..e601a67 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -1735,9 +1735,19 @@ class Dir(Base):
pass
else:
for entry in map(_my_normcase, entries):
- d[entry] = 1
+ d[entry] = True
self.on_disk_entries = d
- return d.has_key(_my_normcase(name))
+ if sys.platform == 'win32':
+ name = _my_normcase(name)
+ result = d.get(name)
+ if result is None:
+ # Belt-and-suspenders for Windows: check directly for
+ # 8.3 file names that don't show up in os.listdir().
+ result = os.path.exists(self.abspath + os.sep + name)
+ d[name] = result
+ return result
+ else:
+ return d.has_key(name)
memoizer_counters.append(SCons.Memoize.CountValue('srcdir_list'))