summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-12-22 19:17:47 +0000
committeralecpl <alec@alec.pl>2010-12-22 19:17:47 +0000
commit7c9850da45f207824dc6d2f672de6caa25e400f5 (patch)
tree4faf47187b6d551a926efbb7a2742620a05715a6
parentb0918484878c91b4c1ecc3783f95e05bc8a53262 (diff)
- Improve handling of whitespace characters after closing PHP tag in localization and config files
-rw-r--r--program/include/rcmail.php5
-rw-r--r--program/include/rcube_config.php11
-rw-r--r--program/include/rcube_plugin.php7
3 files changed, 15 insertions, 8 deletions
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 0eecd8ddb..f72b33e95 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -929,6 +929,9 @@ class rcmail
if (empty($this->texts) || $lang != $_SESSION['language']) {
$this->texts = array();
+ // handle empty lines after closing PHP tag in localization files
+ ob_start();
+
// get english labels (these should be complete)
@include(INSTALL_PATH . 'program/localization/en_US/labels.inc');
@include(INSTALL_PATH . 'program/localization/en_US/messages.inc');
@@ -949,6 +952,8 @@ class rcmail
$this->texts = array_merge($this->texts, $messages);
}
+ ob_end_clean();
+
$_SESSION['language'] = $lang;
}
diff --git a/program/include/rcube_config.php b/program/include/rcube_config.php
index a7e1d9ef5..76cf18307 100644
--- a/program/include/rcube_config.php
+++ b/program/include/rcube_config.php
@@ -47,10 +47,6 @@ class rcube_config
*/
private function load()
{
- // start output buffering, we don't need any output yet,
- // it'll be cleared after reading of config files, etc.
- ob_start();
-
// load main config file
if (!$this->load_from_file(RCMAIL_CONFIG_DIR . '/main.inc.php'))
$this->errors[] = 'main.inc.php was not found.';
@@ -98,9 +94,6 @@ class rcube_config
ini_set('display_errors', 0);
}
- // clear output buffer
- ob_end_clean();
-
// export config data
$GLOBALS['CONFIG'] = &$this->prop;
}
@@ -136,7 +129,11 @@ class rcube_config
public function load_from_file($fpath)
{
if (is_file($fpath) && is_readable($fpath)) {
+ // use output buffering, we don't need any output here
+ ob_start();
include($fpath);
+ ob_end_clean();
+
if (is_array($rcmail_config)) {
$this->prop = array_merge($this->prop, $rcmail_config, $this->userprefs);
return true;
diff --git a/program/include/rcube_plugin.php b/program/include/rcube_plugin.php
index c7ec01943..1c3a8f602 100644
--- a/program/include/rcube_plugin.php
+++ b/program/include/rcube_plugin.php
@@ -129,12 +129,17 @@ abstract class rcube_plugin
$lang = $_SESSION['language'];
$locdir = slashify(realpath(slashify($this->home) . $dir));
$texts = array();
-
+
+ // use buffering to handle empty lines/spaces after closing PHP tag
+ ob_start();
+
foreach (array('en_US', $lang) as $lng) {
@include($locdir . $lng . '.inc');
$texts = (array)$labels + (array)$messages + (array)$texts;
}
+ ob_end_clean();
+
// prepend domain to text keys and add to the application texts repository
if (!empty($texts)) {
$add = array();