- Improve handling of whitespace characters after closing PHP tag in localization and config files

release-0.6
alecpl 14 years ago
parent b091848487
commit 7c9850da45

@ -929,6 +929,9 @@ class rcmail
if (empty($this->texts) || $lang != $_SESSION['language']) { if (empty($this->texts) || $lang != $_SESSION['language']) {
$this->texts = array(); $this->texts = array();
// handle empty lines after closing PHP tag in localization files
ob_start();
// get english labels (these should be complete) // get english labels (these should be complete)
@include(INSTALL_PATH . 'program/localization/en_US/labels.inc'); @include(INSTALL_PATH . 'program/localization/en_US/labels.inc');
@include(INSTALL_PATH . 'program/localization/en_US/messages.inc'); @include(INSTALL_PATH . 'program/localization/en_US/messages.inc');
@ -949,6 +952,8 @@ class rcmail
$this->texts = array_merge($this->texts, $messages); $this->texts = array_merge($this->texts, $messages);
} }
ob_end_clean();
$_SESSION['language'] = $lang; $_SESSION['language'] = $lang;
} }

@ -47,10 +47,6 @@ class rcube_config
*/ */
private function load() 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 // load main config file
if (!$this->load_from_file(RCMAIL_CONFIG_DIR . '/main.inc.php')) if (!$this->load_from_file(RCMAIL_CONFIG_DIR . '/main.inc.php'))
$this->errors[] = 'main.inc.php was not found.'; $this->errors[] = 'main.inc.php was not found.';
@ -98,9 +94,6 @@ class rcube_config
ini_set('display_errors', 0); ini_set('display_errors', 0);
} }
// clear output buffer
ob_end_clean();
// export config data // export config data
$GLOBALS['CONFIG'] = &$this->prop; $GLOBALS['CONFIG'] = &$this->prop;
} }
@ -136,7 +129,11 @@ class rcube_config
public function load_from_file($fpath) public function load_from_file($fpath)
{ {
if (is_file($fpath) && is_readable($fpath)) { if (is_file($fpath) && is_readable($fpath)) {
// use output buffering, we don't need any output here
ob_start();
include($fpath); include($fpath);
ob_end_clean();
if (is_array($rcmail_config)) { if (is_array($rcmail_config)) {
$this->prop = array_merge($this->prop, $rcmail_config, $this->userprefs); $this->prop = array_merge($this->prop, $rcmail_config, $this->userprefs);
return true; return true;

@ -130,11 +130,16 @@ abstract class rcube_plugin
$locdir = slashify(realpath(slashify($this->home) . $dir)); $locdir = slashify(realpath(slashify($this->home) . $dir));
$texts = array(); $texts = array();
// use buffering to handle empty lines/spaces after closing PHP tag
ob_start();
foreach (array('en_US', $lang) as $lng) { foreach (array('en_US', $lang) as $lng) {
@include($locdir . $lng . '.inc'); @include($locdir . $lng . '.inc');
$texts = (array)$labels + (array)$messages + (array)$texts; $texts = (array)$labels + (array)$messages + (array)$texts;
} }
ob_end_clean();
// prepend domain to text keys and add to the application texts repository // prepend domain to text keys and add to the application texts repository
if (!empty($texts)) { if (!empty($texts)) {
$add = array(); $add = array();

Loading…
Cancel
Save