- /* Make the directories */
- while ((p=strchr(p,'/'))) {
- *p = 0;
- if(do_lstat(fullpath,&st)!=0) {
- do_mkdir(fullpath,0777 & ~orig_umask);
- if(p>q) {
- if(do_lstat(q,&st)!=0) {
- rprintf(FERROR,"make_bak_dir stat %s : %s\n",fullpath,strerror(errno));
- } else {
- st2=&st;
- set_modtime(fullpath,st2->st_mtime);
- if(do_lchown(fullpath,st2->st_uid,st2->st_gid)!=0) {
- rprintf(FERROR,"make_bak_dir chown %s : %s\n",fullpath,strerror(errno));
- };
- if(do_chmod(fullpath,st2->st_mode)!=0) {
- rprintf(FERROR,"make_bak_dir failed to set permissions on %s : %s\n",fullpath,strerror(errno));
- };
- };
- }
- };
- *p = '/';
- p++;
- }
- return 0;