summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2006-09-04 12:26:30 +0000
committerthomascube <thomas@roundcube.net>2006-09-04 12:26:30 +0000
commit2f2f15b7aabe19e45dad9bddb7eb7f4394aa1e21 (patch)
treed97276fc3bd8fbd7eeabafce157d0a32ec00f89f
parentbf0452585baf0f8a1d72095095bc06b132217dbb (diff)
Little improvements for message parsing and encoding
-rw-r--r--index.php22
-rw-r--r--program/include/main.inc2
-rw-r--r--program/include/rcube_imap.inc5
3 files changed, 18 insertions, 11 deletions
diff --git a/index.php b/index.php
index ff73a0030..68c0f1773 100644
--- a/index.php
+++ b/index.php
@@ -2,7 +2,7 @@
/*
+-----------------------------------------------------------------------+
| RoundCube Webmail IMAP Client |
- | Version 0.1-20060901 |
+ | Version 0.1-20060904 |
| |
| Copyright (C) 2005-2006, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
@@ -40,7 +40,7 @@
*/
-define('RCMAIL_VERSION', '0.1-20060901');
+define('RCMAIL_VERSION', '0.1-20060904');
// define global vars
$CHARSET = 'UTF-8';
@@ -87,12 +87,6 @@ require_once('PEAR.php');
// set PEAR error handling
// PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_NOTICE);
-// use gzip compression if supported
-if (function_exists('ob_gzhandler') && !ini_get('zlib.output_compression'))
- ob_start('ob_gzhandler');
-else
- ob_start();
-
// catch some url/post parameters
$_task = get_input_value('_task', RCUBE_INPUT_GPC);
@@ -104,6 +98,18 @@ if (empty($_task))
if (!empty($_GET['_remote']))
$REMOTE_REQUEST = TRUE;
+
+
+// set output buffering
+if ($_action != 'get' && $_action != 'viewsource')
+ {
+ // use gzip compression if supported
+ if (function_exists('ob_gzhandler') && !ini_get('zlib.output_compression'))
+ ob_start('ob_gzhandler');
+ else
+ ob_start();
+ }
+
// start session with requested task
rcmail_startup($_task);
diff --git a/program/include/main.inc b/program/include/main.inc
index 921494829..ae7d50b9f 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -842,7 +842,7 @@ function rcube_charset_convert($str, $from, $to=NULL)
$from = strtoupper($from);
$to = $to==NULL ? strtoupper($GLOBALS['CHARSET']) : strtoupper($to);
- if ($from==$to || $str=='')
+ if ($from==$to || $str=='' || empty($from))
return $str;
// convert charset using mbstring module
diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc
index bcbea816e..c4dfd2023 100644
--- a/program/include/rcube_imap.inc
+++ b/program/include/rcube_imap.inc
@@ -1010,10 +1010,11 @@ class rcube_imap
// get part size
if (!empty($part[6]) && $part[6]!='NIL')
$struct->size = intval($part[6]);
-
+
// read part disposition
$di = count($part) - 2;
- if (is_array($part[$di]))
+ if ((is_array($part[$di]) && count($part[$di]) == 2 && is_array($part[$di][1])) ||
+ (is_array($part[--$di]) && count($part[$di]) == 2))
{
$struct->disposition = strtolower($part[$di][0]);