dav/sync.c

changeset 55
4cb389452a44
parent 54
fc34bd28a22a
child 56
99f7816fcf01
equal deleted inserted replaced
54:fc34bd28a22a 55:4cb389452a44
439 DIR *local_dir = opendir(local_path); 439 DIR *local_dir = opendir(local_path);
440 440
441 if(!local_dir) { 441 if(!local_dir) {
442 fprintf(stderr, "Cannot open directory %s\n", local_path); 442 fprintf(stderr, "Cannot open directory %s\n", local_path);
443 } else { 443 } else {
444 #ifdef _WIN32 444 struct dirent *ent;
445 long namemax = 255; 445 while((ent = readdir(local_dir)) != NULL) {
446 #else
447 long namemax = namemax = pathconf(path, _PC_NAME_MAX);
448 #endif
449 if(namemax == 0) {
450 namemax = 255;
451 }
452 struct dirent *ent = malloc(sizeof(struct dirent) + namemax + 1);
453 struct dirent *res = NULL;
454 while(!readdir_r(local_dir, ent, &res) && res) {
455 if(!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) { 446 if(!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) {
456 continue; 447 continue;
457 } 448 }
458 449
459 char *new_path = util_concat_path(p, ent->d_name); 450 char *new_path = util_concat_path(p, ent->d_name);
467 } else { 458 } else {
468 free(new_path); 459 free(new_path);
469 } 460 }
470 } 461 }
471 closedir(local_dir); 462 closedir(local_dir);
472 free(ent); 463
473 } 464 }
474 free(local_path); 465 free(local_path);
475 free(p); 466 free(p);
476 } 467 }
477 468

mercurial