summaryrefslogtreecommitdiff
path: root/program/steps
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-04-11 12:24:00 +0000
committeralecpl <alec@alec.pl>2011-04-11 12:24:00 +0000
commitd3105370870a8c51aaeb6a18f561311202da3356 (patch)
tree9b0d50549f35a44d7eb438bd7ad3dfa9ca72d263 /program/steps
parent382b8b1351e1a4598f04ab184cec803b96d7e4b7 (diff)
- Apply fixes from trunk
Diffstat (limited to 'program/steps')
-rw-r--r--program/steps/mail/func.inc63
-rw-r--r--program/steps/settings/save_prefs.inc15
2 files changed, 44 insertions, 34 deletions
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index f700a6cdb..b40ec099b 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -726,71 +726,74 @@ function rcmail_plain_body($body, $flowed=false)
$body = preg_replace_callback($replacer->mailto_pattern, array($replacer, 'mailto_callback'), $body);
// split body into single lines
- $a_lines = preg_split('/\r?\n/', $body);
+ $body = preg_split('/\r?\n/', $body);
$quote_level = 0;
$last = -1;
// find/mark quoted lines...
- for ($n=0, $cnt=count($a_lines); $n < $cnt; $n++) {
- if ($a_lines[$n][0] == '>' && preg_match('/^(>+\s*)+/', $a_lines[$n], $regs)) {
+ for ($n=0, $cnt=count($body); $n < $cnt; $n++) {
+ if ($body[$n][0] == '>' && preg_match('/^(>+\s*)+/', $body[$n], $regs)) {
$q = strlen(preg_replace('/\s/', '', $regs[0]));
- $a_lines[$n] = substr($a_lines[$n], strlen($regs[0]));
-
- if ($q > $quote_level)
- $a_lines[$n] = $replacer->get_replacement($replacer->add(
- str_repeat('<blockquote>', $q - $quote_level))) . $a_lines[$n];
- else if ($q < $quote_level)
- $a_lines[$n] = $replacer->get_replacement($replacer->add(
- str_repeat('</blockquote>', $quote_level - $q))) . $a_lines[$n];
+ $body[$n] = substr($body[$n], strlen($regs[0]));
+
+ if ($q > $quote_level) {
+ $body[$n] = $replacer->get_replacement($replacer->add(
+ str_repeat('<blockquote>', $q - $quote_level))) . $body[$n];
+ }
+ else if ($q < $quote_level) {
+ $body[$n] = $replacer->get_replacement($replacer->add(
+ str_repeat('</blockquote>', $quote_level - $q))) . $body[$n];
+ }
else if ($flowed) {
// previous line is flowed
- if (isset($a_lines[$last]) && $a_lines[$n]
- && $a_lines[$last][strlen($a_lines[$last])-1] == ' ') {
+ if (isset($body[$last]) && $body[$n]
+ && $body[$last][strlen($body[$last])-1] == ' ') {
// merge lines
- $a_lines[$last] .= $a_lines[$n];
- unset($a_lines[$n]);
+ $body[$last] .= $body[$n];
+ unset($body[$n]);
}
- else
+ else {
$last = $n;
+ }
}
}
else {
$q = 0;
if ($flowed) {
// sig separator - line is fixed
- if ($a_lines[$n] == '-- ') {
- $last = $n;
+ if ($body[$n] == '-- ') {
+ $last = $last_sig = $n;
}
else {
// remove space-stuffing
- if ($a_lines[$n][0] == ' ')
- $a_lines[$n] = substr($a_lines[$n], 1);
+ if ($body[$n][0] == ' ')
+ $body[$n] = substr($body[$n], 1);
// previous line is flowed?
- if (isset($a_lines[$last]) && $a_lines[$n]
- && $a_lines[$last] != '-- '
- && $a_lines[$last][strlen($a_lines[$last])-1] == ' '
+ if (isset($body[$last]) && $body[$n]
+ && $last != $last_sig
+ && $body[$last][strlen($body[$last])-1] == ' '
) {
- $a_lines[$last] .= $a_lines[$n];
- unset($a_lines[$n]);
+ $body[$last] .= $body[$n];
+ unset($body[$n]);
}
else {
$last = $n;
}
}
if ($quote_level > 0)
- $a_lines[$last] = $replacer->get_replacement($replacer->add(
- str_repeat('</blockquote>', $quote_level))) . $a_lines[$last];
+ $body[$last] = $replacer->get_replacement($replacer->add(
+ str_repeat('</blockquote>', $quote_level))) . $body[$last];
}
else if ($quote_level > 0)
- $a_lines[$n] = $replacer->get_replacement($replacer->add(
- str_repeat('</blockquote>', $quote_level))) . $a_lines[$n];
+ $body[$n] = $replacer->get_replacement($replacer->add(
+ str_repeat('</blockquote>', $quote_level))) . $body[$n];
}
$quote_level = $q;
}
- $body = join("\n", $a_lines);
+ $body = join("\n", $body);
// quote plain text (don't use Q() here, to display entities "as is")
$table = get_html_translation_table(HTML_SPECIALCHARS);
diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc
index feeb18341..2bf814722 100644
--- a/program/steps/settings/save_prefs.inc
+++ b/program/steps/settings/save_prefs.inc
@@ -97,10 +97,10 @@ switch ($CURR_SECTION)
break;
}
-$data = rcmail::get_instance()->plugins->exec_hook('preferences_save',
+$plugin = rcmail::get_instance()->plugins->exec_hook('preferences_save',
array('prefs' => $a_user_prefs, 'section' => $CURR_SECTION));
-$a_user_prefs = $data['prefs'];
+$a_user_prefs = $plugin['prefs'];
// don't override these parameters
foreach ((array)$CONFIG['dont_override'] as $p)
@@ -159,10 +159,17 @@ switch ($CURR_SECTION)
break;
}
-if ($USER->save_prefs($a_user_prefs))
+// Save preferences
+if (!$plugin['abort'])
+ $saved = $USER->save_prefs($a_user_prefs);
+else
+ $saved = $plugin['result'];
+
+if ($saved)
$OUTPUT->show_message('successfullysaved', 'confirmation');
+else
+ $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error');
// display the form again
rcmail_overwrite_action('edit-prefs');
-