Rev 9952 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9952 | Rev 9954 | ||
---|---|---|---|
Line 25... | Line 25... | ||
25 | int |
25 | int |
26 | _DEFUN (stat, (path, buf), |
26 | _DEFUN (stat, (path, buf), |
27 | const char *path _AND |
27 | const char *path _AND |
28 | struct stat *buf) |
28 | struct stat *buf) |
29 | { |
29 | { |
30 | - | ||
31 | ksys_file_info_t info; |
30 | ksys_file_info_t info; |
32 | struct tm time; |
31 | struct tm time; |
Line 33... | Line 32... | ||
33 | 32 | ||
34 | if (_ksys_file_info(path, &info)) |
33 | if (_ksys_file_info(path, &info)) |
Line 39... | Line 38... | ||
39 | 38 | ||
Line 40... | Line 39... | ||
40 | memset(buf, 0, sizeof (*buf)); |
39 | memset(buf, 0, sizeof (*buf)); |
Line 41... | Line 40... | ||
41 | 40 | ||
42 | buf->st_size = info.size; |
41 | buf->st_size = info.size; |
43 | 42 | ||
44 | if (info.attr & 0x10) |
43 | if (info.attr & (KSYS_FILE_ATTR_DIR | KSYS_FILE_ATTR_VOL_LABEL)) |
45 | buf->st_mode = S_IFDIR; |
44 | buf->st_mode = S_IFDIR; |
46 | else |
45 | else |
47 | { |
46 | { |
48 | if (info.attr & 0x07) |
47 | if (info.attr & (KSYS_FILE_ATTR_SYS | KSYS_FILE_ATTR_HIDDEN | KSYS_FILE_ATTR_RO)) |
49 | buf->st_mode = S_IFREG|S_IRUSR|S_IXUSR; |
48 | buf->st_mode = S_IFREG|S_IRUSR|S_IXUSR; |