Pull Request: Sieve imap4flags extension
James Cassell
fedoraproject at cyberpear.com
Mon Oct 20 07:11:02 EDT 2014
Hello,
After over a year since I began, I have finished implementing the
imap4flags extension. It is ready for 2.5.
Thanks.
V/r,
James Cassell
P.S., Resending from the correct address so the list will accept my
message.
The following changes since commit
d8beae4e3a9490b0435caee22ddae313b8f4b17b:
[mboxevent] Add an extra, optional parameter vnd.cmu.sessionId to
event notifications (2014-10-07 10:03:40 +0200)
are available in the git repository at:
https://github.com/cyberpear/cyrus-imapd.git
for-upstream-imap4flags-2.5
for you to fetch changes up to 854647adae568fa3d5e42238cdf316ff67319e13:
[sieve] bump bytecode version for imap4flags extension (2014-10-20
03:29:57 -0400)
----------------------------------------------------------------
Guillermo A. Amaral (3):
Index Extension - Fix backward compatibility
Date and Index Extension Fixes
Update docs and bump bytecode version.
James Cassell (46):
[sieve] fix backward compatibility for sieve index extension
[sieve] Date and Index Extensions: return false instead of
SIEVE_FAIL
[cunit] cunit.pl: fix init of CU_SuiteInfo type for CUnit 2.1-3
Merge branch 'date-extension'
Merge branch 'CUnit_2.1-3'
[sieve] add imap4flags reference
[sieve] add parser support for imap4flags
[sieve] add imap4flags awareness to sieve interpreter
[sieve] update bytecode to support imap4flags
[sieve] imap4flags support for bytecode generator
[sieve] imap4flags support for bytecode emitter
[sieve] imap4flags support for bytecode decompiler
[sieve] bc_emit.c: fix comment
[sieve] only 'fileinto' once per folder (RFC 3028)
[sieve] fileinto: ensure last flag list value wins (RFC 5232)
[sieve] keep: ensure last flag list value wins (RFC 5232)
[sieve] bc_generate,bc_emit: put new parameter first
[sieve] message.c: add :copy support to keep action
[sieve] make sieve_{add,remove}flag() functions case insensitive
[sieve] bc_eval.c: support for :flags parameter on KEEP and
FILEINTO
[sieve] bc_emit.c: add comments for B_FILEINTO
[sieve] add legacy test cases for :flags argument to fileinto and
keep
[sieve] bc_eval: track current value of internal flags variable
[sieve] bc_eval.c: support for imap4flags hasflag test
[sieve] update sieve_fileinto() and sieve_keep() to use :flags
parameter
[sieve] sieve.y: verify :flags parameter is a valid list of flags
[sieve] sieve.y: free_ftags(): free flags stringlist
[sieve] sieve.y: support for space-separated flags within a string
[sieve] tree.c: free flags stringlists in free_tree() and
free_test()
[sieve] sieve.y: 'require' imap4flags for hasflag test and :flags
arg
[sieve] Anticipate bytecode changes for VARIABLES extension
[sieve] bc_dump.c: support imap4flags keep, fileinto, hasflag
[sieve] sieved: update bytecode decompiler for imap4flags
[sieve] added varlist.{c,h} in anticipation of the variables
extension
[sieve] remove dependence on actionflags parameter
[sieve] bc_eval.c: add :count match-type support to hasflag test
[sieve] move verify_flaglist() to flags.c for reuse elsewhere
[sieve] sieve.y: an invalid flag should not cause a parsing error
[sieve] properly handle NULL flag lists
Revert "[sieve] update sieve_fileinto() and sieve_keep() to use
:flags parameter"
[sieve] complete removal of no-longer-used actionflags parameter
[sieve] remove superfluous sieve_addflag() and _removeflag()
functions
[sieve] bytecode: don't emit unused :index parameter for hasflag
test
[sieve] sieve.y: remove bytecode dependence on sieve.y
[sieve] add legacy test cases for hasflag test
[sieve] bump bytecode version for imap4flags extension
Makefile.am | 6 +-
configure.ac | 4 +
cunit/cunit.pl | 13 +
doc/specs.html | 4 +
lib/imapoptions | 2 +-
sieve/README | 3 +
sieve/bc_dump.c | 115 ++++++-
sieve/bc_emit.c | 72 +++-
sieve/bc_eval.c | 375
++++++++++++++++++---
sieve/bc_generate.c | 48 ++-
sieve/bytecode.h | 26 +-
sieve/flags.c | 59 ++++
sieve/flags.h | 16 +
sieve/interp.c | 2 +
sieve/message.c | 76 +++--
sieve/message.h | 4 +-
sieve/script.c | 68 ++--
sieve/script.h | 1 +
sieve/sieve-lex.l | 2 +
sieve/sieve.y | 196 ++++++++---
sieve/sieve_interface.h | 1 +
sieve/sieved.c | 146 +++++++-
.../actionExtensions/serverm/ueamail-imap4flags | 11 +
.../actionExtensions/testm/ueatest-imap4flags | 6 +
.../actionExtensions/uberExtensionActionScript.key | 12 +
.../actionExtensions/uberExtensionActionScript.s | 22 +-
sieve/tests/testExtension/serverm/uetmail-hasflag | 11 +
sieve/tests/testExtension/testm/uetest-hasflag | 7 +
.../testExtension/uberExtensionTestScript.key | 14 +
.../tests/testExtension/uberExtensionTestScript.s | 91 ++++-
sieve/tree.c | 5 +
sieve/tree.h | 8 +-
sieve/varlist.c | 79 +++++
sieve/varlist.h | 32 ++
34 files changed, 1305 insertions(+), 232 deletions(-)
create mode 100644 sieve/flags.c
create mode 100644 sieve/flags.h
create mode 100644
sieve/tests/actionExtensions/serverm/ueamail-imap4flags
create mode 100644
sieve/tests/actionExtensions/testm/ueatest-imap4flags
create mode 100644 sieve/tests/testExtension/serverm/uetmail-hasflag
create mode 100644 sieve/tests/testExtension/testm/uetest-hasflag
create mode 100644 sieve/varlist.c
create mode 100644 sieve/varlist.h
More information about the Cyrus-devel
mailing list