Corrections about restoring of directories

This commit is contained in:
Thomas Schmitt 2008-06-12 11:26:31 +00:00
parent 24ad7e5abe
commit 0d407b63ad
4 changed files with 10 additions and 7 deletions

View File

@ -2,7 +2,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Jun, 11, 2008"
.TH XORRISO 1 "Jun, 12, 2008"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -1661,8 +1661,11 @@ ownership and group as in ISO image.
\fB\-cp_rx\fR iso_rr_path [***] disk_path
Like -cpx but also extracting whole directory trees from the ISO image.
.br
The resulting disk paths are determined as with shell command cp -r :
If disk_path is an existing directory then the trees will be inserted
underneath this directory and will keep their leaf names.
underneath this directory and will keep their leaf names. The ISO directory "/"
has no leaf name and thus gets mapped directly to disk_path.
.br
If directories do already exist under disk_path then their content
eventually gets merged with the content of restored directories
of the same name. Directory attributes get extracted only if the disk

View File

@ -8799,7 +8799,7 @@ int Xorriso_option_cpx(struct XorrisO *xorriso, int argc, char **argv,
Xorriso_pacifier_reset(xorriso, 0);
for(i= 0; i<optc && !xorriso->request_to_abort; i++) {
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, optv[i], eff_origin,
2);
2|8);
if(ret<=0 || xorriso->request_to_abort)
goto problem_handler;
@ -8821,7 +8821,7 @@ int Xorriso_option_cpx(struct XorrisO *xorriso, int argc, char **argv,
}
}
if(is_dir) {
if(is_dir && strcmp(eff_origin, "/")!=0) {
ret= Sfile_leafname(eff_origin, leafname, 0);
if(ret<=0)
goto problem_handler;

View File

@ -1 +1 @@
#define Xorriso_timestamP "2008.06.11.131607"
#define Xorriso_timestamP "2008.06.12.112644"

View File

@ -2836,7 +2836,7 @@ int Xorriso_handle_collision(struct XorrisO *xorriso,
} else {
target_is_dir= S_ISDIR(target_stbuf.st_mode);
}
if(target_is_dir && (!target_is_link) && !(flag&2)) {
if(target_is_dir && (!target_is_link) && !(flag&1)) {
strcpy(xorriso->info_text, "Attempt to replace DISK directory ");
Text_shellsafe(nominal_disk_path,
xorriso->info_text+strlen(xorriso->info_text), 0);
@ -2962,7 +2962,7 @@ much_too_long:;
name= img_path+strlen(img_path);
if(Sfile_str(disk_path, disk_dir_path, 0)<=0)
goto much_too_long;
if(disk_path[0] || disk_path[strlen(disk_path)-1]!='/')
if(disk_path[0]==0 || disk_path[strlen(disk_path)-1]!='/')
strcat(disk_path,"/");
disk_name= disk_path+strlen(disk_path);