From 2877a9bffef195db56a8a0a71c0ee980d200adc5 Mon Sep 17 00:00:00 2001
From: real_nowhereman
Date: Wed, 23 Dec 2009 12:52:03 +0000
Subject: [PATCH] update wpautop() to 2.7
---
fp-includes/core/core.wp-formatting.php | 74 ++++++++++++++-----------
1 file changed, 41 insertions(+), 33 deletions(-)
diff --git a/fp-includes/core/core.wp-formatting.php b/fp-includes/core/core.wp-formatting.php
index d041097..3be45af 100644
--- a/fp-includes/core/core.wp-formatting.php
+++ b/fp-includes/core/core.wp-formatting.php
@@ -70,40 +70,48 @@
return $text;
}
- 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);
- // Space things out a little
- $pee = preg_replace('!(<(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6])[^>]*>)!', "\n$1", $pee);
- $pee = preg_replace('!((?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6])>)!', "$1\n", $pee);
- $pee = str_replace(array("\r\n", "\r"), "\n", $pee); // cross-platform newlines
- $pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates
- $pee = preg_replace('/\n?(.+?)(?:\n\s*\n|\z)/s', "\t$1
\n", $pee); // make paragraphs, including one at the end
- $pee = preg_replace('|\s*?
|', '', $pee); // under certain strange conditions it could create a P of entirely whitespace
- $pee = preg_replace('!\s*(?(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|hr|pre|select|form|blockquote|address|math|p|h[1-6])[^>]*>)\s*
!', "$1", $pee); // don't pee all over a tag
- $pee = preg_replace("|(
|", "$1", $pee); // problem with nested lists
-
-
-
- /*
- $pee = preg_replace('/(.*)(
]*>)/msiU', '$1
$2', $pee); // problem with list in paragraph...
- $pee = preg_replace('|
(.*)
|msiU', "$1
", $pee); // same as above
- */
-
- $pee = preg_replace('|\s*()\s*
\s*?(
)*|msiU', '$1', $pee); // comments and paragraphs
-
- $pee = preg_replace('|]*)>|i', "", $pee);
- $pee = str_replace('
', '
', $pee);
- $pee = preg_replace('!\s*(?(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|hr|pre|select|form|blockquote|address|math|p|h[1-6])[^>]*>)!', "$1", $pee);
- $pee = preg_replace('!(?(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6])[^>]*>)\s*
!', "$1", $pee);
- if ($br) $pee = preg_replace('|(?)\s*\n|', "
\n", $pee); // optionally make line breaks
- $pee = preg_replace('!(?(?:table|thead|tfoot|caption|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6])[^>]*>)\s*
!', "$1", $pee);
- $pee = preg_replace('!
(\s*?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)!', '$1', $pee);
- $pee = preg_replace('!()(.*?)!ise', " stripslashes('$1') . clean_pre('$2') . '' ", $pee);
-
- return $pee;
+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);
+ // Space things out a little
+ $allblocks = '(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr)';
+ $pee = preg_replace('!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee);
+ $pee = preg_replace('!(' . $allblocks . '>)!', "$1\n\n", $pee);
+ $pee = str_replace(array("\r\n", "\r"), "\n", $pee); // cross-platform newlines
+ if ( strpos($pee, '