mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Patch #1212117: Add optional attribute st_flags to os.stat_result
when the member is available on the platform. (Contributed by Diego Petteno)
This commit is contained in:
parent
f36947032f
commit
5f937a7b8b
6 changed files with 134 additions and 3 deletions
|
@ -674,8 +674,8 @@ This object may be accessed either as a tuple of\n\
|
|||
(mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime)\n\
|
||||
or via the attributes st_mode, st_ino, st_dev, st_nlink, st_uid, and so on.\n\
|
||||
\n\
|
||||
Posix/windows: If your platform supports st_blksize, st_blocks, or st_rdev,\n\
|
||||
they are available as attributes only.\n\
|
||||
Posix/windows: If your platform supports st_blksize, st_blocks, st_rdev,\n\
|
||||
or st_flags, they are available as attributes only.\n\
|
||||
\n\
|
||||
See os.stat for more information.");
|
||||
|
||||
|
@ -702,6 +702,9 @@ static PyStructSequence_Field stat_result_fields[] = {
|
|||
#endif
|
||||
#ifdef HAVE_STRUCT_STAT_ST_RDEV
|
||||
{"st_rdev", "device type (if inode device)"},
|
||||
#endif
|
||||
#ifdef HAVE_STRUCT_STAT_ST_FLAGS
|
||||
{"st_flags", "user defined flags for file"},
|
||||
#endif
|
||||
{0}
|
||||
};
|
||||
|
@ -724,6 +727,12 @@ static PyStructSequence_Field stat_result_fields[] = {
|
|||
#define ST_RDEV_IDX ST_BLOCKS_IDX
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STRUCT_STAT_ST_FLAGS
|
||||
#define ST_FLAGS_IDX (ST_RDEV_IDX+1)
|
||||
#else
|
||||
#define ST_FLAGS_IDX ST_RDEV_IDX
|
||||
#endif
|
||||
|
||||
static PyStructSequence_Desc stat_result_desc = {
|
||||
"stat_result", /* name */
|
||||
stat_result__doc__, /* doc */
|
||||
|
@ -887,6 +896,10 @@ _pystat_fromstructstat(STRUCT_STAT st)
|
|||
PyStructSequence_SET_ITEM(v, ST_RDEV_IDX,
|
||||
PyInt_FromLong((long)st.st_rdev));
|
||||
#endif
|
||||
#ifdef HAVE_STRUCT_STAT_ST_FLAGS
|
||||
PyStructSequence_SET_ITEM(v, ST_FLAGS_IDX,
|
||||
PyInt_FromLong((long)st.st_flags));
|
||||
#endif
|
||||
|
||||
if (PyErr_Occurred()) {
|
||||
Py_DECREF(v);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue