diff --git a/libisoburn/trunk/libisoburn/isoburn.c b/libisoburn/trunk/libisoburn/isoburn.c index a706f981..9a70d189 100644 --- a/libisoburn/trunk/libisoburn/isoburn.c +++ b/libisoburn/trunk/libisoburn/isoburn.c @@ -413,6 +413,7 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d, iso_write_opts_set_allow_full_ascii(wopts, opts->allow_full_ascii); 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_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); @@ -773,6 +774,7 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag) o->allow_lowercase= 0; o->allow_full_ascii= 0; o->joliet_longer_paths= 0; + o->always_gmt= 0; o->sort_files= 0; o->replace_dir_mode= 0; o->replace_file_mode= 0; @@ -782,7 +784,7 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag) o->file_mode= 0444; o->uid= 0; o->gid= 0; - o->output_charset= 0; + o->output_charset= NULL; o->fifo_size= 4*1024*1024; o->effective_lba= -1; return(1); @@ -839,6 +841,7 @@ 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); return(1); } diff --git a/libisoburn/trunk/libisoburn/isoburn.h b/libisoburn/trunk/libisoburn/isoburn.h index 21c18f76..abcb94ad 100644 --- a/libisoburn/trunk/libisoburn/isoburn.h +++ b/libisoburn/trunk/libisoburn/isoburn.h @@ -357,6 +357,11 @@ struct isoburn_imgen_opts { */ unsigned int joliet_longer_paths :1; + /** + * Store timestamps as GMT rather than in local time. + */ + unsigned int always_gmt :1; + unsigned int sort_files:1; /**< If files should be sorted based on their weight. */ diff --git a/libisoburn/trunk/libisoburn/libisoburn.h b/libisoburn/trunk/libisoburn/libisoburn.h index 3939dddd..a39d6344 100644 --- a/libisoburn/trunk/libisoburn/libisoburn.h +++ b/libisoburn/trunk/libisoburn/libisoburn.h @@ -842,6 +842,13 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); bit7= joliet_longer_paths Allow paths in the Joliet tree to have more than 240 characters. + bit8= always_gmt + Write timestamps as GMT although the specs prescribe local + time with eventual non-zero timezone offset. Negative + timezones (west of GMT) can trigger bugs in some operating + 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). @return 1 success, <=0 failure */ #define isoburn_igopt_omit_version_numbers 1 @@ -852,6 +859,7 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); #define isoburn_igopt_allow_lowercase 32 #define isoburn_igopt_allow_full_ascii 64 #define isoburn_igopt_joliet_longer_paths 128 +#define isoburn_igopt_always_gmt 256 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/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index 0372cbbc..c02f79f5 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2008.11.15.133724" +#define Xorriso_timestamP "2008.11.15.231831"