diff options
author | Walter Dörwald <walter@livinglogic.de> | 2003-06-19 10:21:14 (GMT) |
---|---|---|
committer | Walter Dörwald <walter@livinglogic.de> | 2003-06-19 10:21:14 (GMT) |
commit | a9da5ae07aa40d834b9bfb71de8af0f1b68f39ba (patch) | |
tree | 1b8b6a703d8923aaa38875ef5d57787c7c8c218a | |
parent | 76ca1d428f96284ed58f4523b698ed95c6fdbdb2 (diff) | |
download | cpython-a9da5ae07aa40d834b9bfb71de8af0f1b68f39ba.zip cpython-a9da5ae07aa40d834b9bfb71de8af0f1b68f39ba.tar.gz cpython-a9da5ae07aa40d834b9bfb71de8af0f1b68f39ba.tar.bz2 |
Use find() instead of looping over the string in expanduser().
From SF patch #757058.
-rw-r--r-- | Lib/posixpath.py | 8 | ||||
-rw-r--r-- | Lib/test/test_posixpath.py | 6 |
2 files changed, 9 insertions, 5 deletions
diff --git a/Lib/posixpath.py b/Lib/posixpath.py index 1c63af8..7f907ef 100644 --- a/Lib/posixpath.py +++ b/Lib/posixpath.py @@ -303,11 +303,11 @@ def expanduser(path): do nothing.""" if not path.startswith('~'): return path - i, n = 1, len(path) - while i < n and path[i] != '/': - i += 1 + i = path.find('/', 1) + if i < 0: + i = len(path) if i == 1: - if not 'HOME' in os.environ: + if 'HOME' not in os.environ: import pwd userhome = pwd.getpwuid(os.getuid()).pw_dir else: diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py index 9ba7216..30551d8 100644 --- a/Lib/test/test_posixpath.py +++ b/Lib/test/test_posixpath.py @@ -332,12 +332,16 @@ class PosixPathTest(unittest.TestCase): def test_expanduser(self): self.assertEqual(posixpath.expanduser("foo"), "foo") - self.assert_(isinstance(posixpath.expanduser("~/"), basestring)) try: import pwd except ImportError: pass else: + self.assert_(isinstance(posixpath.expanduser("~/"), basestring)) + self.assertEqual( + posixpath.expanduser("~") + "/", + posixpath.expanduser("~/") + ) self.assert_(isinstance(posixpath.expanduser("~root/"), basestring)) self.assert_(isinstance(posixpath.expanduser("~foo/"), basestring)) |