New option -signal_handling

This commit is contained in:
2011-04-23 15:23:35 +00:00
parent 936ba3bf72
commit de8a416827
15 changed files with 260 additions and 56 deletions

View File

@ -1144,6 +1144,47 @@ ex:;
}
/* Option -signal_handling */
/* @param flag bit0= prescan mode: do not yet install the eventual handler
else: when switching from other modes to "off":
activate mode "sig_dfl"
*/
int Xorriso_option_signal_handling(struct XorrisO *xorriso, char *mode,
int flag)
{
int ret, behavior;
if (strcmp(mode, "off") == 0) {
behavior= Xorriso__get_signal_behavior(0);
if(flag & 1) {
behavior= 0;
} else if(behavior != 0) {
sprintf(xorriso->info_text,
"Signal handling mode \"off\" comes too late. Defaulted to \"sig_dfl\"\n");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
behavior= 2;
}
} else if(strcmp(mode, "libburn") == 0 || strcmp(mode, "on") == 0) {
behavior= 1;
} else if (strcmp(mode, "sig_dfl") == 0) {
behavior= 2;
} else if (strcmp(mode, "sig_ign") == 0) {
behavior= 3;
} else {
sprintf(xorriso->info_text, "-signal_handling: unknown mode '%s'", mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
Xorriso_msgs_submit(xorriso, 0,
"Use one of: \"off\",\"on\",\"sig_dfl\",\"sig_ign\"", 0, "HINT", 0);
return(0);
}
Xorriso__preset_signal_behavior(behavior, 0);
if(flag & 1)
return(1);
ret= Xorriso_set_signal_handling(xorriso, 0);
return(ret);
}
/* Option -speed */
int Xorriso_option_speed(struct XorrisO *xorriso, char *speed, int flag)
{