add xstat (extended stat, returns resource fork size and creator/type)

This commit is contained in:
Guido van Rossum 1995-08-08 14:10:22 +00:00
parent 08d2071acc
commit 222c8924c1
1 changed files with 32 additions and 1 deletions

View File

@ -410,6 +410,37 @@ mac_stat(self, args)
(long)st.st_ctime);
}
static object *
mac_xstat(self, args)
object *self;
object *args;
{
struct macstat st;
char *path;
int res;
if (!getargs(args, "s", &path))
return NULL;
BGN_SAVE
res = macstat(path, &st);
END_SAVE
if (res != 0)
return mac_error();
return mkvalue("(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)st.st_rsize,
st.st_creator, 4,
st.st_type, 4);
}
static object *
mac_sync(self, args)
object *self;
@ -454,7 +485,6 @@ mac_write(self, args)
}
#endif /* !__MWERKS__ */
#undef MALLOC_DEBUG
#ifdef MALLOC_DEBUG
static object *
mac_mstats(self, args)
@ -492,6 +522,7 @@ static struct methodlist mac_methods[] = {
{"rename", mac_rename},
{"rmdir", mac_rmdir},
{"stat", mac_stat},
{"xstat", mac_xstat},
{"sync", mac_sync},
{"unlink", mac_unlink},
#ifndef CW4