101 lines
3.3 KiB
Diff
101 lines
3.3 KiB
Diff
|
diff -u -r ../Python-3.4.1/Modules/posixmodule.c ./Modules/posixmodule.c
|
||
|
--- ../Python-3.4.1/Modules/posixmodule.c 2014-05-19 07:19:39.000000000 +0200
|
||
|
+++ ./Modules/posixmodule.c 2014-06-25 21:42:11.191524129 +0200
|
||
|
@@ -6048,7 +6048,7 @@
|
||
|
if (_Py_set_inheritable(master_fd, 0, NULL) < 0)
|
||
|
goto posix_error;
|
||
|
|
||
|
-#if !defined(__CYGWIN__) && !defined(HAVE_DEV_PTC)
|
||
|
+#if !defined(__CYGWIN__) && !defined(HAVE_DEV_PTC) && !defined(__ANDROID__)
|
||
|
ioctl(slave_fd, I_PUSH, "ptem"); /* push ptem */
|
||
|
ioctl(slave_fd, I_PUSH, "ldterm"); /* push ldterm */
|
||
|
#ifndef __hpux
|
||
|
@@ -9162,7 +9162,12 @@
|
||
|
needed definitions in sys/statvfs.h */
|
||
|
#define _SVID3
|
||
|
#endif
|
||
|
-#include <sys/statvfs.h>
|
||
|
+#ifdef __ANDROID__
|
||
|
+# include <sys/vfs.h>
|
||
|
+# define statvfs statfs
|
||
|
+#else
|
||
|
+# include <sys/statvfs.h>
|
||
|
+#endif
|
||
|
|
||
|
static PyObject*
|
||
|
_pystatvfs_fromstructstatvfs(struct statvfs st) {
|
||
|
@@ -9178,9 +9183,15 @@
|
||
|
PyStructSequence_SET_ITEM(v, 4, PyLong_FromLong((long) st.f_bavail));
|
||
|
PyStructSequence_SET_ITEM(v, 5, PyLong_FromLong((long) st.f_files));
|
||
|
PyStructSequence_SET_ITEM(v, 6, PyLong_FromLong((long) st.f_ffree));
|
||
|
+#ifdef __ANDROID__
|
||
|
+ PyStructSequence_SET_ITEM(v, 7, PyLong_FromLong((long) st.f_bavail));
|
||
|
+ PyStructSequence_SET_ITEM(v, 8, PyLong_FromLong((long) st.f_flags));
|
||
|
+ PyStructSequence_SET_ITEM(v, 9, PyLong_FromLong((long) st.f_namelen));
|
||
|
+#else
|
||
|
PyStructSequence_SET_ITEM(v, 7, PyLong_FromLong((long) st.f_favail));
|
||
|
PyStructSequence_SET_ITEM(v, 8, PyLong_FromLong((long) st.f_flag));
|
||
|
PyStructSequence_SET_ITEM(v, 9, PyLong_FromLong((long) st.f_namemax));
|
||
|
+#endif
|
||
|
#else
|
||
|
PyStructSequence_SET_ITEM(v, 0, PyLong_FromLong((long) st.f_bsize));
|
||
|
PyStructSequence_SET_ITEM(v, 1, PyLong_FromLong((long) st.f_frsize));
|
||
|
@@ -9194,11 +9205,18 @@
|
||
|
PyLong_FromLongLong((PY_LONG_LONG) st.f_files));
|
||
|
PyStructSequence_SET_ITEM(v, 6,
|
||
|
PyLong_FromLongLong((PY_LONG_LONG) st.f_ffree));
|
||
|
+#ifdef __ANDROID__
|
||
|
+ PyStructSequence_SET_ITEM(v, 7,
|
||
|
+ PyLong_FromLongLong((PY_LONG_LONG) st.b_favail));
|
||
|
+ PyStructSequence_SET_ITEM(v, 8, PyLong_FromLong((long) st.f_flags));
|
||
|
+ PyStructSequence_SET_ITEM(v, 9, PyLong_FromLong((long) st.f_namelen));
|
||
|
+#else
|
||
|
PyStructSequence_SET_ITEM(v, 7,
|
||
|
PyLong_FromLongLong((PY_LONG_LONG) st.f_favail));
|
||
|
PyStructSequence_SET_ITEM(v, 8, PyLong_FromLong((long) st.f_flag));
|
||
|
PyStructSequence_SET_ITEM(v, 9, PyLong_FromLong((long) st.f_namemax));
|
||
|
#endif
|
||
|
+#endif
|
||
|
if (PyErr_Occurred()) {
|
||
|
Py_DECREF(v);
|
||
|
return NULL;
|
||
|
@@ -9221,7 +9239,11 @@
|
||
|
if (!PyArg_ParseTuple(args, "i:fstatvfs", &fd))
|
||
|
return NULL;
|
||
|
Py_BEGIN_ALLOW_THREADS
|
||
|
+#ifdef __ANDROID__
|
||
|
+ res = fstatfs(fd, &st);
|
||
|
+#else
|
||
|
res = fstatvfs(fd, &st);
|
||
|
+#endif
|
||
|
Py_END_ALLOW_THREADS
|
||
|
if (res != 0)
|
||
|
return posix_error();
|
||
|
@@ -9232,7 +9254,13 @@
|
||
|
|
||
|
|
||
|
#if defined(HAVE_STATVFS) && defined(HAVE_SYS_STATVFS_H)
|
||
|
-#include <sys/statvfs.h>
|
||
|
+#ifdef __ANDROID__
|
||
|
+# include <sys/vfs.h>
|
||
|
+# define statvfs statfs
|
||
|
+#else
|
||
|
+# include <sys/statvfs.h>
|
||
|
+#endif
|
||
|
+
|
||
|
|
||
|
PyDoc_STRVAR(posix_statvfs__doc__,
|
||
|
"statvfs(path)\n\n\
|
||
|
@@ -9271,7 +9299,11 @@
|
||
|
goto exit;
|
||
|
}
|
||
|
#endif
|
||
|
+#ifdef __ANDROID__
|
||
|
+ result = fstatfs(path.fd, &st);
|
||
|
+#else
|
||
|
result = fstatvfs(path.fd, &st);
|
||
|
+#endif
|
||
|
}
|
||
|
else
|
||
|
#endif
|