diff options
Diffstat (limited to 'program/lib/Roundcube')
| -rw-r--r-- | program/lib/Roundcube/rcube_base_replacer.php | 4 | ||||
| -rw-r--r-- | program/lib/Roundcube/rcube_html2text.php | 9 | ||||
| -rw-r--r-- | program/lib/Roundcube/rcube_utils.php | 4 | 
3 files changed, 10 insertions, 7 deletions
| diff --git a/program/lib/Roundcube/rcube_base_replacer.php b/program/lib/Roundcube/rcube_base_replacer.php index a59bba926..fa6764753 100644 --- a/program/lib/Roundcube/rcube_base_replacer.php +++ b/program/lib/Roundcube/rcube_base_replacer.php @@ -90,8 +90,8 @@ class rcube_base_replacer              if (preg_match_all('/\.\.\//', $path, $matches, PREG_SET_ORDER)) {                  foreach ($matches as $a_match) { -                    if (strrpos($base_url, '/')) { -                        $base_url = substr($base_url, 0, strrpos($base_url, '/')); +                    if ($pos = strrpos($base_url, '/')) { +                        $base_url = substr($base_url, 0, $pos);                      }                      $path = substr($path, 3);                  } diff --git a/program/lib/Roundcube/rcube_html2text.php b/program/lib/Roundcube/rcube_html2text.php index 9b248a3a8..6f79e2f8e 100644 --- a/program/lib/Roundcube/rcube_html2text.php +++ b/program/lib/Roundcube/rcube_html2text.php @@ -611,11 +611,13 @@ class rcube_html2text                      $body = preg_replace_callback('/((?:^|\n)>*)([^\n]*)/', array($this, 'blockquote_citation_ballback'), trim($body));                      $body = '<pre>' . htmlspecialchars($body) . '</pre>'; -                    $text = substr($text, 0, $start) . $body . "\n" . substr($text, $end + 13); +                    $text = substr_replace($text, $body . "\n", $start, $end + 13 - $start);                      $offset = 0; +                      break;                  } -            } while ($end || $next); +            } +            while ($end || $next);          }      } @@ -624,8 +626,9 @@ class rcube_html2text       */      public function blockquote_citation_ballback($m)      { -        $line = ltrim($m[2]); +        $line  = ltrim($m[2]);          $space = $line[0] == '>' ? '' : ' '; +          return $m[1] . '>' . $space . $line;      } diff --git a/program/lib/Roundcube/rcube_utils.php b/program/lib/Roundcube/rcube_utils.php index 771602fa7..b73bc0812 100644 --- a/program/lib/Roundcube/rcube_utils.php +++ b/program/lib/Roundcube/rcube_utils.php @@ -454,8 +454,8 @@ class rcube_utils          // cut out all contents between { and }          while (($pos = strpos($source, '{', $last_pos)) && ($pos2 = strpos($source, '}', $pos))) { -            $styles = substr($source, $pos+1, $pos2-($pos+1)); -            $length = strlen($styles); +            $length = $pos2 - $pos - 1; +            $styles = substr($source, $pos+1, $length);              // check every line of a style block...              if ($allow_remote) { | 
