New option -grow_blindly
This commit is contained in:
@ -2849,6 +2849,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
||||
m->outdev[0]= 0;
|
||||
m->out_drive_handle= NULL;
|
||||
m->dev_fd_1= -1;
|
||||
m->grow_blindly_msc2= -1;
|
||||
m->ban_stdio_write= 0;
|
||||
m->do_dummy= 0;
|
||||
m->do_close= 0;
|
||||
@ -4242,6 +4243,13 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
}
|
||||
|
||||
is_default= (xorriso->grow_blindly_msc2<0);
|
||||
sprintf(sfe, "%d", xorriso->grow_blindly_msc2);
|
||||
sprintf(line,"-grow_blindly %s\n",
|
||||
xorriso->grow_blindly_msc2 < 0 ? "off" : sfe);
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
if(strcmp(xorriso->indev,xorriso->outdev)==0) {
|
||||
sprintf(line,"-dev %s\n", Text_shellsafe(xorriso->indev,sfe,0));
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
@ -8716,7 +8724,10 @@ int Xorriso_option_commit(struct XorrisO *xorriso, int flag)
|
||||
if(flag&1)
|
||||
return(1);
|
||||
strcpy(newdev, xorriso->outdev);
|
||||
ret= Xorriso_option_dev(xorriso, newdev, 3|4);
|
||||
if(xorriso->grow_blindly_msc2>=0)
|
||||
ret= Xorriso_option_dev(xorriso, "", 3|4);
|
||||
else
|
||||
ret= Xorriso_option_dev(xorriso, newdev, 3|4);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
@ -9715,6 +9726,25 @@ int Xorriso_option_gid(struct XorrisO *xorriso, char *gid, int flag)
|
||||
}
|
||||
|
||||
|
||||
/* Option -grow_blindly */
|
||||
int Xorriso_option_grow_blindly(struct XorrisO *xorriso, char *msc2, int flag)
|
||||
{
|
||||
double num;
|
||||
int l;
|
||||
|
||||
if(msc2[0]==0 || strcmp(msc2,"-")==0 || strcmp(msc2, "off")==0) {
|
||||
xorriso->grow_blindly_msc2= -1;
|
||||
return(1);
|
||||
}
|
||||
num= Scanf_io_size(msc2, 0);
|
||||
l= strlen(msc2);
|
||||
if(msc2[l-1]<'0' || msc2[l-1]>'9')
|
||||
num/= 2048.0;
|
||||
xorriso->grow_blindly_msc2= num;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* Option -help and part of -prog_help */
|
||||
int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
@ -9736,10 +9766,12 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
"disk files with prefix \"stdio:\", e.g. stdio:/tmp/pseudo_drive .",
|
||||
" -dev address Set input and output drive and load eventual ISO image.",
|
||||
" Set the image expansion method to growing.",
|
||||
" -indev address Set input drive and load eventual ISO image. Switch from",
|
||||
" growing to modifying.",
|
||||
" -indev address Set input drive and load eventual ISO image. Use expansion",
|
||||
" methods modifying or blind growing.",
|
||||
" -outdev address",
|
||||
" Set output drive and switch from growing to modifying.",
|
||||
" Set output drive and use modifying or blind growing.",
|
||||
" -grow_blindly \"off\"|predicted_nwa",
|
||||
" Switch between modifying and blind growing.",
|
||||
" -load \"session\"|\"track\"|\"lba\"|\"sbsector\"|\"volid\"|\"auto\" id",
|
||||
" Load a particular (outdated) ISO image from a -dev or",
|
||||
" -indev which hosts more than one session.",
|
||||
@ -11986,7 +12018,8 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
static char arg1_commands[][40]= {
|
||||
"abort_on","add_plainly","blank","cd","cdi","cdx","close","dev",
|
||||
"dummy","dialog","disk_pattern","eject","iso_rr_pattern","follow",
|
||||
"format","fs","gid","history","indev","joliet","mark","not_leaf",
|
||||
"format","fs","gid","grow_blindly",
|
||||
"history","indev","joliet","mark","not_leaf",
|
||||
"not_list","not_mgt","options_from_file","osirrox","outdev","overwrite",
|
||||
"padding","path_list","pathspecs","pkt_output","print","prompt",
|
||||
"prog","publisher","reassure","report_about","rom_toc_scan",
|
||||
@ -12302,6 +12335,10 @@ next_command:;
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_gid(xorriso,arg1,0);
|
||||
|
||||
} else if(strcmp(cmd,"grow_blindly")==0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_grow_blindly(xorriso,arg1,0);
|
||||
|
||||
} else if(strcmp(cmd,"help")==0) {
|
||||
Xorriso_option_help(xorriso,0);
|
||||
|
||||
|
Reference in New Issue
Block a user