From 962eff7dfe2456c32d08587d0c413155842578eb Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 20 Sep 2013 02:34:55 -0400
Subject: [PATCH] Fix bug where at least one additional address of vacation message was required (#1489345)

---
 plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php |    7 ++++++-
 plugins/managesieve/Changelog                            |    2 ++
 2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/plugins/managesieve/Changelog b/plugins/managesieve/Changelog
index e660ee1..491a484 100644
--- a/plugins/managesieve/Changelog
+++ b/plugins/managesieve/Changelog
@@ -1,3 +1,5 @@
+- Fix bug where at least one additional address of vacation message was required (#1489345)
+
 * version 7.0 [2013-09-09]
 -----------------------------------------------------------
 - Add vacation-seconds extension support (RFC 6131)
diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php
index e4efef5..685a66a 100644
--- a/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php
+++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php
@@ -871,7 +871,12 @@
 // @TODO: vacation :mime, :from, :handle
 
                     foreach ((array)$this->form['actions'][$i]['addresses'] as $aidx => $address) {
-                        if (!rcube_utils::check_email($address)) {
+                        $this->form['actions'][$i]['addresses'][$aidx] = $address = trim($address);
+
+                        if (empty($address)) {
+                            unset($this->form['actions'][$i]['addresses'][$aidx]);
+                        }
+                        else if (!rcube_utils::check_email($address)) {
                             $this->errors['actions'][$i]['addresses'] = $this->plugin->gettext('noemailwarning');
                             break;
                         }

--
Gitblit v1.9.1