diff --git a/libisoburn/isoburn.c b/libisoburn/isoburn.c index 5b145a48..273b354b 100644 --- a/libisoburn/isoburn.c +++ b/libisoburn/isoburn.c @@ -477,6 +477,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_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); @@ -949,6 +950,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->joliet_long_names= 0; o->always_gmt= 0; o->rrip_version_1_10= 0; o->dir_rec_mtime= 0; @@ -1058,6 +1060,7 @@ int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax) o->dir_rec_mtime= !!(relax & isoburn_igopt_dir_rec_mtime); 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); return(1); } @@ -1072,7 +1075,8 @@ int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax) ((!!o->dir_rec_mtime)<<10) | ((!!o->aaip_susp_1_10)<<11) | ((!!(o->omit_version_numbers & 2))<<12) | ((!!(o->no_force_dots & 2))<<13) | - ((!!o->allow_dir_id_ext) << 14); + ((!!o->allow_dir_id_ext) << 14) | + ((!!o->joliet_long_names) << 15); return(1); } diff --git a/libisoburn/isoburn.h b/libisoburn/isoburn.h index 7e54a948..be0e548e 100644 --- a/libisoburn/isoburn.h +++ b/libisoburn/isoburn.h @@ -469,6 +469,12 @@ struct isoburn_imgen_opts { */ unsigned int joliet_longer_paths :1; + /** + * Allow leaf names in the Joliet tree to have up to 103 characters + * rather than 64. + */ + unsigned int joliet_long_names :1; + /** * Store timestamps as GMT rather than in local time. */ diff --git a/libisoburn/libisoburn.h b/libisoburn/libisoburn.h index 4158899d..242e8259 100644 --- a/libisoburn/libisoburn.h +++ b/libisoburn/libisoburn.h @@ -1116,6 +1116,10 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); only 8 characters. (mkisofs and its clones obviously do this violation.) @since 1.0.0 + bit15= joliet_long_names + Allow for Joliet leaf names up to 103 characters rather than + up to 64. + @since 1.0.6 @return 1 success, <=0 failure */ #define isoburn_igopt_omit_version_numbers 1 @@ -1133,6 +1137,7 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); #define isoburn_igopt_only_iso_versions 4096 #define isoburn_igopt_no_j_force_dots 8192 #define isoburn_igopt_allow_dir_id_ext 16384 +#define isoburn_igopt_joliet_long_names 32768 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 c7eb855a..98fd970c 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2011.03.26.143944" +#define Xorriso_timestamP "2011.03.26.144233"