87 |
87 |
88 int sys_rename(const char *oldpath, const char *newpath) { |
88 int sys_rename(const char *oldpath, const char *newpath) { |
89 return rename(oldpath, newpath); |
89 return rename(oldpath, newpath); |
90 } |
90 } |
91 |
91 |
|
92 int sys_unlink(const char *path) { |
|
93 return unlink(path); |
|
94 } |
|
95 |
|
96 int sys_mkdir(const char *path) { |
|
97 return mkdir(path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH); |
92 |
98 |
93 #else |
99 #else |
94 /* ---------- Windows implementation ---------- */ |
100 /* ---------- Windows implementation ---------- */ |
95 |
101 |
96 static wchar_t* path2winpath(const char *path, int dir, int *newlen) { |
102 static wchar_t* path2winpath(const char *path, int dir, int *newlen) { |
213 return ret; |
219 return ret; |
214 } |
220 } |
215 |
221 |
216 int sys_rename(const char *oldpath, const char *newpath) { |
222 int sys_rename(const char *oldpath, const char *newpath) { |
217 wchar_t *o = path2winpath(oldpath, FALSE, NULL); |
223 wchar_t *o = path2winpath(oldpath, FALSE, NULL); |
218 wchara_t *n = path2winpath(newpath, FALSE, NULL); |
224 wchar_t *n = path2winpath(newpath, FALSE, NULL); |
219 if(!o || !n) { |
225 if(!o || !n) { |
220 return -1; |
226 return -1; |
221 } |
227 } |
222 |
228 |
223 struct __stat64 s; |
229 struct __stat64 s; |
231 free(o); |
237 free(o); |
232 free(n); |
238 free(n); |
233 return ret; |
239 return ret; |
234 } |
240 } |
235 |
241 |
|
242 int sys_unlink(const char *path) { |
|
243 wchar_t *wpath = path2winpath(path, FALSE, NULL); |
|
244 if(!wpath) { |
|
245 fprintf(stderr, "sys_unlink: cannot convert path\n"); |
|
246 return -1; |
|
247 } |
|
248 int ret = _wunlink(wpath); |
|
249 free(wpath); |
|
250 return ret; |
|
251 } |
|
252 |
|
253 int sys_mkdir(const char *path) { |
|
254 wchar_t *wpath = path2winpath(path, FALSE, NULL); |
|
255 if(!wpath) { |
|
256 fprintf(stderr, "sys_mkdir: cannot convert path\n"); |
|
257 return -1; |
|
258 } |
|
259 int ret = _wmkdir(wpath); |
|
260 free(wpath); |
|
261 return ret; |
|
262 } |
|
263 |
236 #endif |
264 #endif |