From 08a65a6c919b9a82311adc03ad668f31cdcd4297 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 15 Oct 2007 22:40:39 +0000 Subject: [PATCH] Implemented -rollback --- libisoburn/trunk/test/xorriso.c | 25 +++++++++-------------- libisoburn/trunk/test/xorriso_timestamp.h | 2 +- libisoburn/trunk/test/xorrisoburn.c | 2 ++ 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/libisoburn/trunk/test/xorriso.c b/libisoburn/trunk/test/xorriso.c index 488c32c0..a3641b3a 100644 --- a/libisoburn/trunk/test/xorriso.c +++ b/libisoburn/trunk/test/xorriso.c @@ -2967,18 +2967,6 @@ int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv, if(ret<=0) goto ex; } - -#ifdef No_morE - /* now done in Xorriso_graft_in */ - - l= strlen(target); - while(l>1) /* >>> ??? >0 ? */ - if(target[l-1]=='/') - target[--l]= 0; - else - break; -#endif /* <<< */ - if(source[0]!='/') { ret= Sfile_prepend_path(xorriso->wdx, source, 0); if(ret<=0) @@ -4079,10 +4067,17 @@ int Xorriso_option_reassure(struct XorrisO *xorriso, char *mode, int flag) /* Option -rollback */ int Xorriso_option_rollback(struct XorrisO *xorriso, int flag) { + int ret; + char indev[SfileadrL]; - fprintf(stderr, ">>> LIBISOBURN : -rollback\n"); - - return(1); + if(Sfile_str(indev, xorriso->indev, 0)<=0) + return(-1); + ret= Xorriso_give_up_drive(xorriso, 1); + if(ret<=0) + return(ret); + ret= Xorriso_option_dev(xorriso, indev, + 1|((xorriso->out_drive_handle==NULL)<<1)); + return(ret); } diff --git a/libisoburn/trunk/test/xorriso_timestamp.h b/libisoburn/trunk/test/xorriso_timestamp.h index 1f318ca0..64ebc00f 100644 --- a/libisoburn/trunk/test/xorriso_timestamp.h +++ b/libisoburn/trunk/test/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2007.10.15.203714" +#define Xorriso_timestamP "2007.10.15.224005" diff --git a/libisoburn/trunk/test/xorrisoburn.c b/libisoburn/trunk/test/xorrisoburn.c index fac37c6b..e56d0413 100644 --- a/libisoburn/trunk/test/xorrisoburn.c +++ b/libisoburn/trunk/test/xorrisoburn.c @@ -174,6 +174,7 @@ int Xorriso_give_up_drive(struct XorrisO *xorriso, int flag) struct isoburn. Then to be processed by: iso_volset_free(volset); */ xorriso->in_volset_handle= NULL; /* destroyed by isoburn_drive_release() */ + xorriso->volset_change_pending= 0; burn_drive_info_free(dinfo); xorriso->in_drive_handle= NULL; @@ -191,6 +192,7 @@ int Xorriso_give_up_drive(struct XorrisO *xorriso, int flag) return(1); } + int Xorriso_write_growing(struct XorrisO *xorriso, int flag) { int ret;