From 45fc4cd7294bb2a209cf0df2ed951397950c4835 Mon Sep 17 00:00:00 2001 From: "Uwe.Tews@googlemail.com" Date: Mon, 17 Mar 2014 19:04:48 +0000 Subject: [PATCH] - bugfix $smarty->auto_literal and mbsting.func_overload 2, 6 or 7 did fail (forum topic 24899) --- change_log.txt | 3 ++ .../smarty_internal_templatelexer.php | 54 +++++++++---------- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/change_log.txt b/change_log.txt index bad241da..10426670 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,4 +1,7 @@ ===== trunk ===== + 17.03.2014 + - bugfix $smarty->auto_literal and mbsting.func_overload 2, 6 or 7 did fail (forum topic 24899) + 15.03.2014 - bugfix Smarty_CacheResource_Keyvaluestore did use different keys on read/writes and clearCache() calls (Issue 169) diff --git a/libs/sysplugins/smarty_internal_templatelexer.php b/libs/sysplugins/smarty_internal_templatelexer.php index 1661166d..82a00fab 100644 --- a/libs/sysplugins/smarty_internal_templatelexer.php +++ b/libs/sysplugins/smarty_internal_templatelexer.php @@ -230,7 +230,7 @@ class Smarty_Internal_Templatelexer function yy_r1_4($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_STRIPON; @@ -239,7 +239,7 @@ class Smarty_Internal_Templatelexer function yy_r1_5($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF; @@ -248,7 +248,7 @@ class Smarty_Internal_Templatelexer function yy_r1_6($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LITERALSTART; @@ -258,7 +258,7 @@ class Smarty_Internal_Templatelexer function yy_r1_7($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELIF; @@ -269,7 +269,7 @@ class Smarty_Internal_Templatelexer function yy_r1_9($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; @@ -280,7 +280,7 @@ class Smarty_Internal_Templatelexer function yy_r1_10($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; @@ -291,7 +291,7 @@ class Smarty_Internal_Templatelexer function yy_r1_11($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELSETFILTER; @@ -302,7 +302,7 @@ class Smarty_Internal_Templatelexer function yy_r1_12($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; @@ -313,7 +313,7 @@ class Smarty_Internal_Templatelexer function yy_r1_13($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDEL; @@ -811,7 +811,7 @@ class Smarty_Internal_Templatelexer function yy_r2_70($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELIF; @@ -822,7 +822,7 @@ class Smarty_Internal_Templatelexer function yy_r2_72($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; @@ -833,7 +833,7 @@ class Smarty_Internal_Templatelexer function yy_r2_73($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; @@ -844,7 +844,7 @@ class Smarty_Internal_Templatelexer function yy_r2_74($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; @@ -855,7 +855,7 @@ class Smarty_Internal_Templatelexer function yy_r2_75($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDEL; @@ -938,7 +938,7 @@ class Smarty_Internal_Templatelexer function yy_r3_1($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LITERALSTART; @@ -948,7 +948,7 @@ class Smarty_Internal_Templatelexer function yy_r3_2($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LITERALEND; @@ -1074,7 +1074,7 @@ class Smarty_Internal_Templatelexer function yy_r4_1($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELIF; @@ -1085,7 +1085,7 @@ class Smarty_Internal_Templatelexer function yy_r4_3($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; @@ -1096,7 +1096,7 @@ class Smarty_Internal_Templatelexer function yy_r4_4($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; @@ -1107,7 +1107,7 @@ class Smarty_Internal_Templatelexer function yy_r4_5($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; @@ -1118,7 +1118,7 @@ class Smarty_Internal_Templatelexer function yy_r4_6($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_TEXT; } else { $this->token = Smarty_Internal_Templateparser::TP_LDEL; @@ -1236,7 +1236,7 @@ class Smarty_Internal_Templatelexer function yy_r5_1($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { return false; } else { $this->token = Smarty_Internal_Templateparser::TP_STRIPON; @@ -1245,7 +1245,7 @@ class Smarty_Internal_Templatelexer function yy_r5_2($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { return false; } else { $this->token = Smarty_Internal_Templateparser::TP_STRIPOFF; @@ -1254,7 +1254,7 @@ class Smarty_Internal_Templatelexer function yy_r5_3($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { return false; } else { $this->yypopstate(); @@ -1346,7 +1346,7 @@ class Smarty_Internal_Templatelexer function yy_r6_1($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; } else { $this->yypopstate(); @@ -1356,7 +1356,7 @@ class Smarty_Internal_Templatelexer function yy_r6_2($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; } else { $this->yypopstate(); @@ -1366,7 +1366,7 @@ class Smarty_Internal_Templatelexer function yy_r6_3($yy_subpatterns) { - if ($this->smarty->auto_literal && ($this->mbstring_overload ? (mb_strpos(" \n\t\r",mb_substr($this->value,$this->ldel_length,1,'latin1'),0,'latin1') !== false) : (strpos(" \n\t\r",substr($this->value,$this->ldel_length,1)) !== false))) { + if ($this->smarty->auto_literal && (strlen($this->value) > $this->ldel_length)) { $this->token = Smarty_Internal_Templateparser::TP_BLOCKSOURCE; } else { $this->yypopstate();