diff options
author | Steven Knight <knight@baldmt.com> | 2005-06-10 11:29:54 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2005-06-10 11:29:54 (GMT) |
commit | ae6191eaaba20e630d4ea34d701bf14ebedee303 (patch) | |
tree | c80eee8daa5f323d7113a2d5ff60a84ce3696b6f | |
parent | d696df92602493ea6ca6fb2c2a252c73aae704bd (diff) | |
download | SCons-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.py | 4 | ||||
-rw-r--r-- | test/DirSource.py | 8 |
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) |