Kaydet (Commit) bbb9be72 authored tarafından Hirokazu Yamamoto's avatar Hirokazu Yamamoto

Merged revisions 72273 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72273 | hirokazu.yamamoto | 2009-05-04 14:28:39 +0900 | 1 line

  Issue #5913: os.listdir() should fail for empty path on windows.
........
üst 73e8e5f1
...@@ -109,6 +109,8 @@ Installation ...@@ -109,6 +109,8 @@ Installation
Library Library
------- -------
- Issue #5913: os.listdir() should fail for empty path on windows.
- Issue #5084: unpickling now interns the attribute names of pickled objects, - Issue #5084: unpickling now interns the attribute names of pickled objects,
saving memory and avoiding growth in size of subsequent pickles. Proposal saving memory and avoiding growth in size of subsequent pickles. Proposal
and original patch by Jake McGuire. and original patch by Jake McGuire.
......
...@@ -2183,7 +2183,6 @@ posix_listdir(PyObject *self, PyObject *args) ...@@ -2183,7 +2183,6 @@ posix_listdir(PyObject *self, PyObject *args)
if (PyArg_ParseTuple(args, "U:listdir", &po)) { if (PyArg_ParseTuple(args, "U:listdir", &po)) {
WIN32_FIND_DATAW wFileData; WIN32_FIND_DATAW wFileData;
Py_UNICODE *wnamebuf; Py_UNICODE *wnamebuf;
Py_UNICODE wch;
/* Overallocate for \\*.*\0 */ /* Overallocate for \\*.*\0 */
len = PyUnicode_GET_SIZE(po); len = PyUnicode_GET_SIZE(po);
wnamebuf = malloc((len + 5) * sizeof(wchar_t)); wnamebuf = malloc((len + 5) * sizeof(wchar_t));
...@@ -2192,10 +2191,12 @@ posix_listdir(PyObject *self, PyObject *args) ...@@ -2192,10 +2191,12 @@ posix_listdir(PyObject *self, PyObject *args)
return NULL; return NULL;
} }
wcscpy(wnamebuf, PyUnicode_AS_UNICODE(po)); wcscpy(wnamebuf, PyUnicode_AS_UNICODE(po));
wch = len > 0 ? wnamebuf[len-1] : '\0'; if (len > 0) {
if (wch != L'/' && wch != L'\\' && wch != L':') Py_UNICODE wch = wnamebuf[len-1];
wnamebuf[len++] = L'\\'; if (wch != L'/' && wch != L'\\' && wch != L':')
wcscpy(wnamebuf + len, L"*.*"); wnamebuf[len++] = L'\\';
wcscpy(wnamebuf + len, L"*.*");
}
if ((d = PyList_New(0)) == NULL) { if ((d = PyList_New(0)) == NULL) {
free(wnamebuf); free(wnamebuf);
return NULL; return NULL;
...@@ -2266,8 +2267,8 @@ posix_listdir(PyObject *self, PyObject *args) ...@@ -2266,8 +2267,8 @@ posix_listdir(PyObject *self, PyObject *args)
char ch = namebuf[len-1]; char ch = namebuf[len-1];
if (ch != SEP && ch != ALTSEP && ch != ':') if (ch != SEP && ch != ALTSEP && ch != ':')
namebuf[len++] = '/'; namebuf[len++] = '/';
strcpy(namebuf + len, "*.*");
} }
strcpy(namebuf + len, "*.*");
if ((d = PyList_New(0)) == NULL) if ((d = PyList_New(0)) == NULL)
return NULL; return NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment