From ff6de99ae4f353f793c95208ad6407ac59a63376 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sun, 13 Oct 2013 10:12:43 -0400
Subject: [PATCH] Some micro-optimizations

---
 program/lib/Roundcube/rcube_base_replacer.php |    4 ++--
 program/lib/Roundcube/rcube_html2text.php     |    9 ++++++---
 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 a59bba9..fa67647 100644
--- a/program/lib/Roundcube/rcube_base_replacer.php
+++ b/program/lib/Roundcube/rcube_base_replacer.php
@@ -90,8 +90,8 @@
 
             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 9b248a3..6f79e2f 100644
--- a/program/lib/Roundcube/rcube_html2text.php
+++ b/program/lib/Roundcube/rcube_html2text.php
@@ -611,11 +611,13 @@
                     $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 @@
      */
     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 771602f..b73bc08 100644
--- a/program/lib/Roundcube/rcube_utils.php
+++ b/program/lib/Roundcube/rcube_utils.php
@@ -454,8 +454,8 @@
 
         // 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) {

--
Gitblit v1.9.1