From 2b180b1cceb8e0afb6a8cc091211355a34852f40 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Mon, 13 Oct 2008 03:05:31 -0400 Subject: [PATCH] #1485494: fixed signatures removal on reply --- program/steps/mail/compose.inc | 42 +++++++++++++++++++++++------------------- 1 files changed, 23 insertions(+), 19 deletions(-) diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index ba09fe8..5c6e03f 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -499,34 +499,38 @@ if (! $bodyIsHtml) { + // try to remove the signature + if (($sp = strrpos($body, '-- ')) !== false && ($sp == 0 || $body{$sp-1} == "\n")) + { + if ($body{$sp+3}==' ' || $body{$sp+3}=="\n" || $body{$sp+3}=="\r") + $body = substr($body, 0, max(0, $sp-1)); + } + // soft-wrap message first $body = rcmail_wrap_quoted($body, 75); - - // split body into single lines - $a_lines = preg_split('/\r?\n/', $body); - - // add > to each line - for($n=0; $n<sizeof($a_lines); $n++) - { - if (strpos($a_lines[$n], '>')===0) - $a_lines[$n] = '>'.$a_lines[$n]; - else - $a_lines[$n] = '> '.$a_lines[$n]; - } + + $body = rtrim($body, "\r\n"); + + if ($body) { + // split body into single lines + $a_lines = preg_split('/\r?\n/', $body); + + // add > to each line + for($n=0; $n<sizeof($a_lines); $n++) { + if (strpos($a_lines[$n], '>')===0) + $a_lines[$n] = '>'.$a_lines[$n]; + else + $a_lines[$n] = '> '.$a_lines[$n]; + } - $body = join("\n", $a_lines); + $body = join("\n", $a_lines); + } // add title line $prefix = sprintf("On %s, %s wrote:\n", $MESSAGE->headers->date, $MESSAGE->get_header('from')); - // try to remove the signature - if ($sp = strrpos($body, '-- ')) - { - if ($body{$sp+3}==' ' || $body{$sp+3}=="\n" || $body{$sp+3}=="\r") - $body = substr($body, 0, $sp-1); - } $suffix = ''; } else -- Gitblit v1.9.1