- if (statret != 0 && mkdir(fname,file->mode) != 0 && errno != EEXIST)
- fprintf(FERROR,"mkdir %s : %s\n",fname,strerror(errno));
+ if (statret != 0 && mkdir(fname,file->mode) != 0 && errno != EEXIST) {
+ if (!(relative_paths && errno==ENOENT &&
+ create_directory_path(fname)==0 &&
+ mkdir(fname,file->mode)==0)) {
+ fprintf(FERROR,"mkdir %s : %s (2)\n",
+ fname,strerror(errno));
+ }
+ }