diff --git a/libisoburn/isoburn.c b/libisoburn/isoburn.c index f7919bfb..4f15c569 100644 --- a/libisoburn/isoburn.c +++ b/libisoburn/isoburn.c @@ -465,6 +465,7 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d, if(opts->hardlinks) iso_write_opts_set_rrip_1_10_px_ino(wopts, 1); iso_write_opts_set_aaip(wopts, opts->aaip); + iso_write_opts_set_high_empty_address(wopts, !opts->old_empty); iso_write_opts_set_untranslated_name_len(wopts, opts->untranslated_name_len); iso_write_opts_set_allow_dir_id_ext(wopts, opts->allow_dir_id_ext); iso_write_opts_set_omit_version_numbers(wopts, opts->omit_version_numbers); @@ -934,6 +935,10 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag) o->iso1999= 0; o->hardlinks= 0; o->aaip = 0; + o->session_md5= 0; + o->file_md5= 0; + o->no_emul_toc= 0; + o->old_empty= 0; o->untranslated_name_len = 0; o->allow_dir_id_ext = 0; o->omit_version_numbers= 0; @@ -1020,6 +1025,7 @@ int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext) o->file_md5= (ext & (128 | 256)) >> 7; o->no_emul_toc= !!(ext & 512); o->will_cancel= !!(ext & 1024); + o->old_empty= !!(ext & 2048); return(1); } @@ -1029,7 +1035,8 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext) *ext= (!!o->rockridge) | ((!!o->joliet)<<1) | ((!!o->iso1999)<<2) | ((!!o->hardlinks) << 3) | ((!!o->aaip) << 5) | ((!!o->session_md5) << 6) | ((o->file_md5 & 3) << 7) | - ((!!o->no_emul_toc) << 9) | ((o->will_cancel) << 10); + ((!!o->no_emul_toc) << 9) | ((o->will_cancel) << 10) | + ((!!o->old_empty) << 11); return(1); } diff --git a/libisoburn/isoburn.h b/libisoburn/isoburn.h index cc9951c9..51124c63 100644 --- a/libisoburn/isoburn.h +++ b/libisoburn/isoburn.h @@ -2,7 +2,7 @@ /* Class struct of libisoburn. - Copyright 2007 - 2010 Vreixo Formoso Lopes + Copyright 2007 - 2011 Vreixo Formoso Lopes and Thomas Schmitt Provided under GPL version 2 or later. */ @@ -376,7 +376,7 @@ struct isoburn_imgen_opts { unsigned int session_md5 :1; /* Produce and write MD5 checksums for each single IsoFile. - See parameter files of iso_write_opts_set_record_md5(). + See parameter "files" of iso_write_opts_set_record_md5(). */ unsigned int file_md5 :2; @@ -385,6 +385,13 @@ struct isoburn_imgen_opts { */ unsigned int no_emul_toc :1; + /* For empty files, symbolic links, and devices use the old ECMA-119 block + addresses in the range [0,31] rather than the address of the dedicated + empty block. + */ + unsigned int old_empty :1; + + /* relaxed constraints */ /* diff --git a/libisoburn/libisoburn.h b/libisoburn/libisoburn.h index 6974bfc5..6737a88c 100644 --- a/libisoburn/libisoburn.h +++ b/libisoburn/libisoburn.h @@ -224,7 +224,7 @@ void isoburn_version(int *major, int *minor, int *micro); */ #define isoburn_libisofs_req_major 1 #define isoburn_libisofs_req_minor 0 -#define isoburn_libisofs_req_micro 0 +#define isoburn_libisofs_req_micro 1 /** The minimum version of libburn to be used with this version of libisoburn at compile time. @@ -1006,6 +1006,15 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level); and that the write thread will be cancelled by isoburn_cancel_prepared_write() before actual image writing occurs. Without this, cancellation can cause a MISHAP event. + bit11= old_empty + @since 1.0.2 + Let symbolic links and device files point to block 0, and let + empty data files point to the address of the Volume Descriptor + Set Terminator. This was done by libisofs in the past. + By default there is now a single dedicated block of zero bytes + after the end of the directory trees, of which the address + is used for all files without own content. + @return 1 success, <=0 failure */ #define isoburn_igopt_rockridge 1 @@ -1018,6 +1027,7 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level); #define isoburn_igopt_file_stability 256 #define isoburn_igopt_no_emul_toc 512 #define isoburn_igopt_will_cancel 1024 +#define isoburn_igopt_old_empty 2048 int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext); int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index dcb95de9..c75a4e42 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2011.01.18.154717" +#define Xorriso_timestamP "2011.01.26.132843"