From e48f8945b32ab5b67f1cdeb53a37d3d196e31e4d Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Fri, 20 May 2016 05:19:01 -0400 Subject: [PATCH] Fix bug where message list columns could be in wrong order after column drag-n-drop and list sorting --- program/include/rcmail.php | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 40 insertions(+), 2 deletions(-) diff --git a/program/include/rcmail.php b/program/include/rcmail.php index 7df25f9..a6a61a3 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -178,7 +178,7 @@ // Also strtoupper/strtolower and other methods are locale-aware // for these locales it is problematic (#1490519) if (in_array($lang, array('tr_TR', 'ku', 'az_AZ'))) { - setlocale(LC_CTYPE, 'en_US.utf8', 'en_US.UTF-8'); + setlocale(LC_CTYPE, 'en_US.utf8', 'en_US.UTF-8', 'C'); } } @@ -592,6 +592,8 @@ // try to log in if (!$storage->connect($host, $username, $pass, $port, $ssl)) { + // Wait a second to slow down brute-force attacks (#1490549) + sleep(1); return false; } @@ -811,6 +813,8 @@ // this need to be full url to make redirects work $absolute = true; } + else if ($secure && ($token = $this->get_request_token())) + $url .= $delm . '_token=' . urlencode($token); if ($absolute || $full) { // add base path to this Roundcube installation @@ -1924,7 +1928,8 @@ foreach ($emoticons as $idx => $file) { // <img title="Cry" src="http://.../program/js/tinymce/plugins/emoticons/img/smiley-cry.gif" border="0" alt="Cry" /> - $search[] = '/<img title="[a-z ]+" src="https?:\/\/[a-z0-9_.\/-]+\/tinymce\/plugins\/emoticons\/img\/'.$file.'.gif"[^>]+\/>/i'; + $file = preg_quote('program/js/tinymce/plugins/emoticons/img/' . $file . '.gif', '/'); + $search[] = '/<img (title="[a-z ]+" )?src="[^"]+' . $file . '"[^>]+\/>/i'; $replace[] = $idx; } @@ -2317,6 +2322,39 @@ return file_get_contents($name, false); } + /** + * Converts HTML content into plain text + * + * @param string $html HTML content + * @param array $options Conversion parameters (width, links, charset) + * + * @return string Plain text + */ + public function html2text($html, $options = array()) + { + $default_options = array( + 'links' => true, + 'width' => 75, + 'body' => $html, + 'charset' => RCUBE_CHARSET, + ); + + $options = array_merge($default_options, (array) $options); + + // Plugins may want to modify HTML in another/additional way + $options = $this->plugins->exec_hook('html2text', $options); + + // Convert to text + if (!$options['abort']) { + $converter = new rcube_html2text($options['body'], + false, $options['links'], $options['width'], $options['charset']); + + $options['body'] = rtrim($converter->get_text()); + } + + return $options['body']; + } + /************************************************************************ ********* Deprecated methods (to be removed) ********* -- Gitblit v1.9.1