bpo-32659: Solaris "stat" should support "st_fstype" (#5307)
* bpo-32659: Solaris "stat" should support "st_fstype" * Add 'versionadded'
This commit is contained in:
parent
43c0f1ac5e
commit
6c51d51880
|
@ -2474,6 +2474,14 @@ features:
|
||||||
|
|
||||||
Time of file creation.
|
Time of file creation.
|
||||||
|
|
||||||
|
On Solaris and derivatives, the following attributes may also be
|
||||||
|
available:
|
||||||
|
|
||||||
|
.. attribute:: st_fstype
|
||||||
|
|
||||||
|
String that uniquely identifies the type of the filesystem that
|
||||||
|
contains the file.
|
||||||
|
|
||||||
On Mac OS systems, the following attributes may also be available:
|
On Mac OS systems, the following attributes may also be available:
|
||||||
|
|
||||||
.. attribute:: st_rsize
|
.. attribute:: st_rsize
|
||||||
|
@ -2517,6 +2525,8 @@ features:
|
||||||
.. versionadded:: 3.5
|
.. versionadded:: 3.5
|
||||||
Added the :attr:`st_file_attributes` member on Windows.
|
Added the :attr:`st_file_attributes` member on Windows.
|
||||||
|
|
||||||
|
.. versionadded:: 3.7
|
||||||
|
Added the :attr:`st_fstype` member to Solaris/derivatives.
|
||||||
|
|
||||||
.. function:: statvfs(path)
|
.. function:: statvfs(path)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Under Solaris and derivatives, :class:`os.stat_result` provides a st_fstype attribute.
|
|
@ -394,6 +394,10 @@ static int win32_can_symlink = 0;
|
||||||
#define MODNAME "posix"
|
#define MODNAME "posix"
|
||||||
#endif
|
#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
|
#ifdef HAVE_FORK
|
||||||
static void
|
static void
|
||||||
|
@ -1788,6 +1792,9 @@ static PyStructSequence_Field stat_result_fields[] = {
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_STRUCT_STAT_ST_FILE_ATTRIBUTES
|
#ifdef HAVE_STRUCT_STAT_ST_FILE_ATTRIBUTES
|
||||||
{"st_file_attributes", "Windows file attribute bits"},
|
{"st_file_attributes", "Windows file attribute bits"},
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STRUCT_STAT_ST_FSTYPE
|
||||||
|
{"st_fstype", "Type of filesystem"},
|
||||||
#endif
|
#endif
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
@ -1834,6 +1841,12 @@ static PyStructSequence_Field stat_result_fields[] = {
|
||||||
#define ST_FILE_ATTRIBUTES_IDX ST_BIRTHTIME_IDX
|
#define ST_FILE_ATTRIBUTES_IDX ST_BIRTHTIME_IDX
|
||||||
#endif
|
#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 = {
|
static PyStructSequence_Desc stat_result_desc = {
|
||||||
"stat_result", /* name */
|
"stat_result", /* name */
|
||||||
stat_result__doc__, /* doc */
|
stat_result__doc__, /* doc */
|
||||||
|
@ -2057,6 +2070,10 @@ _pystat_fromstructstat(STRUCT_STAT *st)
|
||||||
PyStructSequence_SET_ITEM(v, ST_FILE_ATTRIBUTES_IDX,
|
PyStructSequence_SET_ITEM(v, ST_FILE_ATTRIBUTES_IDX,
|
||||||
PyLong_FromUnsignedLong(st->st_file_attributes));
|
PyLong_FromUnsignedLong(st->st_file_attributes));
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_STRUCT_STAT_ST_FSTYPE
|
||||||
|
PyStructSequence_SET_ITEM(v, ST_FSTYPE_IDX,
|
||||||
|
PyUnicode_FromString(st->st_fstype));
|
||||||
|
#endif
|
||||||
|
|
||||||
if (PyErr_Occurred()) {
|
if (PyErr_Occurred()) {
|
||||||
Py_DECREF(v);
|
Py_DECREF(v);
|
||||||
|
|
Loading…
Reference in New Issue