--- embedaddon/rsync/syscall.c 2012/02/17 15:09:30 1.1.1.1 +++ embedaddon/rsync/syscall.c 2013/07/22 00:20:21 1.1.1.1.2.1 @@ -217,6 +217,22 @@ void trim_trailing_slashes(char *name) } } +int do_mkdir_path(char *fname, mode_t mode) +{ + char fnametmp[MAXPATHLEN], *fnametmpptr; + STRUCT_STAT st; + + if (fname) { + strcpy(fnametmp, fname); + if ((fnametmpptr = strrchr(fnametmp, '/')) != NULL) { + *fnametmpptr = '\0'; + if (do_stat(fnametmp, &st) < 0) + do_mkdir_path(fnametmp, mode); + } + } + return do_mkdir(fname, mode); +} + int do_mkdir(char *fname, mode_t mode) { if (dry_run) return 0;