summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2005-06-10 11:29:54 (GMT)
committerSteven Knight <knight@baldmt.com>2005-06-10 11:29:54 (GMT)
commitae6191eaaba20e630d4ea34d701bf14ebedee303 (patch)
treec80eee8daa5f323d7113a2d5ff60a84ce3696b6f
parentd696df92602493ea6ca6fb2c2a252c73aae704bd (diff)
downloadSCons-ae6191eaaba20e630d4ea34d701bf14ebedee303.zip
SCons-ae6191eaaba20e630d4ea34d701bf14ebedee303.tar.gz
SCons-ae6191eaaba20e630d4ea34d701bf14ebedee303.tar.bz2
Fix DirScanner's handling of file names beginning with '#'.
-rw-r--r--src/engine/SCons/Scanner/Dir.py4
-rw-r--r--test/DirSource.py8
2 files changed, 11 insertions, 1 deletions
diff --git a/src/engine/SCons/Scanner/Dir.py b/src/engine/SCons/Scanner/Dir.py
index ae20749..e89f12b 100644
--- a/src/engine/SCons/Scanner/Dir.py
+++ b/src/engine/SCons/Scanner/Dir.py
@@ -61,4 +61,6 @@ def scan(node, env, path=()):
dont_scan = lambda k: not skip_entry.has_key(k)
flist = filter(dont_scan, flist)
flist.sort()
- return map(node.Entry, flist)
+ # Add ./ to the beginning of the file name so that if it begins with a
+ # '#' we don't look it up relative to the top-level directory.
+ return map(lambda f, node=node: node.Entry('./'+f), flist)
diff --git a/test/DirSource.py b/test/DirSource.py
index 6d225c6..3b8566c 100644
--- a/test/DirSource.py
+++ b/test/DirSource.py
@@ -75,13 +75,21 @@ env_csig.Command('cmd-csig.out', 'cmd-csig', writeTarget,
""")
test.write([ 'bsig', 'foo.txt' ], 'foo.txt 1\n')
+test.write([ 'bsig', '#hash.txt' ], 'hash.txt 1\n')
test.write([ 'bsig', 'subdir', 'bar.txt'], 'bar.txt 1\n')
+test.write([ 'bsig', 'subdir', '#hash.txt'], 'hash.txt 1\n')
test.write([ 'csig', 'foo.txt' ], 'foo.txt 1\n')
+test.write([ 'csig', '#hash.txt' ], 'hash.txt 1\n')
test.write([ 'csig', 'subdir', 'bar.txt' ], 'bar.txt 1\n')
+test.write([ 'csig', 'subdir', '#hash.txt' ], 'hash.txt 1\n')
test.write([ 'cmd-bsig', 'foo.txt' ], 'foo.txt 1\n')
+test.write([ 'cmd-bsig', '#hash.txt' ], 'hash.txt 1\n')
test.write([ 'cmd-bsig', 'subdir', 'bar.txt' ], 'bar.txt 1\n')
+test.write([ 'cmd-bsig', 'subdir', '#hash.txt' ], 'hash.txt 1\n')
test.write([ 'cmd-csig', 'foo.txt' ], 'foo.txt 1\n')
+test.write([ 'cmd-csig', '#hash.txt' ], '#hash.txt 1\n')
test.write([ 'cmd-csig', 'subdir', 'bar.txt' ], 'bar.txt 1\n')
+test.write([ 'cmd-csig', 'subdir', '#hash.txt' ], 'hash.txt 1\n')
test.write('junk.txt', 'junk.txt\n')
test.run(arguments=".", stderr=None)