diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2011-10-10 08:05:48 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2011-10-10 08:05:48 +0000 |
| commit | 6380c571c1ccbf127ce0262532a30b3dcc7e0347 (patch) | |
| tree | b6adc6f6bfc58b25d1e52f9517cd71aacde0e610 /plugins/managesieve/lib/rcube_sieve_script.php | |
| parent | 6b4876b53b2f56a57b54f91695e33438c00338b7 (diff) | |
- Support KEP:14's commented variables
git-svn-id: https://svn.roundcube.net/trunk@5325 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'plugins/managesieve/lib/rcube_sieve_script.php')
| -rw-r--r-- | plugins/managesieve/lib/rcube_sieve_script.php | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/plugins/managesieve/lib/rcube_sieve_script.php b/plugins/managesieve/lib/rcube_sieve_script.php index e303f2779..8fc0e5545 100644 --- a/plugins/managesieve/lib/rcube_sieve_script.php +++ b/plugins/managesieve/lib/rcube_sieve_script.php @@ -181,10 +181,13 @@ class rcube_sieve_script $exts = array(); $idx = 0; - if (!empty($this->vars) && in_array('variables', (array)$this->capabilities)) { - array_push($exts, 'variables'); + if (!empty($this->vars)) { + if (in_array('variables', (array)$this->capabilities)) { + $has_vars = true; + array_push($exts, 'variables'); + } foreach ($this->vars as $var) { - $output .= 'set '; + $output .= (empty($has_vars) ? '# ' : '') . 'set '; foreach (array_diff(array_keys($var), array('name', 'value')) as $opt) { $output .= ":$opt "; } @@ -411,7 +414,7 @@ class rcube_sieve_script $rule = array(); // Comments - while ($script[0] == '#') { + while (!empty($script) && $script[0] == '#') { $endl = strpos($script, "\n"); $line = $endl ? substr($script, 0, $endl) : $script; @@ -419,6 +422,10 @@ class rcube_sieve_script if (preg_match('/^# rule:\[(.*)\]/', $line, $matches)) { $rulename = $matches[1]; } + // KEP:14 variables + else if (preg_match('/^# set "([^"]+)" "([^"]+)";$/', $line, $matches)) { + $this->set_var($matches[1], $matches[2]); + } // Horde-Ingo format else if (!empty($options['format']) && $options['format'] == 'INGO' && preg_match('/^# (.*)/', $line, $matches) |
