New options -print_info and -print_mark
This commit is contained in:
@ -246,11 +246,38 @@ int Xorriso_option_preparer_id(struct XorrisO *xorriso, char *name, int flag)
|
||||
}
|
||||
|
||||
|
||||
/* Option -print */
|
||||
/* Options -print , -print_info , -print_mark */
|
||||
/* @param flag bit0-1= channel: 0=result, 1=info, 2=mark */
|
||||
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag)
|
||||
{
|
||||
sprintf(xorriso->result_line,"%s\n",text);
|
||||
Xorriso_result(xorriso,1);
|
||||
int maxl, l, mode;
|
||||
|
||||
l= strlen(text);
|
||||
mode= flag & 3;
|
||||
if(mode == 1)
|
||||
maxl= sizeof(xorriso->info_text);
|
||||
else if(mode == 2)
|
||||
maxl= sizeof(xorriso->mark_text);
|
||||
else
|
||||
maxl= sizeof(xorriso->result_line);
|
||||
if(l >= maxl) {
|
||||
sprintf(xorriso->info_text, "Output text too long for -print%s(%d > %d)",
|
||||
mode == 1 ? "_info" : mode == 2 ? "_mark" : "", l, maxl);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||
return(0);
|
||||
}
|
||||
if(mode == 1) {
|
||||
sprintf(xorriso->info_text,"%s\n", text);
|
||||
Xorriso_info(xorriso,0);
|
||||
} else if(mode == 2) {
|
||||
strcpy(xorriso->info_text, xorriso->mark_text);
|
||||
strcpy(xorriso->mark_text, text);
|
||||
Xorriso_mark(xorriso,0);
|
||||
strcpy(xorriso->mark_text, xorriso->info_text);
|
||||
} else {
|
||||
sprintf(xorriso->result_line,"%s\n",text);
|
||||
Xorriso_result(xorriso,1);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user