summaryrefslogtreecommitdiffstats
path: root/Modules/posixmodule.c
diff options
context:
space:
mode:
authorjcea <jcea@jcea.es>2018-01-28 13:00:08 (GMT)
committerGitHub <noreply@github.com>2018-01-28 13:00:08 (GMT)
commit6c51d518800cdda7ba16ae163be0d211d2c4fa12 (patch)
treeb5f8ee9bd042849b6260d4b8b10d1ff53a75b881 /Modules/posixmodule.c
parent43c0f1ac5ed8bc9c3bd048d2ce4de4c98a83de99 (diff)
downloadcpython-6c51d518800cdda7ba16ae163be0d211d2c4fa12.zip
cpython-6c51d518800cdda7ba16ae163be0d211d2c4fa12.tar.gz
cpython-6c51d518800cdda7ba16ae163be0d211d2c4fa12.tar.bz2
bpo-32659: Solaris "stat" should support "st_fstype" (#5307)
* bpo-32659: Solaris "stat" should support "st_fstype" * Add 'versionadded'
Diffstat (limited to 'Modules/posixmodule.c')
-rw-r--r--Modules/posixmodule.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index a1a38eb..ceea855 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -394,6 +394,10 @@ static int win32_can_symlink = 0;
#define MODNAME "posix"
#endif
+#if defined(__sun)
+/* Something to implement in autoconf, not present in autoconf 2.69 */
+#define HAVE_STRUCT_STAT_ST_FSTYPE 1
+#endif
#ifdef HAVE_FORK
static void
@@ -1789,6 +1793,9 @@ static PyStructSequence_Field stat_result_fields[] = {
#ifdef HAVE_STRUCT_STAT_ST_FILE_ATTRIBUTES
{"st_file_attributes", "Windows file attribute bits"},
#endif
+#ifdef HAVE_STRUCT_STAT_ST_FSTYPE
+ {"st_fstype", "Type of filesystem"},
+#endif
{0}
};
@@ -1834,6 +1841,12 @@ static PyStructSequence_Field stat_result_fields[] = {
#define ST_FILE_ATTRIBUTES_IDX ST_BIRTHTIME_IDX
#endif
+#ifdef HAVE_STRUCT_STAT_ST_FSTYPE
+#define ST_FSTYPE_IDX (ST_FILE_ATTRIBUTES_IDX+1)
+#else
+#define ST_FSTYPE_IDX ST_FILE_ATTRIBUTES_IDX
+#endif
+
static PyStructSequence_Desc stat_result_desc = {
"stat_result", /* name */
stat_result__doc__, /* doc */
@@ -2057,6 +2070,10 @@ _pystat_fromstructstat(STRUCT_STAT *st)
PyStructSequence_SET_ITEM(v, ST_FILE_ATTRIBUTES_IDX,
PyLong_FromUnsignedLong(st->st_file_attributes));
#endif
+#ifdef HAVE_STRUCT_STAT_ST_FSTYPE
+ PyStructSequence_SET_ITEM(v, ST_FSTYPE_IDX,
+ PyUnicode_FromString(st->st_fstype));
+#endif
if (PyErr_Occurred()) {
Py_DECREF(v);