Implemented -overwrite control
This commit is contained in:
@ -1669,7 +1669,7 @@ return:
|
||||
/* >>> how to distinguish error from EOF , do i need a (FILE *) ? */
|
||||
return(0);
|
||||
}
|
||||
if(strlen(entry->d_name)>4095) {
|
||||
if(strlen(entry->d_name)>=SfileadrL) {
|
||||
fprintf(stderr,"--- oversized directory entry (number %d) :\n %s",
|
||||
o->count+1,entry->d_name);
|
||||
return(-1);
|
||||
@ -1769,7 +1769,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
||||
m->global_uid= 0;
|
||||
m->volid[0]= 0;
|
||||
m->do_global_gid= 0;
|
||||
m->do_overwrite= 1;
|
||||
m->do_overwrite= 2;
|
||||
m->do_reassure= 0;
|
||||
m->global_gid= 0;
|
||||
m->indev[0]= 0;
|
||||
@ -2818,8 +2818,9 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
}
|
||||
|
||||
is_default= !!xorriso->do_overwrite;
|
||||
sprintf(line,"-overwrite %s\n",(xorriso->do_overwrite ? "on" : "off"));
|
||||
is_default= (xorriso->do_overwrite==2);
|
||||
sprintf(line,"-overwrite %s\n",(xorriso->do_overwrite == 1 ? "on" :
|
||||
(xorriso->do_overwrite == 2 ? "nondir" : "off")));
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
@ -3095,7 +3096,7 @@ int Xorriso_eval_problem_status(struct XorrisO *xorriso, int ret, int flag)
|
||||
|
||||
if(xorriso->problem_status < xorriso->abort_on_severity &&
|
||||
xorriso->problem_status > 0) {
|
||||
if(xorriso->problem_status >= sev) {
|
||||
if(xorriso->problem_status >= sev && !(flag&1)) {
|
||||
sprintf(xorriso->info_text,
|
||||
"xorriso : NOTE : Tolerated problem event of severity '%s'\n",
|
||||
xorriso->problem_status_text);
|
||||
@ -3106,7 +3107,8 @@ int Xorriso_eval_problem_status(struct XorrisO *xorriso, int ret, int flag)
|
||||
sprintf(xorriso->info_text,
|
||||
"xorriso : ABORT : -abort_on '%s' encountered '%s'",
|
||||
xorriso->abort_on_text, xorriso->problem_status_text);
|
||||
Xorriso_info(xorriso, 0);/* submit not as problem event */
|
||||
if(!(flag&1))
|
||||
Xorriso_info(xorriso, 0);/* submit not as problem event */
|
||||
ret= -1;
|
||||
} else if(ret>0)
|
||||
ret= 1;
|
||||
@ -4359,10 +4361,20 @@ ex:;
|
||||
}
|
||||
|
||||
|
||||
/* Option -overwrite "on"|"off" */
|
||||
/* Option -overwrite "on"|"nondir"|"off" */
|
||||
int Xorriso_option_overwrite(struct XorrisO *xorriso, char *mode, int flag)
|
||||
{
|
||||
xorriso->do_overwrite= !!strcmp(mode, "off");
|
||||
if(strcmp(mode, "off")==0)
|
||||
xorriso->do_overwrite= 0;
|
||||
else if(strcmp(mode, "on")==0)
|
||||
xorriso->do_overwrite= 0;
|
||||
else if(strcmp(mode, "nondir")==0)
|
||||
xorriso->do_overwrite= 2;
|
||||
else {
|
||||
sprintf(xorriso->info_text, "-overwrite: unknown mode '%s'", mode);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||
return(0);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user