From ae679d44f00e8685d685ce5c43f3d737d9f300b2 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Tue, 27 Dec 2011 22:21:34 +0100 Subject: [PATCH] lib-sieve: fixed bug in message snapshots. Message substitutions would not always cause a proper snapshot. --- src/lib-sieve/sieve-message.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib-sieve/sieve-message.c b/src/lib-sieve/sieve-message.c index 52bed3e8d..2ceb0cddd 100644 --- a/src/lib-sieve/sieve-message.c +++ b/src/lib-sieve/sieve-message.c @@ -78,6 +78,7 @@ struct sieve_message_context { ARRAY_DEFINE(ext_contexts, void *); unsigned int edit_snapshot:1; + unsigned int substitute_snapshot:1; }; /* @@ -376,7 +377,7 @@ int sieve_message_substitute return -1; } - if ( msgctx->edit_snapshot ) { + if ( msgctx->substitute_snapshot ) { version = sieve_message_version_new(msgctx); } else { version = sieve_message_version_get(msgctx); @@ -392,6 +393,7 @@ int sieve_message_substitute sieve_message_context_flush(msgctx); + msgctx->substitute_snapshot = FALSE; msgctx->edit_snapshot = FALSE; return 1; @@ -436,6 +438,7 @@ void sieve_message_snapshot (struct sieve_message_context *msgctx) { msgctx->edit_snapshot = TRUE; + msgctx->substitute_snapshot = TRUE; } /* -- GitLab