From 3f4521bcf4b538b6ac54817cfad22b51e347546d Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Wed, 17 Jun 2015 03:03:03 -0400 Subject: [PATCH] Fix so plain text signature field uses monospace font (#1490435) --- program/lib/Roundcube/rcube_utils.php | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) diff --git a/program/lib/Roundcube/rcube_utils.php b/program/lib/Roundcube/rcube_utils.php index f4c0e90..e1b9bdb 100644 --- a/program/lib/Roundcube/rcube_utils.php +++ b/program/lib/Roundcube/rcube_utils.php @@ -985,6 +985,28 @@ } /** + * Compare two strings for matching words (order not relevant) + * + * @param string Haystack + * @param string Needle + * @return boolen True if match, False otherwise + */ + public static function words_match($haystack, $needle) + { + $a_needle = self::tokenize_string($needle, 1); + $haystack = join(" ", self::tokenize_string($haystack, 1)); + + $hits = 0; + foreach ($a_needle as $w) { + if (stripos($haystack, $w) !== false) { + $hits++; + } + } + + return $hits >= count($a_needle); + } + + /** * Parse commandline arguments into a hash array * * @param array $aliases Argument alias names @@ -1116,4 +1138,34 @@ return $url; } + + /** + * Generate a ramdom string + * + * @param int String length + * + * @return string The generated random string + */ + public static function random_bytes($length) + { + if (function_exists('openssl_random_pseudo_bytes')) { + $random = openssl_random_pseudo_bytes(ceil($length / 2)); + $random = bin2hex($random); + + // if the length wasn't even... + if ($length < strlen($random)) { + $random = substr($random, 0, $length); + } + } + else { + $alpha = 'ABCDEFGHIJKLMNOPQERSTUVXYZabcdefghijklmnopqrtsuvwxyz0123456789+*%&?!$-_='; + $random = ''; + + for ($i = 0; $i < $length; $i++) { + $random .= $alpha[rand(0, strlen($alpha)-1)]; + } + } + + return $random; + } } -- Gitblit v1.9.1