From 7c9850da45f207824dc6d2f672de6caa25e400f5 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Wed, 22 Dec 2010 14:17:47 -0500 Subject: [PATCH] - Improve handling of whitespace characters after closing PHP tag in localization and config files --- program/include/rcube_plugin.php | 7 ++++++- program/include/rcmail.php | 5 +++++ program/include/rcube_config.php | 11 ++++------- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/program/include/rcmail.php b/program/include/rcmail.php index 0eecd8d..f72b33e 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -929,6 +929,9 @@ 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 @@ $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 a7e1d9e..76cf183 100644 --- a/program/include/rcube_config.php +++ b/program/include/rcube_config.php @@ -47,10 +47,6 @@ */ 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 @@ ini_set('display_errors', 0); } - // clear output buffer - ob_end_clean(); - // export config data $GLOBALS['CONFIG'] = &$this->prop; } @@ -136,7 +129,11 @@ 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 c7ec019..1c3a8f6 100644 --- a/program/include/rcube_plugin.php +++ b/program/include/rcube_plugin.php @@ -129,12 +129,17 @@ $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(); -- Gitblit v1.9.1