From c349c51427cd22fe60c2574dda233a300f5698a9 Mon Sep 17 00:00:00 2001 From: Derek Jones Date: Mon, 27 Oct 2008 16:29:19 +0000 Subject: Fixed the regex matching that checks for user-submitted paragraph tags, it was incorrectly matching in cases like

resulting in a removal of the paragraph tag from within the blockquote. also tweaked some looping code to make it a hair more efficient --- system/libraries/Typography.php | 18 +++++++++--------- user_guide/changelog.html | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php index 5a97da715..9490c7ce5 100644 --- a/system/libraries/Typography.php +++ b/system/libraries/Typography.php @@ -86,22 +86,22 @@ class CI_Typography { // within tags so we'll temporarily convert them to {@DQ} and {@SQ} if (preg_match_all("#\<.+?>#si", $str, $matches)) { - for ($i = 0; $i < count($matches['0']); $i++) + for ($i = 0, $total = count($matches[0]); $i < $total; $i++) { - $str = str_replace($matches['0'][$i], - str_replace(array("'",'"'), array('{@SQ}', '{@DQ}'), $matches['0'][$i]), + $str = str_replace($matches[0][$i], + str_replace(array("'",'"'), array('{@SQ}', '{@DQ}'), $matches[0][$i]), $str); } } - + if ($this->protect_braced_quotes === TRUE) { if (preg_match_all("#\{.+?}#si", $str, $matches)) { - for ($i = 0; $i < count($matches['0']); $i++) + for ($i = 0, $total = count($matches[0]); $i < $total; $i++) { - $str = str_replace($matches['0'][$i], - str_replace(array("'",'"'), array('{@SQ}', '{@DQ}'), $matches['0'][$i]), + $str = str_replace($matches[0][$i], + str_replace(array("'",'"'), array('{@SQ}', '{@DQ}'), $matches[0][$i]), $str); } } @@ -160,13 +160,13 @@ class CI_Typography { // Convert quotes, elipsis, and em-dashes $str = $this->format_characters($str); - + // Final clean up $table = array( // If the user submitted their own paragraph tags within the text // we will retain them instead of using our tags. - '/()

/' => '$1', // *?]>)

/' => '$1', // )+#' => '

', diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 7114702b4..5fab65f56 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -66,6 +66,7 @@ SVN Revision:

  • Fixed a bug in the MySQLi driver when no port is specified
  • Fixed a bug (#5702), in which the field label was not being fetched properly, when "matching" one field to another.
  • Fixed a bug in which identifers were not being escaped properly when reserved characters were used.
  • +
  • Fixed a bug with the regular expression used to protect submitted paragraph tags in auto typography.

    -- cgit v1.2.3-24-g4f1b