Review Request: backports to support imap4flags in cyrus-imapd-2.4
Ken Murchison
murch at andrew.cmu.edu
Fri Oct 31 14:53:52 EDT 2014
I think backporting strarray is just fine. In fact, I may have already
done so for caldav-2.4. I know I backported a bunch of struct buf API
additions.
On 10/31/2014 02:51 PM, James Cassell wrote:
> Hello,
>
> I've backported six strarray_t patches to cyrus-imapd-2.4.17 to support
> the sieve imap4flags extension. Are these patches a reasonable backport
> to 2.4?
>
> I started the imap4flags extension on 2.4, but rebased it onto master
> and completed the work there. I have since backported it to 2.4, but it
> relied on the strarray_t in several places. Is it better to have these
> strarray_t patches backported, or should I do the backport so that it
> won't require these extra patches. The latter will require more work.
> The former is already complete.
>
> I'm mostly concerned about the strarray_t patches I've backported, but
> if there any comments on the imap4flags code itself, I'm all ears.
>
> Thanks.
>
> V/r,
> James Cassell
>
>
>
> The following changes since commit
> d1df8aff4ab1b916a7794b39ca4be8e72b1548af:
>
> Bump version for cyrus-imapd to 2.4.17 (2012-12-01 19:57:54 +0000)
>
> are available in the git repository at:
>
> git://git.cyrusimap.org/git/cyrus-imapd
> dev/cassell/for-review-imap4flags-2.4
>
> for you to fetch changes up to a67c68d95d09aa7006eab1e2fa5b1cfbebbc0274:
>
> [sieve] bump bytecode version for imap4flags extension (2014-10-31
> 14:14:37 -0400)
>
> ----------------------------------------------------------------
> Bron Gondwana (1):
> strarray: add flags support to _split*
>
> Greg Banks (6):
> use strarray_t for appendstage.flags[]
> Fix compile b0rkage in nntpd.c
> Use strarray_t in cmd_store() index_store()
> Replace struct boundary with strarray_t
> Replace struct sieve_imapflags_t with strarray_t
> Replace stringlist_t with strarray_t.
>
> James Cassell (40):
> [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] sieve.y: remove bytecode dependence on sieve.y
> [sieve] add legacy test cases for hasflag test
> [sieve] bump bytecode version for imap4flags extension
>
> doc/specs.html | 2 +
> imap/append.c | 17 +-
> imap/append.h | 3 +-
> imap/global.c | 2 +-
> imap/imapd.c | 53 +---
> imap/index.c | 8 +-
> imap/index.h | 3 +-
> imap/lmtp_sieve.c | 12 +-
> imap/lmtpd.c | 17 +-
> imap/lmtpd.h | 6 +-
> imap/message.c | 62 ++---
> imap/nntpd.c | 2 +-
> lib/imapoptions | 2 +-
> lib/strarray.c | 23 +-
> lib/strarray.h | 7 +-
> sieve/Makefile.in | 2 +-
> sieve/README | 3 +
> sieve/bc_dump.c | 33 ++-
> sieve/bc_emit.c | 60 ++++-
> sieve/bc_eval.c | 212
> +++++++++++++--
> sieve/bc_generate.c | 58 +++--
> sieve/bytecode.h | 63 ++++-
> sieve/flags.c | 59 +++++
> sieve/flags.h | 15 ++
> sieve/interp.c | 14 +-
> sieve/interp.h | 2 +-
> sieve/message.c | 78 ++++--
> sieve/message.h | 8 +-
> sieve/script.c | 115 +++------
> sieve/script.h | 1 +
> sieve/sieve-lex.l | 2 +
> sieve/sieve.y | 285
> ++++++++++++++-------
> sieve/sieve_interface.h | 14 +-
> sieve/sieved.c | 40 ++-
> sieve/test.c | 28 +-
> .../actionExtensions/serverm/ueamail-imap4flags | 11 +
> .../actionExtensions/testm/ueatest-imap4flags | 6 +
> .../actionExtensions/uberExtensionActionScript.key | 12 +
> .../actionExtensions/uberExtensionActionScript.s | 21 +-
> sieve/tests/testExtension/serverm/uetmail-hasflag | 11 +
> sieve/tests/testExtension/testm/uetest-hasflag | 7 +
> .../testExtension/uberExtensionTestScript.key | 14 +
> .../tests/testExtension/uberExtensionTestScript.s | 92 ++++++-
> sieve/tree.c | 62 ++---
> sieve/tree.h | 39 ++-
> sieve/varlist.c | 79 ++++++
> sieve/varlist.h | 32 +++
> 47 files changed, 1205 insertions(+), 492 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
--
Kenneth Murchison
Principal Systems Software Engineer
Carnegie Mellon University
More information about the Cyrus-devel
mailing list