diff options
Diffstat (limited to 'uisimulator/common')
-rw-r--r-- | uisimulator/common/io.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/uisimulator/common/io.c b/uisimulator/common/io.c index b03dc01a64..c74629fb18 100644 --- a/uisimulator/common/io.c +++ b/uisimulator/common/io.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <string.h> | 22 | #include <string.h> |
23 | #include <stdarg.h> | 23 | #include <stdarg.h> |
24 | #include <sys/stat.h> | 24 | #include <sys/stat.h> |
25 | #include <sys/time.h> | ||
25 | #ifdef __FreeBSD__ | 26 | #ifdef __FreeBSD__ |
26 | #include <sys/param.h> | 27 | #include <sys/param.h> |
27 | #include <sys/mount.h> | 28 | #include <sys/mount.h> |
@@ -136,6 +137,7 @@ struct sim_dirent *sim_readdir(MYDIR *dir) | |||
136 | static struct sim_dirent secret; | 137 | static struct sim_dirent secret; |
137 | struct stat s; | 138 | struct stat s; |
138 | struct dirent *x11 = (readdir)(dir->dir); | 139 | struct dirent *x11 = (readdir)(dir->dir); |
140 | struct tm* tm; | ||
139 | 141 | ||
140 | if(!x11) | 142 | if(!x11) |
141 | return (struct sim_dirent *)0; | 143 | return (struct sim_dirent *)0; |
@@ -155,9 +157,14 @@ struct sim_dirent *sim_readdir(MYDIR *dir) | |||
155 | 157 | ||
156 | secret.attribute = S_ISDIR(s.st_mode)?ATTR_DIRECTORY:0; | 158 | secret.attribute = S_ISDIR(s.st_mode)?ATTR_DIRECTORY:0; |
157 | secret.size = s.st_size; | 159 | secret.size = s.st_size; |
158 | secret.wrtdate = (unsigned short)(s.st_mtime >> 16); | ||
159 | secret.wrttime = (unsigned short)(s.st_mtime & 0xFFFF); | ||
160 | 160 | ||
161 | tm = localtime(&(s.st_mtime)); | ||
162 | secret.wrtdate = ((tm->tm_year - 80) << 9) | | ||
163 | ((tm->tm_mon + 1) << 5) | | ||
164 | tm->tm_mday; | ||
165 | secret.wrttime = (tm->tm_hour << 11) | | ||
166 | (tm->tm_min << 5) | | ||
167 | (tm->tm_sec >> 1); | ||
161 | return &secret; | 168 | return &secret; |
162 | } | 169 | } |
163 | 170 | ||