Fix handling of the 'noError' variable. According to the code comments,
one can set the 'noError' variable to ignore any errors that occur for the next command. However, the code was only unsetting 'noError' when an error actually occurred, so if you set 'noError', the next command completed ok, and the command after that failed, the second command's failure would be ignored. This fixes this by performing the 'noError' check earlier and then unsetting 'noError' after every command that is run. Sponsored by: The Weather Channel
This commit is contained in:
parent
3566425519
commit
f21ffaa690
@ -263,6 +263,13 @@ dispatchCommand(char *str)
|
||||
msgNotify("Warning: No such command ``%s''", str);
|
||||
i = DITEM_FAILURE;
|
||||
}
|
||||
/*
|
||||
* Allow a user to prefix a command with "noError" to cause
|
||||
* us to ignore any errors for that one command.
|
||||
*/
|
||||
if (i != DITEM_SUCCESS && variable_get(VAR_NO_ERROR))
|
||||
i = DITEM_SUCCESS;
|
||||
variable_unset(VAR_NO_ERROR);
|
||||
}
|
||||
return i;
|
||||
}
|
||||
@ -320,18 +327,10 @@ dispatch_execute(qelement *head)
|
||||
item = (command_buffer *) head->q_forw;
|
||||
|
||||
if (DITEM_STATUS(dispatchCommand(item->string)) != DITEM_SUCCESS) {
|
||||
/*
|
||||
* Allow a user to prefix a command with "noError" to cause
|
||||
* us to ignore any errors for that one command.
|
||||
*/
|
||||
if (variable_get(VAR_NO_ERROR))
|
||||
variable_unset(VAR_NO_ERROR);
|
||||
else {
|
||||
msgConfirm("Command `%s' failed - rest of script aborted.\n",
|
||||
item->string);
|
||||
result |= DITEM_FAILURE;
|
||||
break;
|
||||
}
|
||||
msgConfirm("Command `%s' failed - rest of script aborted.\n",
|
||||
item->string);
|
||||
result |= DITEM_FAILURE;
|
||||
break;
|
||||
}
|
||||
dispatch_free_command(item);
|
||||
}
|
||||
|
@ -263,6 +263,13 @@ dispatchCommand(char *str)
|
||||
msgNotify("Warning: No such command ``%s''", str);
|
||||
i = DITEM_FAILURE;
|
||||
}
|
||||
/*
|
||||
* Allow a user to prefix a command with "noError" to cause
|
||||
* us to ignore any errors for that one command.
|
||||
*/
|
||||
if (i != DITEM_SUCCESS && variable_get(VAR_NO_ERROR))
|
||||
i = DITEM_SUCCESS;
|
||||
variable_unset(VAR_NO_ERROR);
|
||||
}
|
||||
return i;
|
||||
}
|
||||
@ -320,18 +327,10 @@ dispatch_execute(qelement *head)
|
||||
item = (command_buffer *) head->q_forw;
|
||||
|
||||
if (DITEM_STATUS(dispatchCommand(item->string)) != DITEM_SUCCESS) {
|
||||
/*
|
||||
* Allow a user to prefix a command with "noError" to cause
|
||||
* us to ignore any errors for that one command.
|
||||
*/
|
||||
if (variable_get(VAR_NO_ERROR))
|
||||
variable_unset(VAR_NO_ERROR);
|
||||
else {
|
||||
msgConfirm("Command `%s' failed - rest of script aborted.\n",
|
||||
item->string);
|
||||
result |= DITEM_FAILURE;
|
||||
break;
|
||||
}
|
||||
msgConfirm("Command `%s' failed - rest of script aborted.\n",
|
||||
item->string);
|
||||
result |= DITEM_FAILURE;
|
||||
break;
|
||||
}
|
||||
dispatch_free_command(item);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user