diff options
author | Steven Knight <knight@baldmt.com> | 2009-01-27 16:21:05 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2009-01-27 16:21:05 (GMT) |
commit | dea2893b586b5d5ca36b9cef5c892a3ed79d7975 (patch) | |
tree | ff48f046388ed50bdf0b730e03b2c52ec60d856a | |
parent | e277a83e90407e179852bc84f9ca3a5dcfd00bab (diff) | |
download | SCons-dea2893b586b5d5ca36b9cef5c892a3ed79d7975.zip SCons-dea2893b586b5d5ca36b9cef5c892a3ed79d7975.tar.gz SCons-dea2893b586b5d5ca36b9cef5c892a3ed79d7975.tar.bz2 |
Detect the presence of 8.3 names on Windows when looking on-disk
for whethr an entry exists.
-rw-r--r-- | src/engine/SCons/Node/FS.py | 14 |
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')) |