From 803062692d9db5cb3a818280d7d3a98df6f1dbe2 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 28 Feb 2008 21:54:20 +0000 Subject: [PATCH] Better handling of disk to iso address mapping during compare runs --- libisoburn/trunk/xorriso/xorriso.c | 16 ++++++++++++++++ libisoburn/trunk/xorriso/xorriso_timestamp.h | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/libisoburn/trunk/xorriso/xorriso.c b/libisoburn/trunk/xorriso/xorriso.c index f6a5fdf3..d989f209 100644 --- a/libisoburn/trunk/xorriso/xorriso.c +++ b/libisoburn/trunk/xorriso/xorriso.c @@ -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) return(-1); strcpy(adrc, iso_path+strlen(iso_prefix)); + +#ifdef NIX sprintf(disk_path, "%s%s%s", 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)); if(retfind_compare_result) xorriso->find_compare_result= ret; @@ -6058,9 +6066,17 @@ int Xorriso_findx_action(struct XorrisO *xorriso, struct FindjoB *job, dpl= strlen(disk_prefix); if(strlen(target)+strlen(abs_path)-dpl >= SfileadrL) return(-1); + +#ifdef NIX sprintf(iso_path, "%s%s%s", target, (abs_path[dpl] =='/' || abs_path[dpl]==0 ? "" : "/"), 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) { ret= Xorriso_iso_lstat(xorriso, iso_path, &stbuf, 0); diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index 51af34af..d9308a4c 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2008.02.28.212210" +#define Xorriso_timestamP "2008.02.28.215343"