diff options
author | Georg Brandl <georg@python.org> | 2006-03-07 20:56:02 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2006-03-07 20:56:02 (GMT) |
commit | 516999e6e2b1d89bc29a8930d651e4cddf968bfe (patch) | |
tree | 91d18c0b35a9177d838fd15263578e21a924aa10 | |
parent | 437567ca7b5893f08d74241167bc9e30305c6511 (diff) | |
download | cpython-516999e6e2b1d89bc29a8930d651e4cddf968bfe.zip cpython-516999e6e2b1d89bc29a8930d651e4cddf968bfe.tar.gz cpython-516999e6e2b1d89bc29a8930d651e4cddf968bfe.tar.bz2 |
Fix bug introduced in rev. 42884.
-rw-r--r-- | Modules/posixmodule.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 3c28424..f982275 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1640,7 +1640,7 @@ posix_listdir(PyObject *self, PyObject *args) PyObject *d, *v; HANDLE hFindFile; - BOOL result; + BOOL result = FALSE; WIN32_FIND_DATA FileData; /* MAX_PATH characters could mean a bigger encoded string */ char namebuf[MAX_PATH*2+5]; @@ -1679,7 +1679,7 @@ posix_listdir(PyObject *self, PyObject *args) (wFileData.cFileName[1] == L'\0' || wFileData.cFileName[1] == L'.' && wFileData.cFileName[2] == L'\0')) - continue; + goto loop_w; v = PyUnicode_FromUnicode(wFileData.cFileName, wcslen(wFileData.cFileName)); if (v == NULL) { Py_DECREF(d); @@ -1693,6 +1693,7 @@ posix_listdir(PyObject *self, PyObject *args) break; } Py_DECREF(v); +loop_w: Py_BEGIN_ALLOW_THREADS result = FindNextFileW(hFindFile, &wFileData); Py_END_ALLOW_THREADS @@ -1736,7 +1737,7 @@ posix_listdir(PyObject *self, PyObject *args) (FileData.cFileName[1] == '\0' || FileData.cFileName[1] == '.' && FileData.cFileName[2] == '\0')) - continue; + goto loop_a; v = PyString_FromString(FileData.cFileName); if (v == NULL) { Py_DECREF(d); @@ -1750,6 +1751,7 @@ posix_listdir(PyObject *self, PyObject *args) break; } Py_DECREF(v); +loop_a: Py_BEGIN_ALLOW_THREADS result = FindNextFile(hFindFile, &FileData); Py_END_ALLOW_THREADS |