summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2000-09-15 07:44:49 (GMT)
committerTim Peters <tim.peters@gmail.com>2000-09-15 07:44:49 (GMT)
commit0bb44a4a3a98b7bd73ff0f34d872ddcc9556e393 (patch)
tree36946a08fc0fd097239317f9cba73622b3125bed
parenta2ebb87bfe9cc106be456df643ad06ac0c6c07ba (diff)
downloadcpython-0bb44a4a3a98b7bd73ff0f34d872ddcc9556e393.zip
cpython-0bb44a4a3a98b7bd73ff0f34d872ddcc9556e393.tar.gz
cpython-0bb44a4a3a98b7bd73ff0f34d872ddcc9556e393.tar.bz2
Closes SF bug 113894: on Windows, things like os.listdir("k:") and
glob.glob("k:*py") (i.e., a raw drive letter + colon at the start) were using the root of the drive rather than the expected Windows behavior of using the drive's "current directory".
-rw-r--r--Modules/posixmodule.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index cb3c72d..e46d68a 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -796,6 +796,7 @@ posix_listdir(PyObject *self, PyObject *args)
HANDLE hFindFile;
WIN32_FIND_DATA FileData;
char namebuf[MAX_PATH+5];
+ char ch;
if (!PyArg_ParseTuple(args, "t#:listdir", &name, &len))
return NULL;
@@ -804,7 +805,8 @@ posix_listdir(PyObject *self, PyObject *args)
return NULL;
}
strcpy(namebuf, name);
- if (namebuf[len-1] != '/' && namebuf[len-1] != '\\')
+ ch = namebuf[len-1];
+ if (ch != '/' && ch != '\\' && ch != ':')
namebuf[len++] = '/';
strcpy(namebuf + len, "*.*");
@@ -844,8 +846,7 @@ posix_listdir(PyObject *self, PyObject *args)
return d;
-#else /* !MS_WIN32 */
-#ifdef _MSC_VER /* 16-bit Windows */
+#elif defined(_MSC_VER) /* 16-bit Windows */
#ifndef MAX_PATH
#define MAX_PATH 250
@@ -906,8 +907,7 @@ posix_listdir(PyObject *self, PyObject *args)
return d;
-#else
-#if defined(PYOS_OS2)
+#elif defined(PYOS_OS2)
#ifndef MAX_PATH
#define MAX_PATH CCHMAXPATH
@@ -1016,10 +1016,8 @@ posix_listdir(PyObject *self, PyObject *args)
return d;
-#endif /* !PYOS_OS2 */
-#endif /* !_MSC_VER */
-#endif /* !MS_WIN32 */
-}
+#endif /* which OS */
+} /* end of posix_listdir */
static char posix_mkdir__doc__[] =
"mkdir(path [, mode=0777]) -> None\n\