static naRef f_open(naContext c, naRef me, int argc, naRef* args)
{
FILE* f;
static naRef f_open(naContext c, naRef me, int argc, naRef* args)
{
FILE* f;
// frees buffer before tossing an error
static int getcguard(naContext ctx, FILE* f, void* buf)
// frees buffer before tossing an error
static int getcguard(naContext ctx, FILE* f, void* buf)
#ifdef _MSC_VER
#define S_ISREG(m) (((m)&_S_IFMT)==_S_IFREG)
#define S_ISDIR(m) (((m)&_S_IFMT)==_S_IFDIR)
#define S_ISCHR(m) (((m)&_S_IFMT)==_S_IFCHR)
#define S_ISFIFO(m) (((m)&_S_IFMT)==_S_IFIFO)
#define S_ISBLK(m) 0
#ifdef _MSC_VER
#define S_ISREG(m) (((m)&_S_IFMT)==_S_IFREG)
#define S_ISDIR(m) (((m)&_S_IFMT)==_S_IFDIR)
#define S_ISCHR(m) (((m)&_S_IFMT)==_S_IFCHR)
#define S_ISFIFO(m) (((m)&_S_IFMT)==_S_IFIFO)
#define S_ISBLK(m) 0
typedef unsigned short mode_t;
#endif
static naRef ftype(naContext ctx, mode_t m)
typedef unsigned short mode_t;
#endif
static naRef ftype(naContext ctx, mode_t m)
naRuntimeError(ctx, strerror(errno));
}
result = naNewVector(ctx);
naRuntimeError(ctx, strerror(errno));
}
result = naNewVector(ctx);
#define FLD(x) naVec_set(result, n++, naNum(s.st_##x));
FLD(dev); FLD(ino); FLD(mode); FLD(nlink); FLD(uid); FLD(gid);
FLD(rdev); FLD(size); FLD(atime); FLD(mtime); FLD(ctime);
#define FLD(x) naVec_set(result, n++, naNum(s.st_##x));
FLD(dev); FLD(ino); FLD(mode); FLD(nlink); FLD(uid); FLD(gid);
FLD(rdev); FLD(size); FLD(atime); FLD(mtime); FLD(ctime);