From 2a62564d46196892689951638c282b076173e955 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Fri, 21 Nov 2008 16:00:47 +0000 Subject: [PATCH] Making use of experimental libisofs calls _rrip_version_1_10() _dir_rec_mtime() --- libisoburn/isoburn.c | 8 +++++++- libisoburn/isoburn.h | 13 +++++++++++++ libisoburn/libisoburn.h | 10 ++++++++++ xorriso/xorriso_timestamp.h | 2 +- 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/libisoburn/isoburn.c b/libisoburn/isoburn.c index 9a70d189..eac0e617 100644 --- a/libisoburn/isoburn.c +++ b/libisoburn/isoburn.c @@ -414,6 +414,8 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d, iso_write_opts_set_relaxed_vol_atts(wopts, 1); iso_write_opts_set_joliet_longer_paths(wopts, opts->joliet_longer_paths); 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); iso_write_opts_set_sort_files(wopts, opts->sort_files); iso_write_opts_set_replace_mode(wopts, opts->replace_dir_mode, opts->replace_file_mode, opts->replace_uid, opts->replace_gid); @@ -775,6 +777,8 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag) o->allow_full_ascii= 0; o->joliet_longer_paths= 0; o->always_gmt= 0; + o->rrip_version_1_10= 0; + o->dir_rec_mtime= 0; o->sort_files= 0; o->replace_dir_mode= 0; o->replace_file_mode= 0; @@ -841,7 +845,9 @@ int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax) o->allow_lowercase= !!(relax&32); o->allow_full_ascii= !!(relax&64); o->joliet_longer_paths= !!(relax&128); - o->always_gmt= !!(relax&256); + o->always_gmt= !!(relax & isoburn_igopt_always_gmt); + o->rrip_version_1_10= !!(relax & isoburn_igopt_rrip_version_1_10); + o->dir_rec_mtime= !!(relax & isoburn_igopt_dir_rec_mtime); return(1); } diff --git a/libisoburn/isoburn.h b/libisoburn/isoburn.h index abcb94ad..5ee483bb 100644 --- a/libisoburn/isoburn.h +++ b/libisoburn/isoburn.h @@ -362,6 +362,19 @@ struct isoburn_imgen_opts { */ unsigned int always_gmt :1; + /** + * Write Rock Ridge info as of specification RRIP-1.10 rather than + * RRIP-1.12: signature "RRIP_1991A" rather than "IEEE_1282", + * field PX without file serial number + */ + unsigned int rrip_version_1_10 :1; + + /** + * Store as ECMA-119 Directory Record timestamp the mtime + * of the source rather than the image creation time. + */ + unsigned int dir_rec_mtime :1; + unsigned int sort_files:1; /**< If files should be sorted based on their weight. */ diff --git a/libisoburn/libisoburn.h b/libisoburn/libisoburn.h index a39d6344..bd9de93b 100644 --- a/libisoburn/libisoburn.h +++ b/libisoburn/libisoburn.h @@ -849,6 +849,14 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); systems which typically appear in mounted ISO images as if the timezone shift from GMT was applied twice (e.g. in New York 22:36 becomes 17:36). + bit9= rrip_version_1_10 + Write Rock Ridge info as of specification RRIP-1.10 rather + than RRIP-1.12: signature "RRIP_1991A" rather than + "IEEE_1282", field PX without file serial number. + bit10= dir_rec_mtime + Store as ECMA-119 Directory Record timestamp the mtime + of the source rather than the image creation time. + @return 1 success, <=0 failure */ #define isoburn_igopt_omit_version_numbers 1 @@ -860,6 +868,8 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); #define isoburn_igopt_allow_full_ascii 64 #define isoburn_igopt_joliet_longer_paths 128 #define isoburn_igopt_always_gmt 256 +#define isoburn_igopt_rrip_version_1_10 512 +#define isoburn_igopt_dir_rec_mtime 1024 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 35d98467..c6556a2e 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2008.11.15.232058" +#define Xorriso_timestamP "2008.11.21.160019"