summaryrefslogtreecommitdiff
path: root/plugins/managesieve/lib/rcube_sieve_script.php
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/managesieve/lib/rcube_sieve_script.php')
-rw-r--r--plugins/managesieve/lib/rcube_sieve_script.php16
1 files changed, 11 insertions, 5 deletions
diff --git a/plugins/managesieve/lib/rcube_sieve_script.php b/plugins/managesieve/lib/rcube_sieve_script.php
index 8fc0e5545..3c6993dcc 100644
--- a/plugins/managesieve/lib/rcube_sieve_script.php
+++ b/plugins/managesieve/lib/rcube_sieve_script.php
@@ -187,11 +187,17 @@ class rcube_sieve_script
array_push($exts, 'variables');
}
foreach ($this->vars as $var) {
- $output .= (empty($has_vars) ? '# ' : '') . 'set ';
- foreach (array_diff(array_keys($var), array('name', 'value')) as $opt) {
- $output .= ":$opt ";
+ if (empty($has_vars)) {
+ // 'variables' extension not supported, put vars in comments
+ $output .= sprintf("# %s %s\n", $var['name'], $var['value']);
+ }
+ else {
+ $output .= 'set ';
+ foreach (array_diff(array_keys($var), array('name', 'value')) as $opt) {
+ $output .= ":$opt ";
+ }
+ $output .= self::escape_string($var['name']) . ' ' . self::escape_string($var['value']) . ";\n";
}
- $output .= self::escape_string($var['name']) . ' ' . self::escape_string($var['value']) . ";\n";
}
}
@@ -423,7 +429,7 @@ class rcube_sieve_script
$rulename = $matches[1];
}
// KEP:14 variables
- else if (preg_match('/^# set "([^"]+)" "([^"]+)";$/', $line, $matches)) {
+ else if (preg_match('/^# (EDITOR|EDITOR_VERSION) (.+)$/', $line, $matches)) {
$this->set_var($matches[1], $matches[2]);
}
// Horde-Ingo format