New API call isoburn_igopt_set_untranslated_name_len()

This commit is contained in:
2010-12-22 13:37:47 +00:00
parent 4803a31fa4
commit 2e64464c7c
5 changed files with 84 additions and 4 deletions

View File

@@ -465,6 +465,7 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
if(opts->hardlinks)
iso_write_opts_set_rrip_1_10_px_ino(wopts, 1);
iso_write_opts_set_aaip(wopts, opts->aaip);
iso_write_opts_set_untranslated_name_len(wopts, opts->untranslated_name_len);
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_longer_paths(wopts, opts->allow_longer_paths);
@@ -932,6 +933,7 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
o->iso1999= 0;
o->hardlinks= 0;
o->aaip = 0;
o->untranslated_name_len = 0;
o->omit_version_numbers= 0;
o->allow_deep_paths= 1;
o->allow_longer_paths= 0;
@@ -1054,10 +1056,48 @@ int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax)
{
*relax= (!!o->omit_version_numbers) | ((!!o->allow_deep_paths)<<1) |
((!!o->allow_longer_paths)<<2) | ((!!o->max_37_char_filenames)<<3) |
((!!o->no_force_dots)<<4) | ((!!o->allow_lowercase)<<5) |
((!!(o->no_force_dots & 1))<<4)| ((!!o->allow_lowercase)<<5) |
((!!o->allow_full_ascii)<<6) | ((!!o->joliet_longer_paths)<<7) |
((!!o->always_gmt)<<8) | ((!!o->rrip_version_1_10)<<9) |
((!!o->dir_rec_mtime)<<10) | ((!!o->aaip_susp_1_10)<<11);
((!!o->dir_rec_mtime)<<10) | ((!!o->aaip_susp_1_10)<<11) |
((!!(o->omit_version_numbers & 2))<<12) |
((!!(o->no_force_dots & 2))<<13);
return(1);
}
int isoburn_igopt_set_untranslated_name_len(struct isoburn_imgen_opts *o,
int len)
{
int ret;
IsoWriteOpts *opts = NULL;
char msg[160];
ret= iso_write_opts_new(&opts, 0);
if(ret < 0) {
isoburn_msgs_submit(NULL, 0x00060000,
"Cannot create libisofs write options object", 0, "FATAL", 0);
return(0);
}
ret= iso_write_opts_set_untranslated_name_len(opts, len);
if(ret < 0) {
ret= iso_write_opts_set_untranslated_name_len(opts, -1);
sprintf(msg,
"Improper value for maximum length of untranslated names (%d <-> -1 ... %d)",
len, ret);
isoburn_msgs_submit(NULL, 0x00060000, msg, 0, "FAILURE", 0);
iso_write_opts_free(opts);
return(0);
}
o->untranslated_name_len= ret; /* Normalized len value */
iso_write_opts_free(opts);
return(1);
}
int isoburn_igopt_get_untranslated_name_len(struct isoburn_imgen_opts *o,
int *len)
{
*len = o->untranslated_name_len;
return(1);
}