2331 } |
2331 } |
2332 |
2332 |
2333 static int isfileindir(SyncDirectory *dir, const char *path, SyncFile *f) { |
2333 static int isfileindir(SyncDirectory *dir, const char *path, SyncFile *f) { |
2334 char *fullpath; |
2334 char *fullpath; |
2335 if(path[0] != '/') { |
2335 if(path[0] != '/') { |
2336 size_t wdlen = 1024; |
2336 size_t wdlen = 256; |
2337 char *wd = malloc(1024); |
2337 char *wd = malloc(wdlen); |
2338 while(!getcwd(wd, wdlen)) { |
2338 while(!getcwd(wd, wdlen)) { |
2339 if(errno == ERANGE) { |
2339 if(errno == ERANGE) { |
2340 wdlen *= 2; |
2340 wdlen *= 2; |
2341 wd = realloc(wd, wdlen); |
2341 char *newbuf = realloc(wd, wdlen); |
|
2342 if (newbuf) { |
|
2343 wd = newbuf; |
|
2344 } else { |
|
2345 free(wd); |
|
2346 return 0; |
|
2347 } |
2342 } else { |
2348 } else { |
2343 free(wd); |
2349 free(wd); |
2344 return 0; |
2350 return 0; |
2345 } |
2351 } |
2346 } |
2352 } |
2347 |
2353 |
2348 fullpath = util_concat_path(wd, path); |
2354 fullpath = util_concat_path(wd, path); |
|
2355 free(wd); |
2349 } else { |
2356 } else { |
2350 fullpath = strdup(path); |
2357 fullpath = strdup(path); |
2351 } |
2358 } |
2352 |
2359 |
2353 // TODO: normalize path |
2360 // TODO: normalize path |