From ea3fe00746306d1af29c545ab147301d68c91b46 Mon Sep 17 00:00:00 2001
From: Matt Mullenweg
Date: Sun, 24 Aug 2003 21:25:56 +0000
Subject: [PATCH] No smilies inside of HTML tags.
git-svn-id: https://develop.svn.wordpress.org/trunk@340 602fd350-edb4-49c9-b593-d223f7449a82
---
b2-include/b2functions.php | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/b2-include/b2functions.php b/b2-include/b2functions.php
index f51069943b..e8cd2629c5 100644
--- a/b2-include/b2functions.php
+++ b/b2-include/b2functions.php
@@ -64,7 +64,8 @@ function wptexturize($text) {
return $output;
}
-function wpautop($pee, $br=1) {
+function wpautop($pee, $br=1) {
+ $pee = $pee . "\n"; // just to make things a little easier, pad the end
$pee = preg_replace('|
\s*
|', "\n\n", $pee);
$pee = preg_replace('!(<(?:table|ul|ol|li|pre|select|form|blockquote|h[1-6])[^>]*>)!', "\n$1", $pee); // Space things out a little
$pee = preg_replace('!((?:table|ul|ol|li|pre|select|form|blockquote|h[1-6])>)!', "$1\n", $pee); // Space things out a little
@@ -72,12 +73,10 @@ function wpautop($pee, $br=1) {
$pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates
$pee = preg_replace('/\n?(.+?)(\n\n|\z)/s', "$1
\n", $pee); // make paragraphs, including one at the end
$pee = preg_replace('|
\s*
|', '', $pee);
- $pee = preg_replace('|\s*
|', '
', $pee);
- $pee = preg_replace('|
\s*|', '', $pee);
$pee = preg_replace('|]*)>|i', "", $pee);
$pee = str_replace('
', '
', $pee);
- $pee = preg_replace('!\s*(?(?:table|ul|ol|li|pre|select|form|blockquote|h[1-6])[^>]*>)!', "$1", $pee);
- $pee = preg_replace('!(?(?:table|ul|ol|li|pre|select|form|blockquote|h[1-6])>)\s*
!', "$1", $pee);
+ $pee = preg_replace('!\s*(?(?:table|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)!', "$1", $pee);
+ $pee = preg_replace('!(?(?:table|ul|ol|li|pre|select|form|blockquote|p|h[1-6])>)\s*
!', "$1", $pee);
if ($br) $pee = preg_replace('|(?)\s*\n|', "
\n", $pee); // optionally make line breaks
$pee = preg_replace('!(?(?:table|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)\s*
!', "$1", $pee);
$pee = preg_replace('/&([^#])(?![a-z]{1,8};)/', '&$1', $pee);
@@ -271,9 +270,18 @@ function convert_smilies($content) {
global $smilies_directory, $use_smilies;
global $b2_smiliessearch, $b2_smiliesreplace;
if ($use_smilies) {
- $content = str_replace($b2_smiliessearch, $b2_smiliesreplace, $content);
+ // HTML loop taken from texturize function, could possible be consolidated
+ $textarr = preg_split("/(<.*>)/U", $text, -1, PREG_SPLIT_DELIM_CAPTURE); // capture the tags as well as in between
+ $stop = count($textarr);// loop stuff
+ for ($i = 0; $i < $stop; $i++) {
+ $content = $textarr[$i];
+ if ('<' != $curl{0}) { // If it's not a tag
+ $content = str_replace($b2_smiliessearch, $b2_smiliesreplace, $content);
+ }
+ $output .= $content;
+ }
}
- return $content;
+ return $output;
}
function antispambot($emailaddy, $mailto=0) {