summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-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)