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