diff --git a/test/ng_xorrisoburn.c b/test/ng_xorrisoburn.c index 21fd371c..fd5a20d5 100644 --- a/test/ng_xorrisoburn.c +++ b/test/ng_xorrisoburn.c @@ -102,9 +102,6 @@ int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag) /* >>> NG How to set severities before isoburn_read_image() ? iso_image_set_msgs_severities() demands an IsoImage -*/ -/* - iso_image_msgs_set_severities(queue_sev, print_sev, "libisofs >>> NG : "); */ burn_msgs_set_severities(queue_sev, print_sev, "libburn : "); @@ -122,6 +119,15 @@ int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag) } +int Xorriso_shutdown_libraries(struct XorrisO *xorriso, int flag) +{ + if(xorriso->libs_are_started==0) + return(0); + isoburn_finish(); + return(1); +} + + /* @param flag bit1= obtain outdrive, else indrive */ int Xorriso_get_drive_handles(struct XorrisO *xorriso, struct burn_drive_info **dinfo, diff --git a/test/ng_xorrisoburn.h b/test/ng_xorrisoburn.h index 39aba229..1fc1acd4 100644 --- a/test/ng_xorrisoburn.h +++ b/test/ng_xorrisoburn.h @@ -19,6 +19,8 @@ struct FindjoB; int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag); +int Xorriso_shutdown_libraries(struct XorrisO *xorriso, int flag); + int Xorriso_create_empty_iso(struct XorrisO *xorriso, int flag); /* @param flag bit0=aquire as isoburn input drive diff --git a/test/xorriso.c b/test/xorriso.c index e2569169..8d98e7eb 100644 --- a/test/xorriso.c +++ b/test/xorriso.c @@ -2957,6 +2957,7 @@ int Xorriso_destroy_re(struct XorrisO *m, int flag) } +/* @param flag bit0= shutdown libraries */ int Xorriso_destroy(struct XorrisO **xorriso, int flag) { struct XorrisO *m; @@ -2964,7 +2965,10 @@ int Xorriso_destroy(struct XorrisO **xorriso, int flag) m= *xorriso; if(m==NULL) return(0); + Xorriso_give_up_drive(m, 3); Xorriso_destroy_re(m,0); + if(flag&1) + Xorriso_shutdown_libraries(m, 0); free((char *) m); *xorriso= NULL; @@ -3450,7 +3454,7 @@ int Xorriso_prepare_regex(struct XorrisO *xorriso, char *adr, int flag) int l,ret,i,count,bonked= 0,is_constant,is_still_relative= 0; char *cpt,*npt,adr_part[2*SfileadrL],absolute_adr[2*SfileadrL],*adr_start,*wd; - if(flag&2) + if(flag&4) wd= xorriso->wdx; else wd= xorriso->wdi; @@ -3535,11 +3539,12 @@ no_regex_available:; if(adr_part[0]==0) goto next_adr_part; - if(adr_part[0]=='.' && adr_part[1]==0 && count>1) + if(adr_part[0]=='.' && adr_part[1]==0 && + (xorriso->re_fill>0 || ire_fill<=0) { + if(xorriso->re_fill<=1) { bonked= 1; goto next_adr_part; } @@ -8923,7 +8928,7 @@ end_sucessfully:; if(xorriso->volset_change_pending) Xorriso_option_end(xorriso, 0); Xorriso_process_msg_queues(xorriso, 0); - Xorriso_destroy(&xorriso,0); + Xorriso_destroy(&xorriso,1); exit(0); } diff --git a/test/xorriso.h b/test/xorriso.h index 5516debc..d00e3810 100644 --- a/test/xorriso.h +++ b/test/xorriso.h @@ -16,6 +16,29 @@ struct XorrisO; +/* --------------------- Fundamental Management ------------------- */ + +/* Create a new xorriso object and tell it the program name to be used + with messages. +*/ +int Xorriso_new(struct XorrisO ** xorriso, char *progname, int flag); + + +/* Make global library initializations. + This must be done with the first xorriso object that gets created and + with the first xorriso object that gets created after Xorriso_destroy(,1). +*/ +int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag); + + +/* Destroy xorriso object when it is no longer needed. + @param flag bit0= Make global librariy shutdown. + Use only with last xorriso object to be destroyed. + +*/ +int Xorriso_destroy(struct XorrisO **xorriso, int flag); + + /* --------------------- Problem Status and Message API ------------------- */ diff --git a/test/xorriso_private.h b/test/xorriso_private.h index b0b6e5b7..df327210 100644 --- a/test/xorriso_private.h +++ b/test/xorriso_private.h @@ -185,8 +185,6 @@ struct XorrisO { /* the global context of xorriso */ }; -int Xorriso_destroy(struct XorrisO **xorriso, int flag); - int Xorriso_prepare_regex(struct XorrisO *xorriso, char *adr, int flag); int Xorriso_result(struct XorrisO *xorriso, int flag); diff --git a/test/xorriso_timestamp.h b/test/xorriso_timestamp.h index 3e753187..ac2a3212 100644 --- a/test/xorriso_timestamp.h +++ b/test/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2008.01.14.224645" +#define Xorriso_timestamP "2008.01.15.174409" diff --git a/test/xorrisoburn.c b/test/xorrisoburn.c index 0ed54f72..32b09dfa 100644 --- a/test/xorrisoburn.c +++ b/test/xorrisoburn.c @@ -101,6 +101,15 @@ int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag) } +int Xorriso_shutdown_libraries(struct XorrisO *xorriso, int flag) +{ + if(xorriso->libs_are_started==0) + return(0); + isoburn_finish(); + return(1); +} + + /* @param flag bit1= obtain outdrive, else indrive */ int Xorriso_get_drive_handles(struct XorrisO *xorriso, struct burn_drive_info **dinfo, @@ -3014,3 +3023,11 @@ int Xorriso_set_volid(struct XorrisO *xorriso, char *volid, int flag) } +int Xorriso_get_volid(struct XorrisO *xorriso, char volid[33], int flag) +{ + /* OG dummy */; + volid[0]= 0; + return(1); +} + + diff --git a/test/xorrisoburn.h b/test/xorrisoburn.h index 01f4e417..83848e61 100644 --- a/test/xorrisoburn.h +++ b/test/xorrisoburn.h @@ -19,6 +19,8 @@ struct FindjoB; int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag); +int Xorriso_shutdown_libraries(struct XorrisO *xorriso, int flag); + int Xorriso_create_empty_iso(struct XorrisO *xorriso, int flag); /* @param flag bit0=aquire as isoburn input drive @@ -129,5 +131,7 @@ int Xorriso_findi(struct XorrisO *xorriso, struct FindjoB *job, int Xorriso_set_volid(struct XorrisO *xorriso, char *volid, int flag); +int Xorriso_get_volid(struct XorrisO *xorriso, char volid[33], int flag); + #endif /* Xorrisoburn_includeD */