From fa052506597ad705334146ce396c689ebff2aea1 Mon Sep 17 00:00:00 2001 From: stevenknight Date: Sun, 9 Nov 2003 04:16:29 +0000 Subject: [PATCH] Fix specifying a root directory with just the drive string (e.g. C:). git-svn-id: http://scons.tigris.org/svn/scons/trunk@842 fdb21ef1-2011-0410-befe-b5e4ea1792b1 --- src/CHANGES.txt | 2 ++ src/engine/SCons/Node/FS.py | 3 +++ src/engine/SCons/Node/FSTests.py | 11 +++++++++++ 3 files changed, 16 insertions(+) diff --git a/src/CHANGES.txt b/src/CHANGES.txt index 6b2a89eb..06ef176a 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 bce5364d..e7ab14a3 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 54c6523b..cbda7583 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)) -- 2.26.2