Skip to content
Snippets Groups Projects
Commit eb4b1f97 authored by Stephan Bosch's avatar Stephan Bosch
Browse files

Updated documentation with respect to regex externsion and match-type support.

parent fbc4e037
No related branches found
No related tags found
No related merge requests found
Compilation
-----------
Refer to INSTALL file.
Installation
------------
......@@ -30,20 +35,20 @@ Features
What works:
* Scripts can be parsed, the grammar is fully supported.
* Script validation (contextual analysis) works almost completely.
* Script code generation works for most core commands with exception
of match-type arguments. Comparators and address-part modifiers already work.
* Interpreter runs and dumps core commands and tests. Comparators and
address-part modifiers have the desired effect. Match types other than :is are
not supported yet. Action commands have no effect.
* Script code generation works for most core commands. Comparators, match-types
and address-part modifiers already work.
* Interpreter runs and dumps core commands and tests. Comparators, match-types and
address-part modifiers have the desired effect. Match type :matches is not
supported yet. Action commands have no effect.
Implemented extensions:
Implemented extensions and their implementation status:
subaddress: full
comparator-i;ascii-numeric: full, but fails to handle leading zeros
vacation: validation and generation only. Execution is broken.
relational: validation and generation only.
regex: skeleton
regex: full, but suboptimal
Other extensionsions will be added a soon as the necessary infrastructure is
Other extensions will be added a soon as the necessary infrastructure is
available. Extensions supported by cmu-sieve have priority, although variables
might be implemented somewhere in between.
......@@ -74,9 +79,11 @@ INTERPRETER: sieve-interpreter.c
TODO
----
* Implement match-type execution
* Further implement error handling and limit the maximum number of errors.
* Resolve code duplication amongst comparator, address-part and match-type
support as much as possible.
* Use dovecot streams for code dump (debugging), currently the code is riddled
with printf()s.
* Produce a fully working interpreter that actually executes actions, currently
tests are evaluated and actions just print their occurence.
* Give the binary format some more thought, it is currently quite rough and
......@@ -86,6 +93,4 @@ TODO
* Automate script tests; i.e. build a test suite.
* Use mmap for the binary script representation.
* Allow the currently in-memory byte-code to be stored as a script binary
* Use dovecot streams for code dump (debugging), currently the code is riddled
with printf()s.
/* Extension regex
* --------------------
* ---------------
*
* Author: Stephan Bosch
* Authors: Stephan Bosch
* Specification: draft-murchison-sieve-regex-07
* Implementation: skeleton
* Status: under development
* Implementation: full, but suboptimal
* Status: experimental, largely untested
*
* FIXME: Regular expressions are compiled during compilation and
* again during interpretation. This is suboptimal and should be
* changed. This requires dumping the compiled regex to the binary.
* Most likely, this will only be possible when we implement regular
* expressions ourselves.
*
*/
......@@ -67,9 +73,6 @@ static bool ext_regex_load(int ext_id)
return TRUE;
}
/* Actual extension implementation */
/* Extension access structures */
extern const struct sieve_match_type_extension regex_match_extension;
......@@ -195,6 +198,8 @@ bool mtch_regex_validate_context
return TRUE;
}
/* Actual extension implementation */
void *mtch_regex_match_init
(const struct sieve_match_type *mtch ATTR_UNUSED,
const struct sieve_comparator *cmp, const char *key,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment

Consent

On this website, we use the web analytics service Matomo to analyze and review the use of our website. Through the collected statistics, we can improve our offerings and make them more appealing for you. Here, you can decide whether to allow us to process your data and set corresponding cookies for these purposes, in addition to technically necessary cookies. Further information on data protection—especially regarding "cookies" and "Matomo"—can be found in our privacy policy. You can withdraw your consent at any time.