New -blank mode prefix "force:"

This commit is contained in:
2012-10-24 09:59:13 +00:00
parent ad2b3341ab
commit f689525bee
8 changed files with 106 additions and 58 deletions

View File

@ -535,10 +535,10 @@ int Xorriso_option_biblio_file(struct XorrisO *xorriso, char *name, int flag)
/* @param flag bit0= format rather than blank
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_blank(struct XorrisO *xorriso, char *mode, int flag)
int Xorriso_option_blank(struct XorrisO *xorriso, char *in_mode, int flag)
{
char *cmd= "-blank";
int aq_ret, ret, mode_flag= 0, as_needed= 0, idx;
char *cmd= "-blank", *mode;
int aq_ret, ret, mode_flag= 0, as_needed= 0, idx, do_force= 0;
off_t size= 0;
if(flag&1)
@ -562,6 +562,11 @@ int Xorriso_option_blank(struct XorrisO *xorriso, char *mode, int flag)
if(ret<=0)
return(2);
if(strncmp(in_mode, "force:", 6) == 0) {
do_force= 1;
mode= in_mode + 6;
} else
mode= in_mode;
if(strcmp(mode, "as_needed")==0 || mode[0]==0)
as_needed= 1;
else if(strcmp(mode, "all")==0 || strcmp(mode, "full")==0)
@ -617,6 +622,11 @@ unusable_size:;
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
if(do_force) {
ret= Xorriso_pretend_full_disc(xorriso, 0);
if(ret <= 0)
return(ret);
}
if(as_needed)
ret= Xorriso_blank_as_needed(xorriso, (flag&1)<<2);
else if(flag&1)