Kaydet (Commit) 40bd7706 authored tarafından Jack Jansen's avatar Jack Jansen

Add fstat() if using GUSI

üst c2952bcb
...@@ -72,6 +72,9 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -72,6 +72,9 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#if defined(MPW) || defined(USE_GUSI) #if defined(MPW) || defined(USE_GUSI)
#define WEHAVE_DUP #define WEHAVE_DUP
#endif #endif
#if defined(USE_GUSI)
#define WEHAVE_FSTAT
#endif
#include "macdefs.h" #include "macdefs.h"
#ifdef USE_GUSI #ifdef USE_GUSI
...@@ -449,7 +452,6 @@ mac_stat(self, args) ...@@ -449,7 +452,6 @@ mac_stat(self, args)
Py_END_ALLOW_THREADS Py_END_ALLOW_THREADS
if (res != 0) if (res != 0)
return mac_error(); return mac_error();
#if 1
return Py_BuildValue("(lllllllddd)", return Py_BuildValue("(lllllllddd)",
(long)st.st_mode, (long)st.st_mode,
(long)st.st_ino, (long)st.st_ino,
...@@ -461,8 +463,25 @@ mac_stat(self, args) ...@@ -461,8 +463,25 @@ mac_stat(self, args)
(double)st.st_atime, (double)st.st_atime,
(double)st.st_mtime, (double)st.st_mtime,
(double)st.st_ctime); (double)st.st_ctime);
#else }
return Py_BuildValue("(llllllllll)",
#ifdef WEHAVE_FSTAT
static PyObject *
mac_fstat(self, args)
PyObject *self;
PyObject *args;
{
struct stat st;
long fd;
int res;
if (!PyArg_Parse(args, "l", &fd))
return NULL;
Py_BEGIN_ALLOW_THREADS
res = fstat((int)fd, &st);
Py_END_ALLOW_THREADS
if (res != 0)
return mac_error();
return Py_BuildValue("(lllllllddd)",
(long)st.st_mode, (long)st.st_mode,
(long)st.st_ino, (long)st.st_ino,
(long)st.st_dev, (long)st.st_dev,
...@@ -470,11 +489,11 @@ mac_stat(self, args) ...@@ -470,11 +489,11 @@ mac_stat(self, args)
(long)st.st_uid, (long)st.st_uid,
(long)st.st_gid, (long)st.st_gid,
(long)st.st_size, (long)st.st_size,
(long)st.st_atime, (double)st.st_atime,
(long)st.st_mtime, (double)st.st_mtime,
(long)st.st_ctime); (double)st.st_ctime);
#endif
} }
#endif /* WEHAVE_FSTAT */
static PyObject * static PyObject *
mac_xstat(self, args) mac_xstat(self, args)
...@@ -502,7 +521,6 @@ mac_xstat(self, args) ...@@ -502,7 +521,6 @@ mac_xstat(self, args)
Py_END_ALLOW_THREADS Py_END_ALLOW_THREADS
if (res != 0) if (res != 0)
return mac_error(); return mac_error();
#if 1
return Py_BuildValue("(llllllldddls#s#)", return Py_BuildValue("(llllllldddls#s#)",
(long)st.st_mode, (long)st.st_mode,
(long)st.st_ino, (long)st.st_ino,
...@@ -517,22 +535,6 @@ mac_xstat(self, args) ...@@ -517,22 +535,6 @@ mac_xstat(self, args)
(long)mst.st_rsize, (long)mst.st_rsize,
mst.st_creator, 4, mst.st_creator, 4,
mst.st_type, 4); mst.st_type, 4);
#else
return Py_BuildValue("(llllllllllls#s#)",
(long)st.st_mode,
(long)st.st_ino,
(long)st.st_dev,
(long)st.st_nlink,
(long)st.st_uid,
(long)st.st_gid,
(long)st.st_size,
(long)st.st_atime,
(long)st.st_mtime,
(long)st.st_ctime,
(long)mst.st_rsize,
mst.st_creator, 4,
mst.st_type, 4);
#endif
} }
static PyObject * static PyObject *
...@@ -597,6 +599,9 @@ static struct PyMethodDef mac_methods[] = { ...@@ -597,6 +599,9 @@ static struct PyMethodDef mac_methods[] = {
#endif #endif
#ifdef WEHAVE_FDOPEN #ifdef WEHAVE_FDOPEN
{"fdopen", mac_fdopen}, {"fdopen", mac_fdopen},
#endif
#ifdef WEHAVE_FSTAT
{"fstat", mac_fstat},
#endif #endif
{"getbootvol", mac_getbootvol}, /* non-standard */ {"getbootvol", mac_getbootvol}, /* non-standard */
{"getcwd", mac_getcwd}, {"getcwd", mac_getcwd},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment