summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-09-11 06:02:02 (GMT)
committerSteven Knight <knight@baldmt.com>2002-09-11 06:02:02 (GMT)
commit37d6dd7bf93de0e1cbd5382cd7687ff5294183ec (patch)
tree311567329398133696243feb324fb5d63ca39e43 /src/engine/SCons
parentb18c0d85f90d17412960c39a9c935af9796a8cea (diff)
downloadSCons-37d6dd7bf93de0e1cbd5382cd7687ff5294183ec.zip
SCons-37d6dd7bf93de0e1cbd5382cd7687ff5294183ec.tar.gz
SCons-37d6dd7bf93de0e1cbd5382cd7687ff5294183ec.tar.bz2
Correct interpretation of '#/../foo' on Win32. (Jeff Petkau)
Diffstat (limited to 'src/engine/SCons')
-rw-r--r--src/engine/SCons/Node/FS.py7
-rw-r--r--src/engine/SCons/Node/FSTests.py2
2 files changed, 5 insertions, 4 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index 7174b99..bdabdf2 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -239,13 +239,12 @@ class FS:
self.__setTopLevelDir()
if name[0] == '#':
directory = self.Top
- name = os.path.normpath(name[1:])
- if name and (name[0] == os.sep or \
- name[0] == '/'):
+ name = name[1:]
+ if name and (name[0] == os.sep or name[0] == '/'):
# Correct such that '#/foo' is equivalent
# to '#foo'.
name = name[1:]
- name=os.path.join('.', name)
+ name = os.path.join('.', os.path.normpath(name))
elif not directory:
directory = self._cwd
return (os.path.normpath(name), directory)
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py
index adcccae..707d4a2 100644
--- a/src/engine/SCons/Node/FSTests.py
+++ b/src/engine/SCons/Node/FSTests.py
@@ -269,6 +269,8 @@ class FSTestCase(unittest.TestCase):
Dir_test('.', './', sub_dir, sub)
Dir_test('./.', './', sub_dir, sub)
Dir_test('foo/./bar', 'foo/bar/', sub_dir_foo_bar, 'foo/')
+ Dir_test('#../foo', sub_foo, sub_foo, sub)
+ Dir_test('#/../foo', sub_foo, sub_foo, sub)
Dir_test('#foo/bar', 'foo/bar/', sub_dir_foo_bar, 'foo/')
Dir_test('#/foo/bar', 'foo/bar/', sub_dir_foo_bar, 'foo/')
Dir_test('#', './', sub_dir, sub)