]> granicus.if.org Git - python/commitdiff
Closes SF bug 113894: on Windows, things like os.listdir("k:") and
authorTim Peters <tim.peters@gmail.com>
Fri, 15 Sep 2000 07:44:49 +0000 (07:44 +0000)
committerTim Peters <tim.peters@gmail.com>
Fri, 15 Sep 2000 07:44:49 +0000 (07:44 +0000)
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".

Modules/posixmodule.c

index cb3c72dd5c4faf9edce3657ea8b5250d4cbe8efb..e46d68a8e0053030af8e8385893e127c7cf98922 100644 (file)
@@ -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\