- fixed pointer size test in spawn functions. also added
cast to make sure Py_BuildValue gets the right thing.
this change eliminates bogus return codes from successful
spawn calls (e.g. 2167387144924954624 instead of 0).
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 1a40d9e..5b61193 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1540,10 +1540,10 @@
if (spawnval == -1)
return posix_error();
else
-#if SIZEOF_LONG == SIZE_VOID_P
- return Py_BuildValue("l", spawnval);
+#if SIZEOF_LONG == SIZEOF_VOID_P
+ return Py_BuildValue("l", (long) spawnval);
#else
- return Py_BuildValue("L", spawnval);
+ return Py_BuildValue("L", (LONG_LONG) spawnval);
#endif
}
@@ -1648,10 +1648,10 @@
if (spawnval == -1)
(void) posix_error();
else
-#if SIZEOF_LONG == SIZE_VOID_P
- res = Py_BuildValue("l", spawnval);
+#if SIZEOF_LONG == SIZEOF_VOID_P
+ res = Py_BuildValue("l", (long) spawnval);
#else
- res = Py_BuildValue("L", spawnval);
+ res = Py_BuildValue("L", (LONG_LONG) spawnval);
#endif
fail_2: