New API calls isoburn_igopt_set_rr_reloc(), isoburn_igopt_get_rr_reloc()
This commit is contained in:
parent
798a4eebc8
commit
7a3a44c6d4
@ -481,6 +481,7 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
|
|||||||
iso_write_opts_set_allow_dir_id_ext(wopts, opts->allow_dir_id_ext);
|
iso_write_opts_set_allow_dir_id_ext(wopts, opts->allow_dir_id_ext);
|
||||||
iso_write_opts_set_omit_version_numbers(wopts, opts->omit_version_numbers);
|
iso_write_opts_set_omit_version_numbers(wopts, opts->omit_version_numbers);
|
||||||
iso_write_opts_set_allow_deep_paths(wopts, opts->allow_deep_paths);
|
iso_write_opts_set_allow_deep_paths(wopts, opts->allow_deep_paths);
|
||||||
|
iso_write_opts_set_rr_reloc(wopts, opts->rr_reloc_dir, opts->rr_reloc_flags);
|
||||||
iso_write_opts_set_allow_longer_paths(wopts, opts->allow_longer_paths);
|
iso_write_opts_set_allow_longer_paths(wopts, opts->allow_longer_paths);
|
||||||
iso_write_opts_set_max_37_char_filenames(wopts, opts->max_37_char_filenames);
|
iso_write_opts_set_max_37_char_filenames(wopts, opts->max_37_char_filenames);
|
||||||
iso_write_opts_set_no_force_dots(wopts, opts->no_force_dots);
|
iso_write_opts_set_no_force_dots(wopts, opts->no_force_dots);
|
||||||
@ -974,6 +975,8 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
|
|||||||
o->allow_dir_id_ext = 0;
|
o->allow_dir_id_ext = 0;
|
||||||
o->omit_version_numbers= 0;
|
o->omit_version_numbers= 0;
|
||||||
o->allow_deep_paths= 1;
|
o->allow_deep_paths= 1;
|
||||||
|
o->rr_reloc_dir= NULL;
|
||||||
|
o->rr_reloc_flags= 0;
|
||||||
o->allow_longer_paths= 0;
|
o->allow_longer_paths= 0;
|
||||||
o->max_37_char_filenames= 0;
|
o->max_37_char_filenames= 0;
|
||||||
o->no_force_dots= 0;
|
o->no_force_dots= 0;
|
||||||
@ -1023,6 +1026,8 @@ int isoburn_igopt_destroy(struct isoburn_imgen_opts **o, int flag)
|
|||||||
|
|
||||||
if(*o==NULL)
|
if(*o==NULL)
|
||||||
return(0);
|
return(0);
|
||||||
|
if((*o)->rr_reloc_dir != NULL)
|
||||||
|
free((*o)->rr_reloc_dir);
|
||||||
for(i= 0; i < Libisoburn_max_appended_partitionS; i++)
|
for(i= 0; i < Libisoburn_max_appended_partitionS; i++)
|
||||||
if((*o)->appended_partitions[i] != NULL)
|
if((*o)->appended_partitions[i] != NULL)
|
||||||
free((*o)->appended_partitions[i]);
|
free((*o)->appended_partitions[i]);
|
||||||
@ -1114,6 +1119,38 @@ int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax)
|
|||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int isoburn_igopt_set_rr_reloc(struct isoburn_imgen_opts *o, char *name,
|
||||||
|
int flags)
|
||||||
|
{
|
||||||
|
if(o->rr_reloc_dir != name) {
|
||||||
|
if(o->rr_reloc_dir != NULL)
|
||||||
|
free(o->rr_reloc_dir);
|
||||||
|
o->rr_reloc_dir= NULL;
|
||||||
|
if(name != NULL) {
|
||||||
|
o->rr_reloc_dir= strdup(name);
|
||||||
|
if(o->rr_reloc_dir == NULL) {
|
||||||
|
isoburn_msgs_submit(NULL, 0x00060000,
|
||||||
|
"Cannot allocate memory for image generation options",
|
||||||
|
0, "FATAL", 0);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
o->rr_reloc_flags = flags & 1;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int isoburn_igopt_get_rr_reloc(struct isoburn_imgen_opts *o, char **name,
|
||||||
|
int *flags)
|
||||||
|
{
|
||||||
|
*name= o->rr_reloc_dir;
|
||||||
|
*flags= o->rr_reloc_flags;
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int isoburn_igopt_set_untranslated_name_len(struct isoburn_imgen_opts *o,
|
int isoburn_igopt_set_untranslated_name_len(struct isoburn_imgen_opts *o,
|
||||||
int len)
|
int len)
|
||||||
{
|
{
|
||||||
|
@ -443,6 +443,21 @@ struct isoburn_imgen_opts {
|
|||||||
*/
|
*/
|
||||||
unsigned int allow_deep_paths :1;
|
unsigned int allow_deep_paths :1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If not allow_deep_paths is in effect, then it may become
|
||||||
|
* necessary to relocate directories so that no ECMA-119 file path
|
||||||
|
* has more than 8 components. These directories are grafted into either
|
||||||
|
* the root directory of the ISO image or into a dedicated relocation
|
||||||
|
* directory. For details see libisofs.h, iso_write_opts_set_rr_reloc().
|
||||||
|
*/
|
||||||
|
char *rr_reloc_dir; /* IsoNode name in root directory. NULL or
|
||||||
|
empty text means root itself. */
|
||||||
|
int rr_reloc_flags; /* bit0= mark auto-created rr_reloc_dir by RE
|
||||||
|
bit1= not settable via API (used internally)
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allow path in the ISO-9660 tree to have more than 255 characters.
|
* Allow path in the ISO-9660 tree to have more than 255 characters.
|
||||||
*/
|
*/
|
||||||
|
@ -242,7 +242,7 @@ void isoburn_version(int *major, int *minor, int *micro);
|
|||||||
*/
|
*/
|
||||||
#define isoburn_libisofs_req_major 1
|
#define isoburn_libisofs_req_major 1
|
||||||
#define isoburn_libisofs_req_minor 2
|
#define isoburn_libisofs_req_minor 2
|
||||||
#define isoburn_libisofs_req_micro 0
|
#define isoburn_libisofs_req_micro 1
|
||||||
|
|
||||||
/** The minimum version of libburn to be used with this version of libisoburn
|
/** The minimum version of libburn to be used with this version of libisoburn
|
||||||
at compile time.
|
at compile time.
|
||||||
@ -1187,6 +1187,45 @@ 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);
|
||||||
|
|
||||||
|
|
||||||
|
/** If not isoburn_igopt_allow_deep_paths is in effect, then it may become
|
||||||
|
necessary to relocate directories so that no ECMA-119 file path
|
||||||
|
has more than 8 components. These directories are grafted into either
|
||||||
|
the root directory of the ISO image or into a dedicated relocation
|
||||||
|
directory. For details see libisofs.h.
|
||||||
|
Wrapper for: iso_write_opts_set_rr_reloc()
|
||||||
|
@since 1.2.2
|
||||||
|
@param o The option set to work on
|
||||||
|
@param name The name of the relocation directory in the root directory.
|
||||||
|
Do not prepend "/". An empty name or NULL will direct
|
||||||
|
relocated directories into the root directory. This is the
|
||||||
|
default.
|
||||||
|
If the given name does not exist in the root directory when
|
||||||
|
isoburn_disc_write() is called, and if there are directories
|
||||||
|
at path level 8, then directory /name will be created
|
||||||
|
automatically.
|
||||||
|
@param flags Bitfield for control purposes.
|
||||||
|
bit0= Mark the relocation directory by a Rock Ridge RE entry,
|
||||||
|
if it gets created during isoburn_disc_write(). This
|
||||||
|
will make it invisible for most Rock Ridge readers.
|
||||||
|
bit1= not settable via API (used internally)
|
||||||
|
@return > 0 success, <= 0 failure
|
||||||
|
*/
|
||||||
|
int isoburn_igopt_set_rr_reloc(struct isoburn_imgen_opts *o, char *name,
|
||||||
|
int flags);
|
||||||
|
|
||||||
|
/** Obtain the settings of isoburn_igopt_set_rr_reloc().
|
||||||
|
@since 1.2.2
|
||||||
|
@param o The option set to work on
|
||||||
|
@param name Will return NULL or a pointer to the name of the relocation
|
||||||
|
directory in the root directory. Do not alter or dispose the
|
||||||
|
memory which holds this name.
|
||||||
|
@param flags Will return the flags bitfield.
|
||||||
|
@return > 0 success, <= 0 failure
|
||||||
|
*/
|
||||||
|
int isoburn_igopt_get_rr_reloc(struct isoburn_imgen_opts *o, char **name,
|
||||||
|
int *flags);
|
||||||
|
|
||||||
|
|
||||||
/** Caution: This option breaks any assumptions about names that
|
/** Caution: This option breaks any assumptions about names that
|
||||||
are supported by ECMA-119 specifications.
|
are supported by ECMA-119 specifications.
|
||||||
Try to omit any translation which would make a file name compliant to the
|
Try to omit any translation which would make a file name compliant to the
|
||||||
|
@ -38,6 +38,7 @@ isoburn_igopt_get_over_ugid;
|
|||||||
isoburn_igopt_get_partition_img;
|
isoburn_igopt_get_partition_img;
|
||||||
isoburn_igopt_get_pvd_times;
|
isoburn_igopt_get_pvd_times;
|
||||||
isoburn_igopt_get_relaxed;
|
isoburn_igopt_get_relaxed;
|
||||||
|
isoburn_igopt_get_rr_reloc;
|
||||||
isoburn_igopt_get_scdbackup_tag;
|
isoburn_igopt_get_scdbackup_tag;
|
||||||
isoburn_igopt_get_sort_files;
|
isoburn_igopt_get_sort_files;
|
||||||
isoburn_igopt_get_system_area;
|
isoburn_igopt_get_system_area;
|
||||||
@ -54,6 +55,7 @@ isoburn_igopt_set_over_ugid;
|
|||||||
isoburn_igopt_set_partition_img;
|
isoburn_igopt_set_partition_img;
|
||||||
isoburn_igopt_set_pvd_times;
|
isoburn_igopt_set_pvd_times;
|
||||||
isoburn_igopt_set_relaxed;
|
isoburn_igopt_set_relaxed;
|
||||||
|
isoburn_igopt_set_rr_reloc;
|
||||||
isoburn_igopt_set_scdbackup_tag;
|
isoburn_igopt_set_scdbackup_tag;
|
||||||
isoburn_igopt_set_sort_files;
|
isoburn_igopt_set_sort_files;
|
||||||
isoburn_igopt_set_system_area;
|
isoburn_igopt_set_system_area;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2012.03.10.112727"
|
#define Xorriso_timestamP "2012.03.10.145124"
|
||||||
|
Loading…
Reference in New Issue
Block a user