Better handling of disk to iso address mapping during compare runs

This commit is contained in:
Thomas Schmitt 2008-02-28 21:54:20 +00:00
parent 2d73d52f7a
commit c41d072448
2 changed files with 17 additions and 1 deletions

View File

@ -4453,8 +4453,16 @@ int Xorriso_find_compare(struct XorrisO *xorriso, char *iso_path,
if(strlen(disk_prefix)+strlen(iso_path)-strlen(iso_prefix)>=SfileadrL) if(strlen(disk_prefix)+strlen(iso_path)-strlen(iso_prefix)>=SfileadrL)
return(-1); return(-1);
strcpy(adrc, iso_path+strlen(iso_prefix)); strcpy(adrc, iso_path+strlen(iso_prefix));
#ifdef NIX
sprintf(disk_path, "%s%s%s", sprintf(disk_path, "%s%s%s",
disk_prefix, (adrc[0]=='/' || adrc[0]==0 ? "" : "/"), adrc); disk_prefix, (adrc[0]=='/' || adrc[0]==0 ? "" : "/"), adrc);
#else
ret= Xorriso_make_abs_adr(xorriso, disk_prefix, adrc, disk_path, 4|8);
if(ret<=0)
return(ret);
#endif
ret= Xorriso_compare_2_files(xorriso, disk_path, iso_path, adrc, 2|(1<<29)); ret= Xorriso_compare_2_files(xorriso, disk_path, iso_path, adrc, 2|(1<<29));
if(ret<xorriso->find_compare_result) if(ret<xorriso->find_compare_result)
xorriso->find_compare_result= ret; xorriso->find_compare_result= ret;
@ -6058,9 +6066,17 @@ int Xorriso_findx_action(struct XorrisO *xorriso, struct FindjoB *job,
dpl= strlen(disk_prefix); dpl= strlen(disk_prefix);
if(strlen(target)+strlen(abs_path)-dpl >= SfileadrL) if(strlen(target)+strlen(abs_path)-dpl >= SfileadrL)
return(-1); return(-1);
#ifdef NIX
sprintf(iso_path, "%s%s%s", sprintf(iso_path, "%s%s%s",
target, (abs_path[dpl] =='/' || abs_path[dpl]==0 ? "" : "/"), target, (abs_path[dpl] =='/' || abs_path[dpl]==0 ? "" : "/"),
abs_path+dpl); abs_path+dpl);
#else
ret= Xorriso_make_abs_adr(xorriso, target, abs_path+dpl, iso_path, 4);
if(ret<=0)
return(ret);
#endif
} }
if(action==15) { if(action==15) {
ret= Xorriso_iso_lstat(xorriso, iso_path, &stbuf, 0); ret= Xorriso_iso_lstat(xorriso, iso_path, &stbuf, 0);

View File

@ -1 +1 @@
#define Xorriso_timestamP "2008.02.28.212210" #define Xorriso_timestamP "2008.02.28.215343"