New -blank and -format modes as_needed

This commit is contained in:
2008-05-12 19:36:23 +00:00
parent 9b7451f893
commit 0f8e6f24db
5 changed files with 189 additions and 32 deletions

View File

@ -7712,8 +7712,7 @@ int Xorriso_option_ban_stdio_write(struct XorrisO *xorriso, int flag)
int Xorriso_option_blank(struct XorrisO *xorriso, char *mode, int flag)
{
char drive_name[SfileadrL], *cmd= "-blank";
int aq_ret;
int ret, aq_flag= 2, mode_flag;
int aq_ret, ret, aq_flag= 2, mode_flag, as_needed= 0;
if(flag&1)
cmd= "-format";
@ -7737,26 +7736,33 @@ int Xorriso_option_blank(struct XorrisO *xorriso, char *mode, int flag)
if(ret<=0)
return(2);
if(strcmp(mode, "all")==0 || strcmp(mode, "full")==0)
if(strcmp(mode, "as_needed")==0)
as_needed= 1;
else if(strcmp(mode, "all")==0 || strcmp(mode, "full")==0)
mode_flag= 0;
else if(strcmp(mode, "deformat")==0 || strcmp(mode, "deformat_sequential")==0)
else if((strcmp(mode, "deformat")==0 ||
strcmp(mode, "deformat_sequential")==0) && !(flag&1))
mode_flag= 2;
else if(strcmp(mode, "deformat_quickest")==0 ||
strcmp(mode, "deformat_sequential_quickest")==0)
else if((strcmp(mode, "deformat_quickest")==0 ||
strcmp(mode, "deformat_sequential_quickest")==0) && !(flag&1))
mode_flag= 3;
else if(strcmp(mode, "fast")==0 || mode[0]==0)
else if(strcmp(mode, "fast")==0)
mode_flag= 1;
else if(mode[0]==0)
mode_flag= !(flag&1);
else {
sprintf(xorriso->info_text,
"%s: Unknown %s mode '%s'",
cmd, ((flag&1) ? "format" : "blank"), mode);
cmd, ((flag&1) ? "-format" : "-blank"), mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
if(flag&1)
ret= Xorriso_format_media(xorriso, 0);
if(as_needed)
ret= Xorriso_blank_as_needed(xorriso, (flag&1)<<2);
else if(flag&1)
ret= Xorriso_format_media(xorriso, mode_flag&1);
else
ret= Xorriso_blank_media(xorriso, mode_flag);
ret= Xorriso_blank_media(xorriso, mode_flag&3);
if(ret==0)
return(ret);
strcpy(drive_name, xorriso->outdev);