New options with isoburn_ropt_set_extensions(): isoburn_ropt_map_*

This commit is contained in:
Thomas Schmitt 2015-08-17 20:01:30 +00:00
parent 16acbe7f1d
commit 465509d0d1
5 changed files with 31 additions and 2 deletions

View File

@ -842,6 +842,8 @@ int isoburn_ropt_new(struct isoburn_read_opts **new_o, int flag)
o->norock= 0; o->norock= 0;
o->nojoliet= 0; o->nojoliet= 0;
o->noiso1999= 1; o->noiso1999= 1;
o->do_ecma119_map= 0;
o->map_mode= 1;
o->noaaip= 1; o->noaaip= 1;
o->noacl= 1; o->noacl= 1;
o->noea= 1; o->noea= 1;
@ -940,6 +942,8 @@ int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext)
o->noea= !!(ext & 128); o->noea= !!(ext & 128);
o->noino= !!(ext & 256); o->noino= !!(ext & 256);
o->nomd5= (ext >> 9) & 3; o->nomd5= (ext >> 9) & 3;
o->do_ecma119_map= !!(ext & 2048);
o->map_mode= (ext >> 12) & 3;
return(1); return(1);
} }
@ -949,7 +953,8 @@ int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext)
*ext= (!!o->norock) | ((!!o->nojoliet)<<1) | ((!!o->noiso1999)<<2) | *ext= (!!o->norock) | ((!!o->nojoliet)<<1) | ((!!o->noiso1999)<<2) |
((!!o->preferjoliet)<<3) | ((!!o->pretend_blank)<<4) | ((!!o->preferjoliet)<<3) | ((!!o->pretend_blank)<<4) |
((!!o->noaaip) << 5) | ((!!o->noacl) << 6) | ((!!o->noea) << 7) | ((!!o->noaaip) << 5) | ((!!o->noacl) << 6) | ((!!o->noea) << 7) |
((!!o->noino) << 8) | ((o->nomd5 & 3) << 9); ((!!o->noino) << 8) | ((o->nomd5 & 3) << 9) |
((!!o->do_ecma119_map) << 11) | ((o->map_mode & 3) << 12);
return(1); return(1);
} }

View File

@ -322,6 +322,9 @@ struct isoburn_read_opts {
unsigned int nojoliet:1; /*< Do not read Joliet extensions */ unsigned int nojoliet:1; /*< Do not read Joliet extensions */
unsigned int noiso1999:1; /*< Do not read ISO 9660:1999 enhanced tree */ unsigned int noiso1999:1; /*< Do not read ISO 9660:1999 enhanced tree */
unsigned int do_ecma119_map:1; /* call iso_read_opts_set_ecma119_map() */
unsigned int map_mode:2; /* argument for do_ecma119_map */
/* ts A90121 */ /* ts A90121 */
unsigned int noaaip:1; /* Do not read AAIP for ACL and EA */ unsigned int noaaip:1; /* Do not read AAIP for ACL and EA */
unsigned int noacl:1; /* Do not read ACL from external file objects */ unsigned int noacl:1; /* Do not read ACL from external file objects */

View File

@ -268,6 +268,8 @@ displacement_rollover:;
else else
int_num= 0; int_num= 0;
iso_read_opts_set_no_md5(ropts, int_num); 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_new_inos(ropts, read_opts->noino); iso_read_opts_set_new_inos(ropts, read_opts->noino);
iso_read_opts_set_no_joliet(ropts, read_opts->nojoliet); iso_read_opts_set_no_joliet(ropts, read_opts->nojoliet);

View File

@ -884,6 +884,21 @@ int isoburn_ropt_get_data_cache(struct isoburn_read_opts *o,
@since 1.0.4 @since 1.0.4
Do not check eventual session_md5 tags although bit9 Do not check eventual session_md5 tags although bit9
is not set. is not set.
bit11= do_ecma119_map
@since 1.4.2
Set iso_read_opts_set_ecma119_map() to map_mode rather
than relying on the default setting of libisofs.
bit12 - bit13= map_mode
@since 1.4.2
How to convert file names if neither Rock Ridge nor
Joliet names are present and acceptable.
0 = unmapped: Take name as recorded in ECMA-119 directory
record (not suitable for writing them to
a new ISO filesystem)
1 = stripped: Like unmapped, but strip off trailing ";1"
or ".;1"
2 = uppercase: Like stripped, but map {a-z} to {A-Z}
3 = lowercase: Like stripped, but map {A-Z} to {a-z}
@return 1 success, <=0 failure @return 1 success, <=0 failure
*/ */
#define isoburn_ropt_norock 1 #define isoburn_ropt_norock 1
@ -897,6 +912,10 @@ int isoburn_ropt_get_data_cache(struct isoburn_read_opts *o,
#define isoburn_ropt_noino 256 #define isoburn_ropt_noino 256
#define isoburn_ropt_nomd5 512 #define isoburn_ropt_nomd5 512
#define isoburn_ropt_nomd5tag 1024 #define isoburn_ropt_nomd5tag 1024
#define isoburn_ropt_map_unmapped ( 2048 | 0 )
#define isoburn_ropt_map_stripped ( 2048 | 4096 )
#define isoburn_ropt_map_uppercase ( 2048 | 8192 )
#define isoburn_ropt_map_lowercase ( 2048 | 12288 )
int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext); int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext);
int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext); int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext);

View File

@ -1 +1 @@
#define Xorriso_timestamP "2015.08.12.091220" #define Xorriso_timestamP "2015.08.17.200155"