From 0ee26b66c2271f97ed0baa3a173b88335f6786ff Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sat, 14 Jan 2012 14:42:33 +0000 Subject: [PATCH] New relaxations isoburn_igopt_joliet_rec_mtime, isoburn_igopt_iso1999_rec_mtime --- configure.ac | 4 ++-- libisoburn/isoburn.c | 21 +++++++++++++++++---- libisoburn/isoburn.h | 5 ++++- libisoburn/libisoburn.h | 14 +++++++++++--- xorriso/xorriso_timestamp.h | 2 +- 5 files changed, 35 insertions(+), 11 deletions(-) diff --git a/configure.ac b/configure.ac index bc8787b2..d901c0d0 100644 --- a/configure.ac +++ b/configure.ac @@ -321,8 +321,8 @@ if test x$enable_pkg_check_modules = xyes; then dnl If PKG_CHECK_MODULES is to be used after this if-block, dnl then it might be necessary to perform PKG_PROG_PKG_CONFIG before the block. - LIBBURN_REQUIRED=1.1.8 - LIBISOFS_REQUIRED=1.1.6 + LIBBURN_REQUIRED=1.1.9 + LIBISOFS_REQUIRED=1.1.7 PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED) PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED) if test x$LIBCDIO_DEF = x; then diff --git a/libisoburn/isoburn.c b/libisoburn/isoburn.c index 1722d8b0..505b6a0b 100644 --- a/libisoburn/isoburn.c +++ b/libisoburn/isoburn.c @@ -6,7 +6,7 @@ /* Class core of libisoburn. - Copyright 2007 - 2010 Vreixo Formoso Lopes + Copyright 2007 - 2012 Vreixo Formoso Lopes Thomas Schmitt Provided under GPL version 2 or later. @@ -403,7 +403,7 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d, struct isoburn *in_o, *out_o; IsoWriteOpts *wopts= NULL; enum burn_disc_status state; - int ret, fifo_chunks, lba, nwa, i, new_img, early_indev_release; + int ret, fifo_chunks, lba, nwa, i, new_img, early_indev_release, rec_mtime; uint32_t data_start= -1; size_t buffer_size= 0, buffer_free= 0; char *msg= NULL; @@ -487,7 +487,16 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d, iso_write_opts_set_joliet_long_names(wopts, opts->joliet_long_names); iso_write_opts_set_always_gmt(wopts, opts->always_gmt); iso_write_opts_set_rrip_version_1_10(wopts, opts->rrip_version_1_10); - iso_write_opts_set_dir_rec_mtime(wopts, opts->dir_rec_mtime); + rec_mtime= 0; + if(opts->dir_rec_mtime) + rec_mtime|= 1; + else + rec_mtime|= (1 << 14); + if(opts->joliet_rec_mtime) + rec_mtime|= 2; + if(opts->iso1999_rec_mtime) + rec_mtime|= 4; + iso_write_opts_set_dir_rec_mtime(wopts, rec_mtime); iso_write_opts_set_aaip_susp_1_10(wopts, opts->aaip_susp_1_10); iso_write_opts_set_sort_files(wopts, opts->sort_files); iso_write_opts_set_record_md5(wopts, opts->session_md5, opts->file_md5 & 3); @@ -1078,6 +1087,8 @@ int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax) o->aaip_susp_1_10= !!(relax & isoburn_igopt_aaip_susp_1_10); o->allow_dir_id_ext= !!(relax & isoburn_igopt_allow_dir_id_ext); o->joliet_long_names= !!(relax & isoburn_igopt_joliet_long_names); + o->joliet_rec_mtime= !!(relax & isoburn_igopt_joliet_rec_mtime); + o->iso1999_rec_mtime= !!(relax & isoburn_igopt_iso1999_rec_mtime); return(1); } @@ -1093,7 +1104,9 @@ int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax) ((!!(o->omit_version_numbers & 2))<<12) | ((!!(o->no_force_dots & 2))<<13) | ((!!o->allow_dir_id_ext) << 14) | - ((!!o->joliet_long_names) << 15); + ((!!o->joliet_long_names) << 15) | + ((!!o->joliet_rec_mtime) << 16) | + ((!!o->iso1999_rec_mtime) << 17); return(1); } diff --git a/libisoburn/isoburn.h b/libisoburn/isoburn.h index c065121d..82ebc8dc 100644 --- a/libisoburn/isoburn.h +++ b/libisoburn/isoburn.h @@ -2,7 +2,7 @@ /* Class struct of libisoburn. - Copyright 2007 - 2011 Vreixo Formoso Lopes + Copyright 2007 - 2012 Vreixo Formoso Lopes and Thomas Schmitt Provided under GPL version 2 or later. */ @@ -494,8 +494,11 @@ struct isoburn_imgen_opts { /** * Store as ECMA-119 Directory Record timestamp the mtime * of the source rather than the image creation time. + * The same can be ordered for Joliet and ISO 9660:1999 */ unsigned int dir_rec_mtime :1; + unsigned int joliet_rec_mtime :1; + unsigned int iso1999_rec_mtime :1; /** * Write AAIP as extension according to SUSP 1.10 rather than SUSP 1.12. diff --git a/libisoburn/libisoburn.h b/libisoburn/libisoburn.h index 9517811d..32ed3b3b 100644 --- a/libisoburn/libisoburn.h +++ b/libisoburn/libisoburn.h @@ -2,7 +2,7 @@ /* Lower level API definition of libisoburn. - Copyright 2007-2011 Vreixo Formoso Lopes + Copyright 2007-2012 Vreixo Formoso Lopes and Thomas Schmitt Provided under GPL version 2 or later. */ @@ -242,7 +242,7 @@ void isoburn_version(int *major, int *minor, int *micro); */ #define isoburn_libisofs_req_major 1 #define isoburn_libisofs_req_minor 1 -#define isoburn_libisofs_req_micro 6 +#define isoburn_libisofs_req_micro 7 /** The minimum version of libburn to be used with this version of libisoburn at compile time. @@ -250,7 +250,7 @@ void isoburn_version(int *major, int *minor, int *micro); */ #define isoburn_libburn_req_major 1 #define isoburn_libburn_req_minor 1 -#define isoburn_libburn_req_micro 8 +#define isoburn_libburn_req_micro 9 /** The minimum compile time requirements of libisoburn towards libjte are the same as of a suitable libisofs towards libjte. @@ -1155,6 +1155,12 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); Allow for Joliet leaf names up to 103 characters rather than up to 64. @since 1.0.6 + bit16= joliet_rec_mtime + Like dir_rec_mtime, but for the Joliet tree. + @since 1.2.0 + bit17= iso1999_rec_mtime + Like dir_rec_mtime, but for the ISO 9660:1999 tree. + @since 1.2.0 @return 1 success, <=0 failure */ #define isoburn_igopt_omit_version_numbers 1 @@ -1173,6 +1179,8 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); #define isoburn_igopt_no_j_force_dots 8192 #define isoburn_igopt_allow_dir_id_ext 16384 #define isoburn_igopt_joliet_long_names 32768 +#define isoburn_igopt_joliet_rec_mtime 0x8000 +#define isoburn_igopt_iso1999_rec_mtime 0x10000 int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax); int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax); diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 1db8d577..ca0af462 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2011.12.25.121944" +#define Xorriso_timestamP "2012.01.14.144233"