From a15a59515882c5937cec8605bc73c78f76205cbf Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Tue, 19 Mar 2013 08:54:36 -0400 Subject: [PATCH] Make mime.types common locations list OS-aware --- program/lib/Roundcube/rcube_mime.php | 35 +++++++++++++++++++++-------------- 1 files changed, 21 insertions(+), 14 deletions(-) diff --git a/program/lib/Roundcube/rcube_mime.php b/program/lib/Roundcube/rcube_mime.php index e9d5cf1..ac4be95 100644 --- a/program/lib/Roundcube/rcube_mime.php +++ b/program/lib/Roundcube/rcube_mime.php @@ -544,8 +544,8 @@ if ($line[0] == '>') { // remove quote chars, store level in $level $line = preg_replace('/^>+/', '', $line, -1, $level); - // remove (optional) space-staffing - $line = preg_replace('/^ /', '', $line); + // remove (optional) space-staffing and spaces before the line end + $line = preg_replace('/(^ | +$)/', '', $line); $prefix = str_repeat('>', $level) . ' '; $line = $prefix . self::wordwrap($line, $length - $level - 2, " \r\n$prefix", false, $charset); } @@ -595,11 +595,12 @@ while (count($list)) { $line = array_shift($list); $l = mb_strlen($line); - $newlen = $len + $l + ($len ? 1 : 0); + $space = $len ? 1 : 0; + $newlen = $len + $l + $space; if ($newlen <= $width) { - $string .= ($len ? ' ' : '').$line; - $len += (1 + $l); + $string .= ($space ? ' ' : '').$line; + $len += ($space + $l); } else { if ($l > $width) { @@ -717,21 +718,27 @@ // load mapping file $file_paths = array(); - if ($mime_types = rcube::get_instance()->config->get('mime_types')) + if ($mime_types = rcube::get_instance()->config->get('mime_types')) { $file_paths[] = $mime_types; + } // try common locations - $file_paths[] = '/etc/mime.types'; - $file_paths[] = '/etc/httpd/mime.types'; - $file_paths[] = '/etc/httpd2/mime.types'; - $file_paths[] = '/etc/apache/mime.types'; - $file_paths[] = '/etc/apache2/mime.types'; - $file_paths[] = '/usr/local/etc/httpd/conf/mime.types'; - $file_paths[] = '/usr/local/etc/apache/conf/mime.types'; + if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { + $file_paths[] = 'C:/xampp/apache/conf/mime.types.'; + } + else { + $file_paths[] = '/etc/mime.types'; + $file_paths[] = '/etc/httpd/mime.types'; + $file_paths[] = '/etc/httpd2/mime.types'; + $file_paths[] = '/etc/apache/mime.types'; + $file_paths[] = '/etc/apache2/mime.types'; + $file_paths[] = '/usr/local/etc/httpd/conf/mime.types'; + $file_paths[] = '/usr/local/etc/apache/conf/mime.types'; + } foreach ($file_paths as $fp) { if (is_readable($fp)) { - $lines = file($fp, FILE_IGNORE_NEW_LINES); + $lines = file($fp, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); break; } } -- Gitblit v1.9.1