From cf176eea0a50614a5f9b07843e2fb71ffbfd2843 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sun, 22 Nov 2020 14:19:16 +0100 Subject: [PATCH] New libisoburn extension option isoburn_ropt_map_joliet_stripped --- libisoburn/isoburn.c | 5 ++++- libisoburn/isoburn.h | 2 ++ libisoburn/isofs_wrap.c | 1 + libisoburn/libisoburn.h | 9 +++++++++ xorriso/xorriso_timestamp.h | 2 +- 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/libisoburn/isoburn.c b/libisoburn/isoburn.c index c9e971c1..22295ffa 100644 --- a/libisoburn/isoburn.c +++ b/libisoburn/isoburn.c @@ -856,6 +856,7 @@ int isoburn_ropt_new(struct isoburn_read_opts **new_o, int flag) o->noiso1999= 1; o->do_ecma119_map= 0; o->map_mode= 1; + o->joliet_stripped= 1; o->noaaip= 1; o->noacl= 1; o->noea= 1; @@ -958,6 +959,7 @@ int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext) o->nomd5= (ext >> 9) & 3; o->do_ecma119_map= !!(ext & 2048); o->map_mode= (ext >> 12) & 3; + o->joliet_stripped= !!(ext & 16384); return(1); } @@ -968,7 +970,8 @@ int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext) ((!!o->preferjoliet)<<3) | ((!!o->pretend_blank)<<4) | ((!!o->noaaip) << 5) | ((!!o->noacl) << 6) | ((!!o->noea) << 7) | ((!!o->noino) << 8) | ((o->nomd5 & 3) << 9) | - ((!!o->do_ecma119_map) << 11) | ((o->map_mode & 3) << 12); + ((!!o->do_ecma119_map) << 11) | ((o->map_mode & 3) << 12) | + ((!!o->joliet_stripped) << 14); return(1); } diff --git a/libisoburn/isoburn.h b/libisoburn/isoburn.h index 1aba5561..7bd93fa1 100644 --- a/libisoburn/isoburn.h +++ b/libisoburn/isoburn.h @@ -326,6 +326,8 @@ struct isoburn_read_opts { unsigned int do_ecma119_map:1; /* call iso_read_opts_set_ecma119_map() */ unsigned int map_mode:2; /* argument for do_ecma119_map */ + unsigned int joliet_stripped:1; /* for iso_read_opts_set_joliet_map */ + /* ts A90121 */ unsigned int noaaip:1; /* Do not read AAIP for ACL and EA */ unsigned int noacl:1; /* Do not read ACL from external file objects */ diff --git a/libisoburn/isofs_wrap.c b/libisoburn/isofs_wrap.c index 5af6668a..a97f2f8a 100644 --- a/libisoburn/isofs_wrap.c +++ b/libisoburn/isofs_wrap.c @@ -275,6 +275,7 @@ displacement_rollover:; iso_read_opts_set_no_md5(ropts, int_num); if(read_opts->do_ecma119_map) iso_read_opts_set_ecma119_map(ropts, read_opts->map_mode); + iso_read_opts_set_joliet_map(ropts, read_opts->joliet_stripped); iso_read_opts_set_new_inos(ropts, read_opts->noino); iso_read_opts_set_no_joliet(ropts, read_opts->nojoliet); diff --git a/libisoburn/libisoburn.h b/libisoburn/libisoburn.h index 36003957..69474940 100644 --- a/libisoburn/libisoburn.h +++ b/libisoburn/libisoburn.h @@ -909,6 +909,14 @@ int isoburn_ropt_get_data_cache(struct isoburn_read_opts *o, or ".;1" 2 = uppercase: Like stripped, but map {a-z} to {A-Z} 3 = lowercase: Like stripped, but map {A-Z} to {a-z} + bit14= joliet_stripped + @since 1.5.4 + How to convert Joliet file names. + 0 = unmapped: Take name as recorded in Joliet directory + record (not suitable for writing them to + a new ISO filesystem) + 1 = stripped: strip off trailing ";1" or ".;1" + @return 1 success, <=0 failure */ #define isoburn_ropt_norock 1 @@ -926,6 +934,7 @@ int isoburn_ropt_get_data_cache(struct isoburn_read_opts *o, #define isoburn_ropt_map_stripped ( 2048 | 4096 ) #define isoburn_ropt_map_uppercase ( 2048 | 8192 ) #define isoburn_ropt_map_lowercase ( 2048 | 12288 ) +#define isoburn_ropt_joliet_stripped 16384 int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext); int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext); diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 1e45c48c..35f4b15f 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2020.11.18.200311" +#define Xorriso_timestamP "2020.11.22.131521"