summaryrefslogtreecommitdiffstats
path: root/system/libraries
diff options
context:
space:
mode:
authorDerek Jones <derek.jones@ellislab.com>2008-11-04 20:20:36 +0100
committerDerek Jones <derek.jones@ellislab.com>2008-11-04 20:20:36 +0100
commitcc13d49e83757cf540082eaddf0483153c027c83 (patch)
treee392c151e13a92951330f4d03e92c4e8c6ff2c98 /system/libraries
parent1bf63e459baf22ab9fc3bade9697577a09054b80 (diff)
added protection against non-breaking spaces within tags
Diffstat (limited to 'system/libraries')
-rw-r--r--system/libraries/Typography.php6
1 files changed, 4 insertions, 2 deletions
diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php
index 317208f2f..8ae47a1b1 100644
--- a/system/libraries/Typography.php
+++ b/system/libraries/Typography.php
@@ -85,12 +85,13 @@ class CI_Typography {
// Convert quotes within tags to temporary markers. We don't want quotes converted
// within tags so we'll temporarily convert them to {@DQ} and {@SQ}
// and we don't want double dashes converted to emdash entities, so they are marked with {@DD}
+ // likewise double spaces are converted to {@NBS} to prevent entity conversion
if (preg_match_all("#\<.+?>#si", $str, $matches))
{
for ($i = 0, $total = count($matches[0]); $i < $total; $i++)
{
$str = str_replace($matches[0][$i],
- str_replace(array("'",'"','--'), array('{@SQ}', '{@DQ}', '{@DD}'), $matches[0][$i]),
+ str_replace(array("'",'"','--',' '), array('{@SQ}', '{@DQ}', '{@DD}', '{@NBS}'), $matches[0][$i]),
$str);
}
}
@@ -180,7 +181,8 @@ class CI_Typography {
'/\{@TAG\}/' => '<',
'/\{@DQ\}/' => '"',
'/\{@SQ\}/' => "'",
- '/\{@DD\}/' => '--'
+ '/\{@DD\}/' => '--',
+ '/\{@NBS\}/' => ' '
);