New isoburn_igopt_set_relaxed() options: only_iso_versions, no_j_force_dots

This commit is contained in:
Thomas Schmitt 2010-04-13 10:33:04 +00:00
parent 9832edf4a1
commit ee4f766c27
4 changed files with 27 additions and 8 deletions

View File

@ -919,11 +919,13 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext)
int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax) int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax)
{ {
o->omit_version_numbers= !!(relax&1); o->omit_version_numbers= (!!(relax&1)) |
(2 * !!(relax & isoburn_igopt_only_iso_versions));
o->allow_deep_paths= !!(relax&2); o->allow_deep_paths= !!(relax&2);
o->allow_longer_paths= !!(relax&4); o->allow_longer_paths= !!(relax&4);
o->max_37_char_filenames= !!(relax&8); o->max_37_char_filenames= !!(relax&8);
o->no_force_dots= !!(relax&16); o->no_force_dots= (!!(relax&16)) |
(2 * !!(relax & isoburn_igopt_no_j_force_dots));
o->allow_lowercase= !!(relax&32); o->allow_lowercase= !!(relax&32);
o->allow_full_ascii= !!(relax&64); o->allow_full_ascii= !!(relax&64);
o->joliet_longer_paths= !!(relax&128); o->joliet_longer_paths= !!(relax&128);

View File

@ -350,8 +350,10 @@ struct isoburn_imgen_opts {
/** /**
* Omit the version number (";1") at the end of the ISO-9660 identifiers. * Omit the version number (";1") at the end of the ISO-9660 identifiers.
* Version numbers are usually not used. * Version numbers are usually not used.
* bit0= omit version number with ECMA-119 and Joliet
* bit1= omit version number with Joliet alone
*/ */
unsigned int omit_version_numbers :1; unsigned int omit_version_numbers :2;
/** /**
* Allow ISO-9660 directory hierarchy to be deeper than 8 levels. * Allow ISO-9660 directory hierarchy to be deeper than 8 levels.
@ -375,8 +377,10 @@ struct isoburn_imgen_opts {
* ISO-9660 forces filenames to have a ".", that separates file name from * ISO-9660 forces filenames to have a ".", that separates file name from
* extension. libisofs adds it if original filename doesn't has one. Set * extension. libisofs adds it if original filename doesn't has one. Set
* this to 1 to prevent this behavior * this to 1 to prevent this behavior
* bit0= no forced dot with ECMA-119
* bit1= no forced dot with Joliet
*/ */
unsigned int no_force_dots :1; unsigned int no_force_dots :2;
/** /**
* Allow lowercase characters in ISO-9660 filenames. By default, only * Allow lowercase characters in ISO-9660 filenames. By default, only

View File

@ -962,8 +962,8 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
@param relax Bitfield: @param relax Bitfield:
bit0= omit_version_numbers bit0= omit_version_numbers
Omit the version number (";1") at the end of the Omit the version number (";1") at the end of the
ISO-9660 identifiers. Version numbers are usually ISO-9660 and Joliet identifiers.
not used. Version numbers are usually not used by readers.
bit1= allow_deep_paths bit1= allow_deep_paths
Allow ISO-9660 directory hierarchy to be deeper Allow ISO-9660 directory hierarchy to be deeper
than 8 levels. than 8 levels.
@ -1012,7 +1012,18 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
prefixed ES fields. This saves 5 to 10 bytes per file and prefixed ES fields. This saves 5 to 10 bytes per file and
might avoid problems with readers which only accept RRIP. might avoid problems with readers which only accept RRIP.
SUSP-1.10 allows it, SUSP-1.12 frowns on it. SUSP-1.10 allows it, SUSP-1.12 frowns on it.
bit12= only_iso_numbers
Same as bit1 omit_version_number but restricted to the names
in the eventual Joliet tree.
@since 0.5.4
For reasons of backward compatibility it is not possible yet
to disable version numbers for ISO 9660 while enabling them
for Joliet.
bit13= no_j_force_dots
Same as no_force_dots but affecting the names in the eventual
Joliet tree rather than the ISO 9660 / ECMA-119 names.
@since 0.5.4
Previous versions added dots to Joliet names unconditionally.
@return 1 success, <=0 failure @return 1 success, <=0 failure
*/ */
#define isoburn_igopt_omit_version_numbers 1 #define isoburn_igopt_omit_version_numbers 1
@ -1027,6 +1038,8 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
#define isoburn_igopt_rrip_version_1_10 512 #define isoburn_igopt_rrip_version_1_10 512
#define isoburn_igopt_dir_rec_mtime 1024 #define isoburn_igopt_dir_rec_mtime 1024
#define isoburn_igopt_aaip_susp_1_10 2048 #define isoburn_igopt_aaip_susp_1_10 2048
#define isoburn_igopt_only_iso_versions 4096
#define isoburn_igopt_no_j_force_dots 8192
int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax); int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax);
int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax); int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax);

View File

@ -1 +1 @@
#define Xorriso_timestamP "2010.04.12.111137" #define Xorriso_timestamP "2010.04.13.103037"