From 79c45f4b187ce83e9224e3e43066cc67e4343a69 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 05 Jun 2009 02:08:46 -0400
Subject: [PATCH] - fix rep_specialchars_output() performance, remove old 'charset' option use
---
program/include/main.inc | 31 ++++++++-----------------------
program/include/rcmail.php | 2 +-
2 files changed, 9 insertions(+), 24 deletions(-)
diff --git a/program/include/main.inc b/program/include/main.inc
index b9408cf..6f1be85 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -445,17 +445,8 @@
static $js_rep_table = false;
static $xml_rep_table = false;
- $charset = rcmail::get_instance()->config->get('charset', RCMAIL_CHARSET);
- $is_iso_8859_1 = false;
- if ($charset == 'ISO-8859-1') {
- $is_iso_8859_1 = true;
- }
if (!$enctype)
$enctype = $OUTPUT->type;
-
- // encode for plaintext
- if ($enctype=='text')
- return str_replace("\r\n", "\n", $mode=='remove' ? strip_tags($str) : $str);
// encode for HTML output
if ($enctype=='html')
@@ -486,6 +477,14 @@
return $newlines ? nl2br($out) : $out;
}
+ // encode for javascript use
+ if ($enctype=='js')
+ return preg_replace(array("/\r?\n/", "/\r/", '/<\\//'), array('\n', '\n', '<\\/'), strtr($str, $js_rep_table));
+
+ // encode for plaintext
+ if ($enctype=='text')
+ return str_replace("\r\n", "\n", $mode=='remove' ? strip_tags($str) : $str);
+
if ($enctype=='url')
return rawurlencode($str);
@@ -496,12 +495,7 @@
$xml_rep_table['&'] = '&';
for ($c=160; $c<256; $c++) // can be increased to support more charsets
- {
$xml_rep_table[Chr($c)] = "&#$c;";
-
- if ($is_iso_8859_1)
- $js_rep_table[Chr($c)] = sprintf("\\u%04x", $c);
- }
$xml_rep_table['"'] = '"';
$js_rep_table['"'] = '\\"';
@@ -512,15 +506,6 @@
// encode for XML
if ($enctype=='xml')
return strtr($str, $xml_rep_table);
-
- // encode for javascript use
- if ($enctype=='js')
- {
- if ($charset!='UTF-8')
- $str = rcube_charset_convert($str, RCMAIL_CHARSET, $charset);
-
- return preg_replace(array("/\r?\n/", "/\r/", '/<\\//'), array('\n', '\n', '<\\/'), strtr($str, $js_rep_table));
- }
// no encoding given -> return original string
return $str;
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index ea53d91..afcc33a 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -321,7 +321,7 @@
$this->output->set_env('task', $this->task);
$this->output->set_env('action', $this->action);
$this->output->set_env('comm_path', $this->comm_path);
- $this->output->set_charset($this->config->get('charset', RCMAIL_CHARSET));
+ $this->output->set_charset(RCMAIL_CHARSET);
// add some basic label to client
$this->output->add_label('loading', 'servererror');
--
Gitblit v1.9.1