diff options
author | Steven Knight <knight@baldmt.com> | 2005-04-01 16:05:36 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2005-04-01 16:05:36 (GMT) |
commit | b4e1ccf877aecd44b8d865a06c57dd950e3344ae (patch) | |
tree | b430db06370fb3a1bec82ce2c7c1c57252b27f9c /src/engine/SCons/SConsign.py | |
parent | 022b115bb9652b1ea93a106b53d77a9ef23a00a2 (diff) | |
download | SCons-b4e1ccf877aecd44b8d865a06c57dd950e3344ae.zip SCons-b4e1ccf877aecd44b8d865a06c57dd950e3344ae.tar.gz SCons-b4e1ccf877aecd44b8d865a06c57dd950e3344ae.tar.bz2 |
Normalize directory paths in SConsignFile() database files. (Chad Austin)
Diffstat (limited to 'src/engine/SCons/SConsign.py')
-rw-r--r-- | src/engine/SCons/SConsign.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/engine/SCons/SConsign.py b/src/engine/SCons/SConsign.py index 6610eaf..212ec8d 100644 --- a/src/engine/SCons/SConsign.py +++ b/src/engine/SCons/SConsign.py @@ -32,6 +32,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import cPickle import os import os.path +import string import time import SCons.Node @@ -41,8 +42,15 @@ import SCons.Warnings #XXX Get rid of the global array so this becomes re-entrant. sig_files = [] +# Handle to open database object if using the DB SConsign implementation. database = None +if os.sep == '/': + norm_entry = lambda s: s +else: + def norm_entry(str): + return string.replace(str, os.sep, '/') + def write(): global sig_files for sig_file in sig_files: @@ -98,7 +106,7 @@ class DB(Base): try: global database - rawentries = database[self.dir.path] + rawentries = database[norm_entry(self.dir.path)] except KeyError: pass else: @@ -119,7 +127,7 @@ class DB(Base): def write(self, sync=1): if self.dirty: global database - database[self.dir.path] = cPickle.dumps(self.entries, 1) + database[norm_entry(self.dir.path)] = cPickle.dumps(self.entries, 1) if sync: try: syncmethod = database.sync |