[Python-checkins] r42905 - python/trunk/Modules/posixmodule.c

martin.v.loewis python-checkins at python.org
Wed Mar 8 00:59:38 CET 2006


Author: martin.v.loewis
Date: Wed Mar  8 00:59:33 2006
New Revision: 42905

Modified:
   python/trunk/Modules/posixmodule.c
Log:
Reformulate 42903 using an if statement.

Modified: python/trunk/Modules/posixmodule.c
==============================================================================
--- python/trunk/Modules/posixmodule.c	(original)
+++ python/trunk/Modules/posixmodule.c	Wed Mar  8 00:59:33 2006
@@ -1640,7 +1640,7 @@
 
 	PyObject *d, *v;
 	HANDLE hFindFile;
-	BOOL result = FALSE;
+	BOOL result;
 	WIN32_FIND_DATA FileData;
 	/* MAX_PATH characters could mean a bigger encoded string */
 	char namebuf[MAX_PATH*2+5];
@@ -1675,25 +1675,23 @@
 				return win32_error_unicode("FindFirstFileW", wnamebuf);
 			}
 			do {
-				if (wFileData.cFileName[0] == L'.' &&
-					(wFileData.cFileName[1] == L'\0' ||
-					 wFileData.cFileName[1] == L'.' &&
-					 wFileData.cFileName[2] == L'\0'))
-					goto loop_w;
-				v = PyUnicode_FromUnicode(wFileData.cFileName, wcslen(wFileData.cFileName));
-				if (v == NULL) {
-					Py_DECREF(d);
-					d = NULL;
-					break;
-				}
-				if (PyList_Append(d, v) != 0) {
+				/* Skip over . and .. */
+				if (wcscmp(wFileData.cFileName, L".") != 0 &&
+				    wcscmp(wFileData.cFileName, L"..") != 0) {
+					v = PyUnicode_FromUnicode(wFileData.cFileName, wcslen(wFileData.cFileName));
+					if (v == NULL) {
+						Py_DECREF(d);
+						d = NULL;
+						break;
+					}
+					if (PyList_Append(d, v) != 0) {
+						Py_DECREF(v);
+						Py_DECREF(d);
+						d = NULL;
+						break;
+					}
 					Py_DECREF(v);
-					Py_DECREF(d);
-					d = NULL;
-					break;
 				}
-				Py_DECREF(v);
-loop_w:
 				Py_BEGIN_ALLOW_THREADS
 				result = FindNextFileW(hFindFile, &wFileData);
 				Py_END_ALLOW_THREADS
@@ -1733,25 +1731,23 @@
 		return win32_error("FindFirstFile", namebuf);
 	}
 	do {
-		if (FileData.cFileName[0] == '.' &&
-		    (FileData.cFileName[1] == '\0' ||
-		     FileData.cFileName[1] == '.' &&
-		     FileData.cFileName[2] == '\0'))
-			goto loop_a;
-		v = PyString_FromString(FileData.cFileName);
-		if (v == NULL) {
-			Py_DECREF(d);
-			d = NULL;
-			break;
-		}
-		if (PyList_Append(d, v) != 0) {
+		/* Skip over . and .. */
+		if (strcmp(FileData.cFileName, ".") != 0 &&
+		    strcmp(FileData.cFileName, "..") != 0) {
+			v = PyString_FromString(FileData.cFileName);
+			if (v == NULL) {
+				Py_DECREF(d);
+				d = NULL;
+				break;
+			}
+			if (PyList_Append(d, v) != 0) {
+				Py_DECREF(v);
+				Py_DECREF(d);
+				d = NULL;
+				break;
+			}
 			Py_DECREF(v);
-			Py_DECREF(d);
-			d = NULL;
-			break;
 		}
-		Py_DECREF(v);
-loop_a:
 		Py_BEGIN_ALLOW_THREADS
 		result = FindNextFile(hFindFile, &FileData);
 		Py_END_ALLOW_THREADS


More information about the Python-checkins mailing list