diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php index 103329858..067dbc017 100644 --- a/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php +++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php @@ -1124,7 +1124,12 @@ class rcube_sieve_engine $this->form['actions'][$i]['comparator'] = $delheader_comp[$idx]; $this->form['actions'][$i]['index'] = $delheader_index[$idx]; - if (!empty($this->form['actions'][$i]['index']) && !preg_match('/^[0-9]+$/i', $this->form['actions'][$i]['index'])) { + if (empty($this->form['actions'][$i]['index'])) { + if (!empty($this->form['actions'][$i]['last'])) { + $this->errors['actions'][$i]['index'] = $this->plugin->gettext('lastindexempty'); + } + } + else if (!preg_match('/^[0-9]+$/i', $this->form['actions'][$i]['index'])) { $this->errors['actions'][$i]['index'] = $this->plugin->gettext('forbiddenchars'); } } diff --git a/plugins/managesieve/localization/en_US.inc b/plugins/managesieve/localization/en_US.inc index fbd4c577f..3814d237a 100644 --- a/plugins/managesieve/localization/en_US.inc +++ b/plugins/managesieve/localization/en_US.inc @@ -276,5 +276,6 @@ $messages['forwardsaved'] = 'Forward data saved successfully.'; $messages['emptyvacationbody'] = 'Body of vacation message is required!'; $messages['duplicate.conflict.err'] = 'Both header and unique identifier are not allowed.'; $messages['disabledaction'] = 'Action not permitted.'; +$messages['lastindexempty'] = 'Index is required when counting from end'; ?>