mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-24 11:29:10 +00:00
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
77218da374
commit
e364f0da42
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=97778
@ -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…
Reference in New Issue
Block a user