From 571964e9d5107b3d691c66055260ed31e1bdcf90 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Mon, 8 Jun 2020 19:26:40 +0200 Subject: [PATCH] lib-sieve: sieve-interpreter - Add sieve_interpreter_program_jump_to(). --- src/lib-sieve/sieve-interpreter.c | 15 +++++++++++++++ src/lib-sieve/sieve-interpreter.h | 3 +++ 2 files changed, 18 insertions(+) diff --git a/src/lib-sieve/sieve-interpreter.c b/src/lib-sieve/sieve-interpreter.c index 94a0d0899..2669e21bf 100644 --- a/src/lib-sieve/sieve-interpreter.c +++ b/src/lib-sieve/sieve-interpreter.c @@ -815,6 +815,21 @@ sieve_interpreter_do_program_jump(struct sieve_interpreter *interp, return SIEVE_EXEC_OK; } +int sieve_interpreter_program_jump_to(struct sieve_interpreter *interp, + sieve_size_t jmp_target, + bool break_loops) +{ + int ret; + + ret = sieve_interpreter_check_program_jump(interp, jmp_target, + break_loops); + if (ret <= 0) + return ret; + + return sieve_interpreter_do_program_jump( + interp, jmp_target, break_loops); +} + int sieve_interpreter_program_jump(struct sieve_interpreter *interp, bool jump, bool break_loops) { diff --git a/src/lib-sieve/sieve-interpreter.h b/src/lib-sieve/sieve-interpreter.h index 89b98e523..ec380293c 100644 --- a/src/lib-sieve/sieve-interpreter.h +++ b/src/lib-sieve/sieve-interpreter.h @@ -92,6 +92,9 @@ void sieve_interpreter_interrupt(struct sieve_interpreter *interp); sieve_size_t sieve_interpreter_program_counter(struct sieve_interpreter *interp); +int sieve_interpreter_program_jump_to(struct sieve_interpreter *interp, + sieve_size_t jmp_target, + bool break_loops); int sieve_interpreter_program_jump(struct sieve_interpreter *interp, bool jump, bool break_loops); -- GitLab