New isoburn_igopt_set_extensions() option isoburn_igopt_old_empty

This commit is contained in:
Thomas Schmitt 2011-01-26 13:28:42 +00:00
parent 2ca209fec5
commit f224966e4c
4 changed files with 29 additions and 5 deletions

View File

@ -465,6 +465,7 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
if(opts->hardlinks) if(opts->hardlinks)
iso_write_opts_set_rrip_1_10_px_ino(wopts, 1); iso_write_opts_set_rrip_1_10_px_ino(wopts, 1);
iso_write_opts_set_aaip(wopts, opts->aaip); 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_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_allow_dir_id_ext(wopts, opts->allow_dir_id_ext);
iso_write_opts_set_omit_version_numbers(wopts, opts->omit_version_numbers); 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->iso1999= 0;
o->hardlinks= 0; o->hardlinks= 0;
o->aaip = 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->untranslated_name_len = 0;
o->allow_dir_id_ext = 0; o->allow_dir_id_ext = 0;
o->omit_version_numbers= 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->file_md5= (ext & (128 | 256)) >> 7;
o->no_emul_toc= !!(ext & 512); o->no_emul_toc= !!(ext & 512);
o->will_cancel= !!(ext & 1024); o->will_cancel= !!(ext & 1024);
o->old_empty= !!(ext & 2048);
return(1); 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) | *ext= (!!o->rockridge) | ((!!o->joliet)<<1) | ((!!o->iso1999)<<2) |
((!!o->hardlinks) << 3) | ((!!o->aaip) << 5) | ((!!o->hardlinks) << 3) | ((!!o->aaip) << 5) |
((!!o->session_md5) << 6) | ((o->file_md5 & 3) << 7) | ((!!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); return(1);
} }

View File

@ -2,7 +2,7 @@
/* /*
Class struct of libisoburn. Class struct of libisoburn.
Copyright 2007 - 2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es> Copyright 2007 - 2011 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
and Thomas Schmitt <scdbackup@gmx.net> and Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
*/ */
@ -376,7 +376,7 @@ struct isoburn_imgen_opts {
unsigned int session_md5 :1; unsigned int session_md5 :1;
/* Produce and write MD5 checksums for each single IsoFile. /* 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; unsigned int file_md5 :2;
@ -385,6 +385,13 @@ struct isoburn_imgen_opts {
*/ */
unsigned int no_emul_toc :1; 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 */ /* relaxed constraints */
/* /*

View File

@ -224,7 +224,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/ */
#define isoburn_libisofs_req_major 1 #define isoburn_libisofs_req_major 1
#define isoburn_libisofs_req_minor 0 #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 /** The minimum version of libburn to be used with this version of libisoburn
at compile time. 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 and that the write thread will be cancelled by
isoburn_cancel_prepared_write() before actual image writing isoburn_cancel_prepared_write() before actual image writing
occurs. Without this, cancellation can cause a MISHAP event. 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 @return 1 success, <=0 failure
*/ */
#define isoburn_igopt_rockridge 1 #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_file_stability 256
#define isoburn_igopt_no_emul_toc 512 #define isoburn_igopt_no_emul_toc 512
#define isoburn_igopt_will_cancel 1024 #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_set_extensions(struct isoburn_imgen_opts *o, int ext);
int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);

View File

@ -1 +1 @@
#define Xorriso_timestamP "2011.01.18.154717" #define Xorriso_timestamP "2011.01.26.132843"