summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/SConsign.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2005-04-01 16:05:36 (GMT)
committerSteven Knight <knight@baldmt.com>2005-04-01 16:05:36 (GMT)
commitb4e1ccf877aecd44b8d865a06c57dd950e3344ae (patch)
treeb430db06370fb3a1bec82ce2c7c1c57252b27f9c /src/engine/SCons/SConsign.py
parent022b115bb9652b1ea93a106b53d77a9ef23a00a2 (diff)
downloadSCons-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.py12
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