summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--uisimulator/common/io.c11
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