dav/system.c

changeset 574
c36eddf167a8
parent 448
3bef733c55b3
child 576
62cc92445234
equal deleted inserted replaced
573:b8f798d240ab 574:c36eddf167a8
89 89
90 int sys_stat(const char *path, SYS_STAT *s) { 90 int sys_stat(const char *path, SYS_STAT *s) {
91 return stat(path, s); 91 return stat(path, s);
92 } 92 }
93 93
94 int sys_lstat(const char *path, SYS_STAT *s) {
95 return lstat(path, s);
96 }
97
94 int sys_rename(const char *oldpath, const char *newpath) { 98 int sys_rename(const char *oldpath, const char *newpath) {
95 return rename(oldpath, newpath); 99 return rename(oldpath, newpath);
96 } 100 }
97 101
98 int sys_unlink(const char *path) { 102 int sys_unlink(const char *path) {
99 return unlink(path); 103 return unlink(path);
100 } 104 }
101 105
102 int sys_mkdir(const char *path) { 106 int sys_mkdir(const char *path) {
103 return mkdir(path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH); 107 return mkdir(path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
108 }
109
110 ssize_t sys_readlink(const char *path, char *buffer, size_t size) {
111 return readlink(path, buffer, size);
104 } 112 }
105 113
106 #else 114 #else
107 /* ---------- Windows implementation ---------- */ 115 /* ---------- Windows implementation ---------- */
108 116
224 int ret = _wstat64(fpath, s); 232 int ret = _wstat64(fpath, s);
225 free(fpath); 233 free(fpath);
226 return ret; 234 return ret;
227 } 235 }
228 236
237 int sys_lstat(const char *path, SYS_STAT *s) {
238 // TODO: fix
239 wchar_t *fpath = path2winpath(path, FALSE, NULL);
240 if(!fpath) {
241 fprintf(stderr, "Cannot convert path \"%s\" to UTF16\n", path);
242 return -1;
243 }
244 int ret = _wstat64(fpath, s);
245 free(fpath);
246 return ret;
247 }
248
229 int sys_rename(const char *oldpath, const char *newpath) { 249 int sys_rename(const char *oldpath, const char *newpath) {
230 wchar_t *o = path2winpath(oldpath, FALSE, NULL); 250 wchar_t *o = path2winpath(oldpath, FALSE, NULL);
231 wchar_t *n = path2winpath(newpath, FALSE, NULL); 251 wchar_t *n = path2winpath(newpath, FALSE, NULL);
232 if(!o || !n) { 252 if(!o || !n) {
233 return -1; 253 return -1;
266 int ret = _wmkdir(wpath); 286 int ret = _wmkdir(wpath);
267 free(wpath); 287 free(wpath);
268 return ret; 288 return ret;
269 } 289 }
270 290
291 ssize_t sys_readlink(const char *path, char *buffer, size_t size) {
292 // TODO
293 fprintf(stderr, "sys_readlink: implement me\n");
294 return 1;
295 }
296
271 #endif 297 #endif

mercurial