/*
Usage:  X = new stat (<filepath>)
        X->size()
        X->attr()
        X->filetype()
        X->date_lo()
        X->date_hi()
*/

#ifndef _io_stat
#define _io_stat 1
#endif

class stat { namebuf; r; }

stat::stat (name)
{
 namebuf = newstring (256);
 in namebuf put {name;};
 namebuf[sizeof(name)] = 0;
 r = newvector (8);
 return this;
}

stat::size (name)
{
 r[0] = 23;
 r[1] = @(namebuf);
 swi(8,r); //OS_File
 return r[0]?r[4]:nil;
}

stat::attr (name)
{
 r[0] = 23;
 r[1] = @(namebuf);
 swi(8,r); //OS_File
 return r[0]?r[5]:nil;
}

stat::date_lo (name)
{
 r[0] = 23;
 r[1] = @(namebuf);
 swi(8,r); //OS_File
 return r[0]?r[3]:nil;
}

stat::date_hi (name)
{
 r[0] = 23;
 r[1] = @(namebuf);
 swi(8,r); //OS_File
 return r[0]?r[5]:nil;
}


stat::filetype()
{
 r[0] = 23;
 r[1] = @(namebuf);
 swi(8,r); //OS_File
 return r[0]?(&fff & r[6]):nil;
}

