Fix DirScanner's handling of file names beginning with '#'.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Fri, 10 Jun 2005 11:29:54 +0000 (11:29 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Fri, 10 Jun 2005 11:29:54 +0000 (11:29 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1310 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Scanner/Dir.py
test/DirSource.py

index ae207495b213a86fa388e241ef7434f925919a39..e89f12b22a7e1d10a230290e50ffc58dea1ca08a 100644 (file)
@@ -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)
index 6d225c605e0139123a0d5fdac9a39d1cb49eba1a..3b8566c5bea0f059e72aeb2ebabfcbfe8b3367b6 100644 (file)
@@ -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)