summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt2
-rw-r--r--src/engine/SCons/Node/FS.py3
-rw-r--r--src/engine/SCons/Node/FSTests.py11
3 files changed, 16 insertions, 0 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 6b2a89e..06ef176 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -20,6 +20,8 @@ RELEASE 0.95 - XXX
- Fix an odd double-quote escape sequence in the man page.
+ - Fix looking up a naked drive letter as a directory (Dir('C:')).
+
RELEASE 0.94 - Fri, 07 Nov 2003 05:29:48 -0600
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index bce5364..e7ab14a 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -646,6 +646,9 @@ class FS:
path_comp = path_comp[1:]
else:
path_comp = [ path_first, ] + path_comp[1:]
+
+ if not path_comp:
+ path_comp = ['']
# Lookup the directory
for path_name in path_comp[:-1]:
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py
index 54c6523..cbda758 100644
--- a/src/engine/SCons/Node/FSTests.py
+++ b/src/engine/SCons/Node/FSTests.py
@@ -673,6 +673,17 @@ class FSTestCase(unittest.TestCase):
except:
raise
+ # Test that just specifying the drive works to identify
+ # its root directory.
+ p = os.path.abspath(test.workpath('root_file'))
+ drive, path = os.path.splitdrive(p)
+ if drive:
+ # The assert below probably isn't correct for the
+ # general case, but it works for Win32, which covers a
+ # lot of ground...
+ dir = fs.Dir(drive)
+ assert str(dir) == drive + os.sep, str(dir)
+
# Test Dir.children()
dir = fs.Dir('ddd')
fs.File(string.join(['ddd', 'f1'], sep))