summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-11-09 04:16:29 (GMT)
committerSteven Knight <knight@baldmt.com>2003-11-09 04:16:29 (GMT)
commit2016f443bfe0ffc6a380e24dc33ccee793a5ec96 (patch)
tree87235f156582c560b8c9d2b3481572e50f7d5a50 /src
parent8d05f7d15635479a0ea1aad38c4dfb52bc1e1a14 (diff)
downloadSCons-2016f443bfe0ffc6a380e24dc33ccee793a5ec96.zip
SCons-2016f443bfe0ffc6a380e24dc33ccee793a5ec96.tar.gz
SCons-2016f443bfe0ffc6a380e24dc33ccee793a5ec96.tar.bz2
Fix specifying a root directory with just the drive string (e.g. C:).
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))