Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5141 → Rev 5215

/contrib/sdk/sources/newlib/libc/sys/stat.c
13,7 → 13,10
* they apply.
*/
#include <sys/stat.h>
#include <sys/kos_io.h>
#include <errno.h>
#include <time.h>
#include <string.h>
#include "glue.h"
 
/*
24,7 → 27,68
const char *path _AND
struct stat *buf)
{
errno = EIO;
 
fileinfo_t info;
struct tm time;
 
if( get_fileinfo(path, &info))
{
errno = ENOENT;
return (-1);
};
 
memset (buf, 0, sizeof (* buf));
 
buf->st_size = info.size;
 
if (info.attr & 0x10)
buf->st_mode = S_IFDIR;
else
{
if (info.attr & 0x07)
buf->st_mode = S_IFREG|S_IRUSR|S_IXUSR;
else
buf->st_mode = S_IFREG|S_IRUSR|S_IWUSR|S_IXUSR;
}
 
buf->st_blksize = 4096;
 
time.tm_sec = info.atime.sec;
time.tm_min = info.atime.min;
time.tm_hour = info.atime.hour;
time.tm_mday = info.adate.day;
time.tm_mon = info.adate.month;
time.tm_year = info.adate.year - 1900;
time.tm_isdst = -1;
buf->st_atime = mktime(&time);
 
time.tm_sec = info.ctime.sec;
time.tm_min = info.ctime.min;
time.tm_hour = info.ctime.hour;
time.tm_mday = info.cdate.day;
time.tm_mon = info.cdate.month;
time.tm_year = info.cdate.year - 1900;
time.tm_isdst = -1;
buf->st_ctime = mktime(&time);
 
time.tm_sec = info.mtime.sec;
time.tm_min = info.mtime.min;
time.tm_hour = info.mtime.hour;
time.tm_mday = info.mdate.day;
time.tm_mon = info.mdate.month;
time.tm_year = info.mdate.year - 1900;
time.tm_isdst = -1;
buf->st_mtime = mktime(&time);
 
return (0);
}
 
 
int
_DEFUN (lstat, (path, buf),
const char *path _AND
struct stat *buf)
{
return stat(path, buf);
}