diff --git a/src/lib-sieve/sieve.c b/src/lib-sieve/sieve.c index afbce860f04a63fbf914d6d2000ccaaa0c336761..e27d4c8da2e2707fc2f1a34d829eb9f1bd1d1c01 100644 --- a/src/lib-sieve/sieve.c +++ b/src/lib-sieve/sieve.c @@ -747,17 +747,18 @@ sieve_multiscript_start_test(struct sieve_instance *svinst, } static void -sieve_multiscript_test(struct sieve_multiscript *mscript, bool *keep) +sieve_multiscript_test(struct sieve_multiscript *mscript) { const struct sieve_script_env *senv = mscript->exec_env.scriptenv; if (mscript->status > 0) { mscript->status = (sieve_result_print(mscript->result, senv, - mscript->teststream, keep) ? + mscript->teststream, + &mscript->keep) ? SIEVE_EXEC_OK : SIEVE_EXEC_FAILURE); } else { - if (keep != NULL) *keep = TRUE; + mscript->keep = TRUE; } sieve_result_mark_executed(mscript->result); @@ -766,19 +767,20 @@ sieve_multiscript_test(struct sieve_multiscript *mscript, bool *keep) static void sieve_multiscript_execute(struct sieve_multiscript *mscript, struct sieve_error_handler *ehandler, - enum sieve_execute_flags flags, bool *keep) + enum sieve_execute_flags flags) { mscript->exec_env.flags = flags; if (mscript->status > 0) { mscript->status = sieve_result_execute(mscript->result, FALSE, - keep, ehandler); + &mscript->keep, + ehandler); } else { if (sieve_result_implicit_keep(mscript->result, ehandler, FALSE) <= 0) mscript->status = SIEVE_EXEC_KEEP_FAILED; else - if (keep != NULL) *keep = TRUE; + mscript->keep = TRUE; } } @@ -800,10 +802,10 @@ bool sieve_multiscript_run(struct sieve_multiscript *mscript, mscript->keep = FALSE; if (mscript->teststream != NULL) - sieve_multiscript_test(mscript, &mscript->keep); + sieve_multiscript_test(mscript); else { sieve_multiscript_execute(mscript, action_ehandler, - flags, &mscript->keep); + flags); } if (!mscript->keep) mscript->active = FALSE; @@ -845,10 +847,10 @@ void sieve_multiscript_run_discard(struct sieve_multiscript *mscript, mscript->keep = FALSE; if (mscript->teststream != NULL) - sieve_multiscript_test(mscript, &mscript->keep); + sieve_multiscript_test(mscript); else { sieve_multiscript_execute(mscript, action_ehandler, - flags, &mscript->keep); + flags); } if (mscript->status == SIEVE_EXEC_FAILURE) mscript->status = SIEVE_EXEC_KEEP_FAILED;