New command -assess_indev_features
This commit is contained in:
parent
d2fd48fcbc
commit
e594ba293a
@ -240,6 +240,94 @@ ex:;
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_make_read_options(struct XorrisO *xorriso,
|
||||
struct burn_drive *drive,
|
||||
struct isoburn_read_opts **ropts,
|
||||
int flag)
|
||||
{
|
||||
int ret, ext, load_lba;
|
||||
enum burn_disc_status state;
|
||||
|
||||
/* fill read opts */
|
||||
ret= isoburn_ropt_new(ropts, 0);
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
|
||||
ret= Xorriso_set_data_cache(xorriso, *ropts, xorriso->cache_num_tiles,
|
||||
xorriso->cache_tile_blocks,
|
||||
xorriso->cache_default);
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
|
||||
ext= isoburn_ropt_noiso1999;
|
||||
if(xorriso->read_fs & 1)
|
||||
ext|= isoburn_ropt_norock;
|
||||
if(xorriso->read_fs & 2)
|
||||
ext|= isoburn_ropt_nojoliet;
|
||||
if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (1 | 4 | 32))
|
||||
&& !(xorriso->do_md5 & 1) && !(xorriso->do_hfsplus))
|
||||
ext|= isoburn_ropt_noaaip;
|
||||
if(!(xorriso->do_aaip & 1))
|
||||
ext|= isoburn_ropt_noacl;
|
||||
if(!(xorriso->do_aaip & 4))
|
||||
ext|= isoburn_ropt_noea;
|
||||
if(xorriso->ino_behavior & 1)
|
||||
ext|= isoburn_ropt_noino;
|
||||
if(!(xorriso->do_md5 & 1))
|
||||
ext|= isoburn_ropt_nomd5;
|
||||
if(xorriso->do_md5 & 32)
|
||||
ext|= isoburn_ropt_nomd5tag;
|
||||
if(xorriso->ecma119_map == 0)
|
||||
ext|= isoburn_ropt_map_unmapped;
|
||||
else if(xorriso->ecma119_map == 2)
|
||||
ext|= isoburn_ropt_map_uppercase;
|
||||
else if(xorriso->ecma119_map == 3)
|
||||
ext|= isoburn_ropt_map_lowercase;
|
||||
else
|
||||
ext|= isoburn_ropt_map_stripped;
|
||||
if(xorriso->joliet_map == 0)
|
||||
ext|= isoburn_ropt_joliet_unmapped;
|
||||
else
|
||||
ext|= isoburn_ropt_joliet_stripped;
|
||||
|
||||
isoburn_ropt_set_extensions(*ropts, ext);
|
||||
|
||||
isoburn_ropt_set_default_perms(*ropts, (uid_t) 0, (gid_t) 0, (mode_t) 0555);
|
||||
isoburn_ropt_set_input_charset(*ropts, xorriso->in_charset);
|
||||
isoburn_ropt_set_auto_incharset(*ropts, !!(xorriso->do_aaip & 512));
|
||||
isoburn_ropt_set_displacement(*ropts, xorriso->displacement,
|
||||
xorriso->displacement_sign);
|
||||
isoburn_ropt_set_truncate_mode(*ropts, 1, xorriso->file_name_limit);
|
||||
|
||||
Xorriso_set_image_severities(xorriso, 1); /* No DEBUG messages */
|
||||
|
||||
/* <<< Trying to work around too much tolerance on bad image trees.
|
||||
Better would be a chance to instruct libisofs what to do in
|
||||
case of image read errors. There is a risk to mistake other SORRYs.
|
||||
*/
|
||||
if(xorriso->img_read_error_mode>0)
|
||||
iso_set_abort_severity("SORRY");
|
||||
|
||||
state= isoburn_disc_get_status(drive);
|
||||
if(state != BURN_DISC_BLANK) {
|
||||
ret= isoburn_disc_get_msc1(drive, &load_lba);
|
||||
if(ret > 0) {
|
||||
sprintf(xorriso->info_text,
|
||||
"Loading ISO image tree from LBA %d", load_lba);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
}
|
||||
ret= Xorriso_assert_volid(xorriso, load_lba, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
Xorriso_set_speed(xorriso, drive, xorriso->read_speed, 0, 1);
|
||||
|
||||
ret= 1;
|
||||
ex:
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= acquire as isoburn input drive
|
||||
bit1= acquire as libburn output drive (as isoburn drive if bit0)
|
||||
bit2= regard overwritable media as blank
|
||||
@ -257,7 +345,7 @@ ex:;
|
||||
int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
|
||||
int flag)
|
||||
{
|
||||
int ret, hret, not_writeable= 0, has_what, aquire_flag, load_lba, ext;
|
||||
int ret, hret, not_writeable= 0, has_what, aquire_flag;
|
||||
int lba, track, session, params_flag, adr_mode, read_ret, start_lba;
|
||||
int truncate_mode;
|
||||
uint32_t size, offst;
|
||||
@ -540,83 +628,16 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
|
||||
Xorriso_give_up_drive(xorriso, 1|((flag&32)>>2));
|
||||
ret= 3; goto ex;
|
||||
}
|
||||
/* fill read opts */
|
||||
ret= isoburn_ropt_new(&ropts, 0);
|
||||
if(ret<=0)
|
||||
|
||||
ret= Xorriso_make_read_options(xorriso, drive, &ropts, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
|
||||
ret= Xorriso_set_data_cache(xorriso, ropts, xorriso->cache_num_tiles,
|
||||
xorriso->cache_tile_blocks,
|
||||
xorriso->cache_default);
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
|
||||
ext= isoburn_ropt_noiso1999;
|
||||
if(xorriso->read_fs & 1)
|
||||
ext|= isoburn_ropt_norock;
|
||||
if(xorriso->read_fs & 2)
|
||||
ext|= isoburn_ropt_nojoliet;
|
||||
if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (1 | 4 | 32))
|
||||
&& !(xorriso->do_md5 & 1) && !(xorriso->do_hfsplus))
|
||||
ext|= isoburn_ropt_noaaip;
|
||||
if(!(xorriso->do_aaip & 1))
|
||||
ext|= isoburn_ropt_noacl;
|
||||
if(!(xorriso->do_aaip & 4))
|
||||
ext|= isoburn_ropt_noea;
|
||||
if(xorriso->ino_behavior & 1)
|
||||
ext|= isoburn_ropt_noino;
|
||||
if(!(xorriso->do_md5 & 1))
|
||||
ext|= isoburn_ropt_nomd5;
|
||||
if(xorriso->do_md5 & 32)
|
||||
ext|= isoburn_ropt_nomd5tag;
|
||||
if(xorriso->ecma119_map == 0)
|
||||
ext|= isoburn_ropt_map_unmapped;
|
||||
else if(xorriso->ecma119_map == 2)
|
||||
ext|= isoburn_ropt_map_uppercase;
|
||||
else if(xorriso->ecma119_map == 3)
|
||||
ext|= isoburn_ropt_map_lowercase;
|
||||
else
|
||||
ext|= isoburn_ropt_map_stripped;
|
||||
if(xorriso->joliet_map == 0)
|
||||
ext|= isoburn_ropt_joliet_unmapped;
|
||||
else
|
||||
ext|= isoburn_ropt_joliet_stripped;
|
||||
|
||||
isoburn_ropt_set_extensions(ropts, ext);
|
||||
|
||||
isoburn_ropt_set_default_perms(ropts, (uid_t) 0, (gid_t) 0, (mode_t) 0555);
|
||||
isoburn_ropt_set_input_charset(ropts, xorriso->in_charset);
|
||||
isoburn_ropt_set_auto_incharset(ropts, !!(xorriso->do_aaip & 512));
|
||||
isoburn_ropt_set_displacement(ropts, xorriso->displacement,
|
||||
xorriso->displacement_sign);
|
||||
isoburn_ropt_set_truncate_mode(ropts, 1, xorriso->file_name_limit);
|
||||
|
||||
Xorriso_set_image_severities(xorriso, 1); /* No DEBUG messages */
|
||||
Xorriso_pacifier_reset(xorriso, 0);
|
||||
isoburn_set_read_pacifier(drive, Xorriso__read_pacifier, (void *) xorriso);
|
||||
|
||||
/* <<< Trying to work around too much tolerance on bad image trees.
|
||||
Better would be a chance to instruct libisofs what to do in
|
||||
case of image read errors. There is a risk to mistake other SORRYs.
|
||||
*/
|
||||
if(xorriso->img_read_error_mode>0)
|
||||
iso_set_abort_severity("SORRY");
|
||||
|
||||
if(state != BURN_DISC_BLANK) {
|
||||
ret= isoburn_disc_get_msc1(drive, &load_lba);
|
||||
if(ret > 0) {
|
||||
sprintf(xorriso->info_text,
|
||||
"Loading ISO image tree from LBA %d", load_lba);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
}
|
||||
ret= Xorriso_assert_volid(xorriso, load_lba, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
Xorriso_set_speed(xorriso, drive, xorriso->read_speed, 0, 1);
|
||||
read_ret= ret= isoburn_read_image(drive, ropts, &volset);
|
||||
|
||||
/* <<< Resetting to normal thresholds */
|
||||
/* <<< Resetting to normal thresholds, after Xorriso_make_read_options */
|
||||
if(xorriso->img_read_error_mode>0)
|
||||
Xorriso_set_abort_severity(xorriso, 0);
|
||||
|
||||
@ -3635,3 +3656,334 @@ int Xorriso_obtain_indev_readsize(struct XorrisO *xorriso, uint32_t *blocks,
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= as_mkisofs, else cmd
|
||||
*/
|
||||
int Xorriso_feature_to_cmd(struct XorrisO *xorriso, char *name, char *value,
|
||||
int flag)
|
||||
{
|
||||
int i, as_m;
|
||||
double val_num= -123456789;
|
||||
static char *ignored_names[]= {"size", "eltorito", "tree_loaded",
|
||||
"tree_loaded_text", "rr_loaded", "aaip",
|
||||
"relaxed_vol_atts", "rrip_1_10_px_ino",
|
||||
""};
|
||||
|
||||
sscanf(value, "%lf", &val_num);
|
||||
for(i= 0; ignored_names[i][0] != 0; i++)
|
||||
if(strcmp(name, ignored_names[i]) == 0)
|
||||
return(0);
|
||||
as_m= flag & 1;
|
||||
if(strcmp(name, "iso_level") == 0) {
|
||||
if(as_m) {
|
||||
sprintf(xorriso->result_line, "-iso-level %s", value);
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance iso_9660_level=%s", value);
|
||||
}
|
||||
} else if(strcmp(name, "rockridge") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num > 0.0)
|
||||
sprintf(xorriso->result_line, "-R");
|
||||
else
|
||||
sprintf(xorriso->result_line, "--norock");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-rockridge %s",
|
||||
val_num > 0.0 ? "on" : "off");
|
||||
}
|
||||
} else if(strcmp(name, "joliet") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-J");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-joliet %s",
|
||||
val_num > 0.0 ? "on" : "off");
|
||||
}
|
||||
} else if(strcmp(name, "iso1999") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-iso-level 4");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance iso_9660_1999%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "untranslated_name_len") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-untranslated_name_len %s", value);
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance untranslated_name_len=%s",
|
||||
value);
|
||||
}
|
||||
} else if(strcmp(name, "allow_dir_id_ext") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num > 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-disallow_dir_id_ext");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance allow_dir_id_ext%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "omit_version_numbers") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-N");
|
||||
} else {
|
||||
if(val_num <= 0.0)
|
||||
sprintf(xorriso->result_line,
|
||||
"-compliance omit_version_off:only_iso_version_off");
|
||||
else if(val_num == 2.0)
|
||||
sprintf(xorriso->result_line,
|
||||
"-compliance omit_version_off:only_iso_version");
|
||||
else
|
||||
sprintf(xorriso->result_line,
|
||||
"-compliance omit_version:only_iso_version_off");
|
||||
}
|
||||
} else if(strcmp(name, "allow_deep_paths") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-D");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance deep_paths%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "allow_longer_paths") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-U");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance long_paths%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "allow_full_ascii") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-U");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance full_ascii%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "max_37_char_filenames") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-max-iso9660-filenames");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance long_names%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "no_force_dots") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-d");
|
||||
} else {
|
||||
sprintf(xorriso->result_line,
|
||||
"-compliance no_force_dots%s:no_j_force_dots%s",
|
||||
((int) val_num) & 1 ? "" : "_off",
|
||||
((int) val_num) & 2 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "allow_lowercase") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-allow-lowercase");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance lowercase%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "joliet_longer_paths") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-joliet-long");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance joliet_long_paths%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "joliet_long_names") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-joliet-long");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance joliet_long_names%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "joliet_utf16") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "-joliet-utf16");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance joliet_utf16%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "rrip_version_1_10") == 0) {
|
||||
if(as_m) {
|
||||
return(0);
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance %s_rr",
|
||||
val_num > 0.0 ? "old" : "new");
|
||||
}
|
||||
} else if(strcmp(name, "aaip_susp_1_10") == 0) {
|
||||
if(as_m) {
|
||||
return(0);
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-compliance aaip_susp_1_10%s",
|
||||
val_num > 0.0 ? "" : "_off");
|
||||
}
|
||||
} else if(strcmp(name, "record_md5_session") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "--md5");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-md5 %s", val_num > 0.0 ? "on" : "off");
|
||||
}
|
||||
} else if(strcmp(name, "record_md5_files") == 0) {
|
||||
if(as_m) {
|
||||
if(val_num <= 0.0)
|
||||
return(0);
|
||||
sprintf(xorriso->result_line, "--md5");
|
||||
} else {
|
||||
sprintf(xorriso->result_line, "-md5 %s", val_num > 0.0 ? "on" : "off");
|
||||
}
|
||||
} else {
|
||||
sprintf(xorriso->info_text, "Program error: unexpected feature name '%s'",
|
||||
name);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
|
||||
|
||||
return(-1);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_assess_written_features(struct XorrisO *xorriso, char *mode,
|
||||
int flag)
|
||||
{
|
||||
int ret, l, ftext_l, replay_count= 0, max_line_size= 2 * SfileadrL;
|
||||
struct burn_drive_info *dinfo;
|
||||
struct burn_drive *drive;
|
||||
enum burn_disc_status s;
|
||||
struct isoburn_read_opts *ropts= NULL;
|
||||
IsoReadImageFeatures *features= NULL;
|
||||
struct isoburn_imgen_opts *imgen_opts= NULL;
|
||||
char *ftext= NULL, *cpt, *npt, *ept, *prev_line= NULL, *cmd_line= NULL;
|
||||
static char *tree_loaded_names[3]= {"ISO9660", "Joliet", "ISO9660:1999"};
|
||||
int tree_loaded_names_max= 2;
|
||||
|
||||
Xorriso_alloc_meM(prev_line, char, max_line_size);
|
||||
Xorriso_alloc_meM(cmd_line, char, max_line_size);
|
||||
prev_line[0]= 0;
|
||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||
"when assessing written features", 0);
|
||||
if(ret <= 0)
|
||||
{ret= 0; goto ex;}
|
||||
s= isoburn_disc_get_status(drive);
|
||||
if(s != BURN_DISC_APPENDABLE && s != BURN_DISC_FULL) {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"The disc in the input drive offers no readable content", 0, "NOTE", 0);
|
||||
ret= 2; goto ex;
|
||||
}
|
||||
ret= Xorriso_make_read_options(xorriso, drive, &ropts, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
ret = isoburn_assess_written_features(drive, ropts, &features, &imgen_opts,
|
||||
0);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
/* <<< Resetting to normal thresholds, after Xorriso_make_read_options */
|
||||
if(xorriso->img_read_error_mode > 0)
|
||||
Xorriso_set_abort_severity(xorriso, 0);
|
||||
if(ret <= 0)
|
||||
{ret= 0; goto ex;}
|
||||
ret= iso_read_image_features_text(features, 1, &ftext);
|
||||
if(ret < 0)
|
||||
{ret= 0; goto ex;}
|
||||
|
||||
/* print results, depending on mode */
|
||||
ftext_l= strlen(ftext);
|
||||
for(cpt= ftext ; cpt - ftext < ftext_l ; cpt+= l + 1) {
|
||||
npt= strchr(cpt, '\n');
|
||||
if(npt == NULL)
|
||||
l= strlen(cpt);
|
||||
else
|
||||
l= npt - cpt;
|
||||
cpt[l]= 0;
|
||||
ept= strchr(cpt, '=');
|
||||
if(ept == NULL)
|
||||
continue;
|
||||
if(strcmp(mode, "cmd") == 0 || strcmp(mode, "replay") == 0 ||
|
||||
strcmp(mode, "as_mkisofs") == 0 ) {
|
||||
*ept= 0;
|
||||
ret= Xorriso_feature_to_cmd(xorriso, cpt, ept + 1,
|
||||
strcmp(mode, "as_mkisofs") == 0);
|
||||
if(ret <= 0)
|
||||
continue;
|
||||
} else { /* "plain" and any other */
|
||||
strcpy(xorriso->result_line, "Indev feature: ");
|
||||
if(strncmp(cpt, "tree_loaded=", 12) == 0) {
|
||||
sprintf(xorriso->result_line + strlen(xorriso->result_line),
|
||||
"tree_loaded=%d", xorriso->tree_loaded);
|
||||
} else if(strncmp(cpt, "tree_loaded_text=", 17) == 0) {
|
||||
if(xorriso->tree_loaded >= 0 &&
|
||||
xorriso->tree_loaded <= tree_loaded_names_max)
|
||||
sprintf(xorriso->result_line + strlen(xorriso->result_line),
|
||||
"tree_loaded_text=%s",
|
||||
tree_loaded_names[xorriso->tree_loaded]);
|
||||
} else if(strncmp(cpt, "rr_loaded=", 10) == 0) {
|
||||
sprintf(xorriso->result_line + strlen(xorriso->result_line),
|
||||
"rr_loaded=%d", xorriso->rr_loaded);
|
||||
} else {
|
||||
strcat(xorriso->result_line, cpt);
|
||||
}
|
||||
}
|
||||
/* Truncate to plausible length */
|
||||
xorriso->result_line[max_line_size - 1]= 0;
|
||||
|
||||
if(strcmp(xorriso->result_line, prev_line) == 0)
|
||||
continue;
|
||||
strcpy(prev_line, xorriso->result_line);
|
||||
if(strcmp(mode, "replay") == 0) {
|
||||
/* Perform result_line as command */
|
||||
strcpy(cmd_line, xorriso->result_line);
|
||||
ret= Xorriso_execute_option(xorriso, cmd_line, (1 << 16));
|
||||
if(ret <= 0) {
|
||||
|
||||
/* >>> ??? what to do on error */;
|
||||
|
||||
}
|
||||
replay_count++;
|
||||
} else {
|
||||
strcat(xorriso->result_line, "\n");
|
||||
Xorriso_result(xorriso, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if(strcmp(mode, "replay") == 0) {
|
||||
sprintf(xorriso->info_text,
|
||||
"-assess_indev_features replay : Number of performed commands: %d\n",
|
||||
replay_count);
|
||||
Xorriso_info(xorriso, 0);
|
||||
}
|
||||
ret= 1;
|
||||
ex:;
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(ropts != NULL)
|
||||
isoburn_ropt_destroy(&ropts, 0);
|
||||
if(features != NULL)
|
||||
iso_read_image_features_destroy(features);
|
||||
if(imgen_opts != NULL)
|
||||
isoburn_igopt_destroy(&imgen_opts, 0);
|
||||
Xorriso_free_meM(ftext);
|
||||
Xorriso_free_meM(cmd_line);
|
||||
Xorriso_free_meM(prev_line);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
|
||||
|
||||
Copyright 2007-2021 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Copyright 2007-2022 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
|
||||
Provided under GPL version 2 or later.
|
||||
|
||||
@ -487,6 +487,25 @@ int Xorriso_option_assert_volid(struct XorrisO *xorriso, char *pattern,
|
||||
}
|
||||
|
||||
|
||||
/* Command -assess_indev_features */
|
||||
int Xorriso_option_assess_indev_features(struct XorrisO *xorriso, char *mode,
|
||||
int flag)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if(strcmp(mode, "plain") != 0 && strcmp(mode, "cmd") != 0 &&
|
||||
strcmp(mode, "as_mkisofs") != 0 && strcmp(mode, "replay") != 0 &&
|
||||
mode[0] != 0) {
|
||||
sprintf(xorriso->info_text, "-assess_indev_features: unknown mode '%s'",
|
||||
mode);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
ret= Xorriso_assess_written_features(xorriso, mode, 0);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
/* Option -auto_charset "on"|"off" */
|
||||
int Xorriso_option_auto_charset(struct XorrisO *xorriso, char *mode, int flag)
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
|
||||
|
||||
Copyright 2007-2021 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Copyright 2007-2022 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
|
||||
Provided under GPL version 2 or later.
|
||||
|
||||
@ -535,7 +535,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
};
|
||||
static char arg1_commands[][40]= {
|
||||
"abort_on","acl","add_plainly","application_id","application_use",
|
||||
"auto_charset","abstract_file",
|
||||
"auto_charset","abstract_file","assess_indev_features",
|
||||
"backslash_codes","blank","biblio_file",
|
||||
"calm_drive","cd","cdi","cdx","changes_pending","charset",
|
||||
"close","close_damaged",
|
||||
@ -710,6 +710,7 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
|
||||
"* Drive and media related inquiry actions (2):",
|
||||
"list_profiles", "list_formats", "list_speeds",
|
||||
"toc", "toc_of", "pvd_info", "report_system_area", "report_el_torito",
|
||||
"assess_indev_features",
|
||||
|
||||
"* Settings for file insertion:",
|
||||
"file_name_limit", "file_size_limit",
|
||||
@ -1082,6 +1083,10 @@ next_command:;
|
||||
(*idx)+= 2;
|
||||
ret= Xorriso_option_assert_volid(xorriso, arg1, arg2, 0);
|
||||
|
||||
} else if(strcmp(cmd,"assess_indev_features")==0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_assess_indev_features(xorriso, arg1, 0);
|
||||
|
||||
} else if(strcmp(cmd,"auto_charset")==0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_auto_charset(xorriso, arg1, 0);
|
||||
|
@ -2084,6 +2084,8 @@ int Xorriso_sieve_big(struct XorrisO *xorriso, int flag)
|
||||
10000, 1},
|
||||
{"Image size :", 3, "Image size :", "", 1, { 0, -1, -1, -1, -1, -1},
|
||||
1, 0},
|
||||
{"Indev feature:", 3, "Indev feature:", "= ", 2, { 0, 1, -1, -1, -1, -1},
|
||||
10000, 1},
|
||||
{"Jigdo files :", 3, "Jigdo files :", "", 1, { 0, -1, -1, -1, -1, -1},
|
||||
1, 0},
|
||||
{"Local ACL :", 3, "Local ACL :", "", 1, { 0, -1, -1, -1, -1, -1},
|
||||
|
@ -9,7 +9,7 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH XORRISO 1 "Version 1.5.5, Jun 02, 2022"
|
||||
.TH XORRISO 1 "Version 1.5.5, Sep 18, 2022"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -4440,6 +4440,48 @@ summary of drive state and medium content is printed.
|
||||
As further difference to \-toc, this command does not emit FAILURE events
|
||||
if the desired drive is not acquired.
|
||||
.TP
|
||||
\fB\-assess_indev_features\fR "plain"|"cmd"|"as_mkisofs"|"replay"
|
||||
Inspect the filesystem on \-indev for the presence of Rock Ridge, Joliet, or
|
||||
ISO 9660:1999, and for traces of other write options which seem to have been
|
||||
used when the filesystem was created.
|
||||
.br
|
||||
Note that this command does not detect and report a possibly present HFS+ tree.
|
||||
.br
|
||||
Mode "cmd" lists xorriso commands which would activate the detected settings.
|
||||
.br
|
||||
Mode "as_mkisofs" lists options of the \-as mkisofs emulation, which would
|
||||
activate those of the detected settings which are not default.
|
||||
.br
|
||||
Mode "replay" performs the commands which get listed by mode "cmd".
|
||||
.br
|
||||
Mode "plain" lists after a "Indev feature: " header name\-value pairs as
|
||||
delivered by libisofs function iso_read_image_feature_named(). See libisofs.h.
|
||||
The other modes derive their output from this list. I.e. the sequence of
|
||||
commands from "cmd" follows the sequence of "plain".
|
||||
.br
|
||||
Not leading to "cmd" lines are:
|
||||
.br
|
||||
"size=" tells the number of 2048 byte blocks of the filesystem.
|
||||
.br
|
||||
"eltorito=1" tells that El Torito boot equipment was detected.
|
||||
.br
|
||||
"tree_loaded=" tells which tree was loaded by \-indev:
|
||||
.br
|
||||
0 = ISO 9660 , 1 = Joliet , 2 = ISO 9660:1999
|
||||
.br
|
||||
"tree_loaded_text=" tells the same by name: "ISO9660", "Joliet", "ISO9660:1999"
|
||||
.br
|
||||
"rr_loaded=1" tells that Rock Ridge information was loaded with the tree.
|
||||
.br
|
||||
"aaip=1" tells that AAIP information was detected (ACL, xattr, MD5, ...).
|
||||
.br
|
||||
"relaxed_vol_atts=1" tells that the volume attributes like \-volid or
|
||||
\-preparer_id bear characters outside the restricted character sets which are
|
||||
specified for them by ECMA\-119.
|
||||
.br
|
||||
"rrip_1_10_px_ino=1" tells that with Rock Ridge 1.10 a PX entry was found which
|
||||
looks like from Rock Ridge 1.12.
|
||||
.TP
|
||||
\fB\-mount_cmd\fR drive entity id path
|
||||
Emit an appropriate command line for mounting the ISO session
|
||||
indicated by drive, entity and id.
|
||||
|
@ -2,7 +2,7 @@
|
||||
/* xorriso - libisoburn higher level API which creates, loads, manipulates
|
||||
and burns ISO 9660 filesystem images.
|
||||
|
||||
Copyright 2007-2021 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Copyright 2007-2022 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
|
||||
Provided under GPL version 2 or later.
|
||||
|
||||
@ -867,6 +867,9 @@ int Xorriso_sieve_dispose(struct XorrisO *xorriso, int flag);
|
||||
argv[3]= Volume Id
|
||||
"Image size :" up to 1 result from -print_size
|
||||
argv[0]= number of blocks with "s" appended
|
||||
"Indev feature:" up to 10000 results from -assess_indev_features plain
|
||||
argv[0]= name
|
||||
argv[1]= value
|
||||
"Jigdo files :" up to 1 result from -list_extras
|
||||
argv[0]= "yes" or "no"
|
||||
"Local ACL :" up to 1 result from -list_extras
|
||||
@ -1293,6 +1296,11 @@ int Xorriso_option_as(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int Xorriso_option_assert_volid(struct XorrisO *xorriso, char *pattern,
|
||||
char *severity, int flag);
|
||||
|
||||
/* Command -assess_indev_features */
|
||||
/* @since 1.5.6 */
|
||||
int Xorriso_option_assess_indev_features(struct XorrisO *xorriso, char *mode,
|
||||
int flag);
|
||||
|
||||
/* Command -auto_charset "on"|"off" */
|
||||
/* @since 0.3.8 */
|
||||
int Xorriso_option_auto_charset(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
@ -3734,6 +3734,40 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Comm
|
||||
short summary of drive state and medium content is printed.
|
||||
As further difference to -toc, this command does not emit FAILURE
|
||||
events if the desired drive is not acquired.
|
||||
-assess_indev_features "plain"|"cmd"|"as_mkisofs"|"replay"
|
||||
Inspect the filesystem on -indev for the presence of Rock Ridge,
|
||||
Joliet, or ISO 9660:1999, and for traces of other write options
|
||||
which seem to have been used when the filesystem was created.
|
||||
Note that this command does not detect and report a possibly
|
||||
present HFS+ tree.
|
||||
Mode "cmd" lists xorriso commands which would activate the detected
|
||||
settings.
|
||||
Mode "as_mkisofs" lists options of the -as mkisofs emulation, which
|
||||
would activate those of the detected settings which are not
|
||||
default.
|
||||
Mode "replay" performs the commands which get listed by mode "cmd".
|
||||
|
||||
Mode "plain" lists after a "Indev feature: " header name-value
|
||||
pairs as delivered by libisofs function
|
||||
iso_read_image_feature_named(). See libisofs.h. The other modes
|
||||
derive their output from this list. I.e. the sequence of commands
|
||||
from "cmd" follows the sequence of "plain".
|
||||
Not leading to "cmd" lines are:
|
||||
"size=" tells the number of 2048 byte blocks of the filesystem.
|
||||
"eltorito=1" tells that El Torito boot equipment was detected.
|
||||
"tree_loaded=" tells which tree was loaded by -indev:
|
||||
0 = ISO 9660 , 1 = Joliet , 2 = ISO 9660:1999
|
||||
"tree_loaded_text=" tells the same by name: "ISO9660", "Joliet",
|
||||
"ISO9660:1999"
|
||||
"rr_loaded=1" tells that Rock Ridge information was loaded with the
|
||||
tree.
|
||||
"aaip=1" tells that AAIP information was detected (ACL, xattr, MD5,
|
||||
...).
|
||||
"relaxed_vol_atts=1" tells that the volume attributes like -volid
|
||||
or -preparer_id bear characters outside the restricted character
|
||||
sets which are specified for them by ECMA-119.
|
||||
"rrip_1_10_px_ino=1" tells that with Rock Ridge 1.10 a PX entry was
|
||||
found which looks like from Rock Ridge 1.12.
|
||||
-mount_cmd drive entity id path
|
||||
Emit an appropriate command line for mounting the ISO session
|
||||
indicated by drive, entity and id. The result will be different on
|
||||
@ -5603,6 +5637,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -application_use sets application use field: SetWrite. (line 272)
|
||||
* -as emulates mkisofs or cdrecord: Emulation. (line 13)
|
||||
* -assert_volid rejects undesired images: Loading. (line 105)
|
||||
* -assess_indev_features shows filesystem features: Inquiry. (line 49)
|
||||
* -auto_charset learns character set from image: Loading. (line 117)
|
||||
* -backslash_codes enables backslash conversion: Scripting. (line 71)
|
||||
* -ban_stdio_write demands real drive: Loading. (line 346)
|
||||
@ -5729,8 +5764,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -mkdir creates ISO directory: Insert. (line 187)
|
||||
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 419)
|
||||
* -mount issues mount command for ISO session: Restore. (line 204)
|
||||
* -mount_cmd composes mount command line: Inquiry. (line 49)
|
||||
* -mount_cmd controls mount command: Inquiry. (line 65)
|
||||
* -mount_cmd composes mount command line: Inquiry. (line 83)
|
||||
* -mount_cmd controls mount command: Inquiry. (line 99)
|
||||
* -msg_op perform operations on program messages: Frontend. (line 27)
|
||||
* -mv renames files in ISO image: Manip. (line 37)
|
||||
* -mv renames single file in ISO image: Manip. (line 31)
|
||||
@ -5756,12 +5791,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -print prints result text line: Scripting. (line 102)
|
||||
* -print_info prints message text line: Scripting. (line 104)
|
||||
* -print_mark prints synchronizing text line: Scripting. (line 106)
|
||||
* -print_size predicts image size: Inquiry. (line 86)
|
||||
* -print_size predicts image size: Inquiry. (line 120)
|
||||
* -prog sets program name: Frontend. (line 176)
|
||||
* -prog_help prints help text: Frontend. (line 178)
|
||||
* -prompt prompts for enter key: Scripting. (line 110)
|
||||
* -publisher sets publisher id: SetWrite. (line 192)
|
||||
* -pvd_info shows image id strings: Inquiry. (line 108)
|
||||
* -pvd_info shows image id strings: Inquiry. (line 142)
|
||||
* -pwd tells working directory in ISO: Navigate. (line 19)
|
||||
* -pwdx tells working directory on disk: Navigate. (line 21)
|
||||
* -quoted_not_list sets exclusions: SetInsert. (line 74)
|
||||
@ -5772,8 +5807,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -read_speed set read speed: Loading. (line 11)
|
||||
* -reassure enables confirmation question: DialogCtl. (line 29)
|
||||
* -report_about controls verbosity: Exception. (line 53)
|
||||
* -report_el_torito shows Boot Catalog: Inquiry. (line 116)
|
||||
* -report_system_area shows MBR, GPT, and alike: Inquiry. (line 138)
|
||||
* -report_el_torito shows Boot Catalog: Inquiry. (line 150)
|
||||
* -report_system_area shows MBR, GPT, and alike: Inquiry. (line 172)
|
||||
* -return_with controls exit value: Exception. (line 38)
|
||||
* -rm deletes files from ISO image: Manip. (line 20)
|
||||
* -rmdir deletes ISO directory: Manip. (line 29)
|
||||
@ -5788,7 +5823,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -scsi_dev_family choose Linux device file type: AqDrive. (line 95)
|
||||
* -scsi_log reports SCSI commands: Scripting. (line 143)
|
||||
* -session_log logs written sessions: Scripting. (line 134)
|
||||
* -session_string composes session info line: Inquiry. (line 74)
|
||||
* -session_string composes session info line: Inquiry. (line 108)
|
||||
* -setfacl sets ACL in ISO image: Manip. (line 68)
|
||||
* -setfacl_list sets ACL in ISO image: Manip. (line 94)
|
||||
* -setfacl_r sets ACL in ISO image: Manip. (line 92)
|
||||
@ -5811,7 +5846,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -stdio_sync controls stdio buffer: SetWrite. (line 469)
|
||||
* -stream_recording controls defect management: SetWrite. (line 389)
|
||||
* -system_id sets system id: SetWrite. (line 205)
|
||||
* -tell_media_space reports free space: Inquiry. (line 98)
|
||||
* -tell_media_space reports free space: Inquiry. (line 132)
|
||||
* -temp_mem_limit curbs memory consumption: Scripting. (line 96)
|
||||
* -toc shows list of sessions: Inquiry. (line 27)
|
||||
* -toc_of shows list of sessions: Inquiry. (line 41)
|
||||
@ -5925,6 +5960,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* File names, curb length, -file_name_limit: Loading. (line 276)
|
||||
* File names, if Joliet is loaded: Loading. (line 242)
|
||||
* File names, if neither Rock Ridge nor Joliet: Loading. (line 229)
|
||||
* Filesytem features, show, -assess_indev_features: Inquiry. (line 49)
|
||||
* Filter, apply to file tree, -set_filter_r: Filter. (line 84)
|
||||
* Filter, apply to file, -set_filter: Filter. (line 58)
|
||||
* Filter, ban registration, -close_filter_list: Filter. (line 50)
|
||||
@ -5966,9 +6002,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* Image, set volume id, -volid: SetWrite. (line 168)
|
||||
* Image, set volume set id, -volset_id: SetWrite. (line 188)
|
||||
* Image, set volume timestamp, -volume_date: SetWrite. (line 211)
|
||||
* Image, show Boot Catalog: Inquiry. (line 116)
|
||||
* Image, show id strings, -pvd_info: Inquiry. (line 108)
|
||||
* Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 138)
|
||||
* Image, show Boot Catalog: Inquiry. (line 150)
|
||||
* Image, show id strings, -pvd_info: Inquiry. (line 142)
|
||||
* Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 172)
|
||||
* Image, _definition: Model. (line 9)
|
||||
* Input Character Set, _definition: Charset. (line 25)
|
||||
* Insert, enable overwriting, -overwrite: SetInsert. (line 139)
|
||||
@ -6103,11 +6139,11 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
(line 61)
|
||||
* Rock Ridge, _definition: Extras. (line 6)
|
||||
* Session, altered start address, -displacement: Loading. (line 78)
|
||||
* Session, info string, -session_string: Inquiry. (line 74)
|
||||
* Session, info string, -session_string: Inquiry. (line 108)
|
||||
* Session, issue mount command, -mount: Restore. (line 204)
|
||||
* Session, log when written, -session_log: Scripting. (line 134)
|
||||
* Session, mount command line, -mount_cmd: Inquiry. (line 49)
|
||||
* Session, mount parameters, -mount_opts: Inquiry. (line 65)
|
||||
* Session, mount command line, -mount_cmd: Inquiry. (line 83)
|
||||
* Session, mount parameters, -mount_opts: Inquiry. (line 99)
|
||||
* Session, select as input, -load: Loading. (line 54)
|
||||
* Session, _definition: Model. (line 6)
|
||||
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26)
|
||||
@ -6141,12 +6177,12 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* Write, enable HFS+, -hfsplus: SetWrite. (line 14)
|
||||
* Write, enable Joliet, -joliet: SetWrite. (line 10)
|
||||
* Write, fifo size, -fs: SetWrite. (line 479)
|
||||
* Write, free space, -tell_media_space: Inquiry. (line 98)
|
||||
* Write, free space, -tell_media_space: Inquiry. (line 132)
|
||||
* Write, log problematic disk files, -errfile_log: Scripting. (line 116)
|
||||
* Write, log written sessions, -session_log: Scripting. (line 134)
|
||||
* Write, padding image, -padding: SetWrite. (line 507)
|
||||
* Write, pending ISO image, -commit: Writing. (line 27)
|
||||
* Write, predict image size, -print_size: Inquiry. (line 86)
|
||||
* Write, predict image size, -print_size: Inquiry. (line 120)
|
||||
* Write, set speed, -speed: SetWrite. (line 371)
|
||||
* Write, simulation, -dummy: SetWrite. (line 476)
|
||||
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 500)
|
||||
@ -6187,35 +6223,35 @@ Node: Charset189084
|
||||
Node: Exception192413
|
||||
Node: DialogCtl198542
|
||||
Node: Inquiry201144
|
||||
Node: Navigate210026
|
||||
Node: Verify218733
|
||||
Node: Restore229882
|
||||
Node: Emulation242090
|
||||
Node: Scripting252546
|
||||
Node: Frontend260329
|
||||
Node: Examples269955
|
||||
Node: ExDevices271133
|
||||
Node: ExCreate271794
|
||||
Node: ExDialog273094
|
||||
Node: ExGrowing274365
|
||||
Node: ExModifying275174
|
||||
Node: ExBootable275684
|
||||
Node: ExCharset276239
|
||||
Node: ExPseudo277135
|
||||
Node: ExCdrecord278062
|
||||
Node: ExMkisofs278382
|
||||
Node: ExGrowisofs280279
|
||||
Node: ExException281432
|
||||
Node: ExTime281890
|
||||
Node: ExIncBackup282348
|
||||
Node: ExRestore286374
|
||||
Node: ExRecovery287320
|
||||
Node: Files287892
|
||||
Node: Environ289226
|
||||
Node: Seealso289974
|
||||
Node: Bugreport290691
|
||||
Node: Legal291282
|
||||
Node: CommandIdx292294
|
||||
Node: ConceptIdx310119
|
||||
Node: Navigate211859
|
||||
Node: Verify220566
|
||||
Node: Restore231715
|
||||
Node: Emulation243923
|
||||
Node: Scripting254379
|
||||
Node: Frontend262162
|
||||
Node: Examples271788
|
||||
Node: ExDevices272966
|
||||
Node: ExCreate273627
|
||||
Node: ExDialog274927
|
||||
Node: ExGrowing276198
|
||||
Node: ExModifying277007
|
||||
Node: ExBootable277517
|
||||
Node: ExCharset278072
|
||||
Node: ExPseudo278968
|
||||
Node: ExCdrecord279895
|
||||
Node: ExMkisofs280215
|
||||
Node: ExGrowisofs282112
|
||||
Node: ExException283265
|
||||
Node: ExTime283723
|
||||
Node: ExIncBackup284181
|
||||
Node: ExRestore288207
|
||||
Node: ExRecovery289153
|
||||
Node: Files289725
|
||||
Node: Environ291059
|
||||
Node: Seealso291807
|
||||
Node: Bugreport292524
|
||||
Node: Legal293115
|
||||
Node: CommandIdx294127
|
||||
Node: ConceptIdx312025
|
||||
|
||||
End Tag Table
|
||||
|
@ -50,7 +50,7 @@
|
||||
@c man .\" First parameter, NAME, should be all caps
|
||||
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
@c man .\" other parameters are allowed: see man(7), man(1)
|
||||
@c man .TH XORRISO 1 "Version 1.5.5, Jun 02, 2022"
|
||||
@c man .TH XORRISO 1 "Version 1.5.5, Sep 18, 2022"
|
||||
@c man .\" Please adjust this date whenever revising the manpage.
|
||||
@c man .\"
|
||||
@c man .\" Some roff macros, for reference:
|
||||
@ -5082,6 +5082,50 @@ summary of drive state and medium content is printed.
|
||||
As further difference to -toc, this command does not emit FAILURE events
|
||||
if the desired drive is not acquired.
|
||||
@c man .TP
|
||||
@item -assess_indev_features "plain"|"cmd"|"as_mkisofs"|"replay"
|
||||
@kindex -assess_indev_features shows filesystem features
|
||||
@cindex Filesytem features, show, -assess_indev_features
|
||||
Inspect the filesystem on -indev for the presence of Rock Ridge, Joliet, or
|
||||
ISO 9660:1999, and for traces of other write options which seem to have been
|
||||
used when the filesystem was created.
|
||||
@*
|
||||
Note that this command does not detect and report a possibly present HFS+ tree.
|
||||
@*
|
||||
Mode "cmd" lists xorriso commands which would activate the detected settings.
|
||||
@*
|
||||
Mode "as_mkisofs" lists options of the -as mkisofs emulation, which would
|
||||
activate those of the detected settings which are not default.
|
||||
@*
|
||||
Mode "replay" performs the commands which get listed by mode "cmd".
|
||||
@*
|
||||
Mode "plain" lists after a "Indev feature: " header name-value pairs as
|
||||
delivered by libisofs function iso_read_image_feature_named(). See libisofs.h.
|
||||
The other modes derive their output from this list. I.e. the sequence of
|
||||
commands from "cmd" follows the sequence of "plain".
|
||||
@*
|
||||
Not leading to "cmd" lines are:
|
||||
@*
|
||||
"size=" tells the number of 2048 byte blocks of the filesystem.
|
||||
@*
|
||||
"eltorito=1" tells that El Torito boot equipment was detected.
|
||||
@*
|
||||
"tree_loaded=" tells which tree was loaded by -indev:
|
||||
@*
|
||||
0 = ISO 9660 , 1 = Joliet , 2 = ISO 9660:1999
|
||||
@*
|
||||
"tree_loaded_text=" tells the same by name: "ISO9660", "Joliet", "ISO9660:1999"
|
||||
@*
|
||||
"rr_loaded=1" tells that Rock Ridge information was loaded with the tree.
|
||||
@*
|
||||
"aaip=1" tells that AAIP information was detected (ACL, xattr, MD5, ...).
|
||||
@*
|
||||
"relaxed_vol_atts=1" tells that the volume attributes like -volid or
|
||||
-preparer_id bear characters outside the restricted character sets which are
|
||||
specified for them by ECMA-119.
|
||||
@*
|
||||
"rrip_1_10_px_ino=1" tells that with Rock Ridge 1.10 a PX entry was found which
|
||||
looks like from Rock Ridge 1.12.
|
||||
@c man .TP
|
||||
@item -mount_cmd drive entity id path
|
||||
@kindex -mount_cmd composes mount command line
|
||||
@cindex Session, mount command line, -mount_cmd
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2022.06.13.205546"
|
||||
#define Xorriso_timestamP "2022.09.20.082738"
|
||||
|
@ -4,7 +4,7 @@
|
||||
a command line oriented batch and dialog tool which creates, loads,
|
||||
manipulates and burns ISO 9660 filesystem images.
|
||||
|
||||
Copyright 2007-2021 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Copyright 2007-2022 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
|
||||
Provided under GPL version 2 or later.
|
||||
|
||||
@ -676,6 +676,9 @@ int Xorriso_set_libisofs_now(struct XorrisO *xorriso, int flag);
|
||||
int Xorriso_obtain_indev_readsize(struct XorrisO *xorriso, uint32_t *blocks,
|
||||
int flag);
|
||||
|
||||
int Xorriso_assess_written_features(struct XorrisO *xorriso, char *mode,
|
||||
int flag);
|
||||
|
||||
/* Frontend to isoburn_conv_name_chars() */
|
||||
int Xorriso_conv_name_chars(struct XorrisO *xorriso, char *name,
|
||||
char **result, size_t *result_len,
|
||||
|
Loading…
Reference in New Issue
Block a user