Subversion Repositories Kolibri OS

Rev

Rev 4921 | Rev 5369 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4921 Rev 5215
Line 24... Line 24...
24
_DEFUN (fstat, (fd, buf),
24
_DEFUN (fstat, (fd, buf),
25
       int fd _AND
25
       int fd _AND
26
       struct stat *buf)
26
       struct stat *buf)
27
{
27
{
28
    fileinfo_t info;
28
    fileinfo_t info;
-
 
29
    struct tm time;
-
 
30
 
29
    __io_handle *ioh;
31
    __io_handle *ioh;
Line 30... Line 32...
30
 
32
 
31
    if( (fd < 0) || (fd >=64) )
33
    if( (fd < 0) || (fd >=64) )
32
    {
34
    {
Line 45... Line 47...
45
    {
47
    {
Line 46... Line 48...
46
 
48
 
47
        ioh = &__io_tab[fd];
49
        ioh = &__io_tab[fd];
Line -... Line 50...
-
 
50
        get_fileinfo(ioh->name, &info);
48
        get_fileinfo(ioh->name, &info);
51
 
-
 
52
        if (info.attr & 0x10)
-
 
53
            buf->st_mode = S_IFDIR;
-
 
54
        else
-
 
55
        {
-
 
56
            if (info.attr & 0x07)
-
 
57
                buf->st_mode = S_IFREG|S_IRUSR|S_IXUSR;
-
 
58
            else
49
 
59
                buf->st_mode = S_IFREG|S_IRUSR|S_IWUSR|S_IXUSR;
-
 
60
        }
-
 
61
        buf->st_blksize = 4096;
-
 
62
 
-
 
63
        time.tm_sec   = info.atime.sec;
-
 
64
        time.tm_min   = info.atime.min;
-
 
65
        time.tm_hour  = info.atime.hour;
-
 
66
        time.tm_mday  = info.adate.day;
-
 
67
        time.tm_mon   = info.adate.month;
50
        buf->st_mode = S_IFREG;
68
        time.tm_year  = info.adate.year - 1900;
-
 
69
        time.tm_isdst = -1;
-
 
70
        buf->st_atime = mktime(&time);
-
 
71
 
-
 
72
        time.tm_sec   = info.ctime.sec;
-
 
73
        time.tm_min   = info.ctime.min;
-
 
74
        time.tm_hour  = info.ctime.hour;
-
 
75
        time.tm_mday  = info.cdate.day;
-
 
76
        time.tm_mon   = info.cdate.month;
-
 
77
        time.tm_year  = info.cdate.year - 1900;
-
 
78
        time.tm_isdst = -1;
-
 
79
        buf->st_ctime = mktime(&time);
-
 
80
 
-
 
81
        time.tm_sec   = info.mtime.sec;
-
 
82
        time.tm_min   = info.mtime.min;
-
 
83
        time.tm_hour  = info.mtime.hour;
-
 
84
        time.tm_mday  = info.mdate.day;
-
 
85
        time.tm_mon   = info.mdate.month;
-
 
86
        time.tm_year  = info.mdate.year - 1900;
-
 
87
        time.tm_isdst = -1;
51
        buf->st_blksize = 4096;
88
        buf->st_mtime = mktime(&time);
Line 52... Line 89...
52
        buf->st_size = info.size;
89
 
53
    };
90
    };