Reporting some relaxation commands with -report_el_torito modes "cmd" and "mkisofs" if CHRP is detected. Performing them with -boot_image any "replay".
This commit is contained in:
@@ -240,6 +240,8 @@ ex:;
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= no info message "Loading ISO image tree"
|
||||
*/
|
||||
int Xorriso_make_read_options(struct XorrisO *xorriso,
|
||||
struct burn_drive *drive,
|
||||
struct isoburn_read_opts **ropts,
|
||||
@@ -311,7 +313,7 @@ int Xorriso_make_read_options(struct XorrisO *xorriso,
|
||||
state= isoburn_disc_get_status(drive);
|
||||
if(state != BURN_DISC_BLANK) {
|
||||
ret= isoburn_disc_get_msc1(drive, &load_lba);
|
||||
if(ret > 0) {
|
||||
if(ret > 0 && !(flag & 1)) {
|
||||
sprintf(xorriso->info_text,
|
||||
"Loading ISO image tree from LBA %d", load_lba);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
@@ -3865,6 +3867,8 @@ int Xorriso_feature_to_cmd(struct XorrisO *xorriso, char *name, char *value,
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= do not print xorriso->result_line, but accumulate it
|
||||
*/
|
||||
int Xorriso_assess_written_features(struct XorrisO *xorriso, char *mode,
|
||||
int flag)
|
||||
{
|
||||
@@ -3876,11 +3880,16 @@ int Xorriso_assess_written_features(struct XorrisO *xorriso, char *mode,
|
||||
IsoReadImageFeatures *features= NULL;
|
||||
struct isoburn_imgen_opts *imgen_opts= NULL;
|
||||
char *ftext= NULL, *cpt, *npt, *ept, *prev_line= NULL, *cmd_line= NULL;
|
||||
char *result_acc= 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);
|
||||
if(flag & 1) {
|
||||
Xorriso_alloc_meM(result_acc, char, 10 * SfileadrL);
|
||||
result_acc[0]= 0;
|
||||
}
|
||||
prev_line[0]= 0;
|
||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||
"when assessing written features", 0);
|
||||
@@ -3892,7 +3901,7 @@ int Xorriso_assess_written_features(struct XorrisO *xorriso, char *mode,
|
||||
"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);
|
||||
ret= Xorriso_make_read_options(xorriso, drive, &ropts, 1);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
ret = isoburn_assess_written_features(drive, ropts, &features, &imgen_opts,
|
||||
@@ -3962,7 +3971,12 @@ int Xorriso_assess_written_features(struct XorrisO *xorriso, char *mode,
|
||||
replay_count++;
|
||||
} else {
|
||||
strcat(xorriso->result_line, "\n");
|
||||
Xorriso_result(xorriso, 0);
|
||||
if(flag & 1) {
|
||||
if(strlen(result_acc) + strlen(xorriso->result_line) < 10 * SfileadrL)
|
||||
strcat(result_acc, xorriso->result_line);
|
||||
} else {
|
||||
Xorriso_result(xorriso, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3972,6 +3986,8 @@ int Xorriso_assess_written_features(struct XorrisO *xorriso, char *mode,
|
||||
replay_count);
|
||||
Xorriso_info(xorriso, 0);
|
||||
}
|
||||
if(flag & 1)
|
||||
strcpy(xorriso->result_line, result_acc);
|
||||
ret= 1;
|
||||
ex:;
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
@@ -3982,6 +3998,7 @@ ex:;
|
||||
if(imgen_opts != NULL)
|
||||
isoburn_igopt_destroy(&imgen_opts, 0);
|
||||
Xorriso_free_meM(ftext);
|
||||
Xorriso_free_meM(result_acc);
|
||||
Xorriso_free_meM(cmd_line);
|
||||
Xorriso_free_meM(prev_line);
|
||||
return(ret);
|
||||
|
Reference in New Issue
Block a user