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, ']*)>\s*|', " ", $pee); // no pee inside object/embed
+ $pee = preg_replace('|\s*\s*|', '', $pee);
}
-
+ $pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates
+ // make paragraphs, including one at the end
+ $pees = preg_split('/\n\s*\n/', $pee, -1, PREG_SPLIT_NO_EMPTY);
+ $pee = '';
+ foreach ( $pees as $tinkle )
+ $pee .= '' . trim($tinkle, "\n") . "
\n";
+ $pee = preg_replace('|\s*?
|', '', $pee); // under certain strange conditions it could create a P of entirely whitespace
+ $pee = preg_replace('!([^<]+)\s*?((?:div|address|form)[^>]*>)!', "
$1
$2", $pee);
+ $pee = preg_replace( '||', "$1
", $pee );
+ $pee = preg_replace('!
\s*(?' . $allblocks . '[^>]*>)\s*
!', "$1", $pee); // don't pee all over a tag
+ $pee = preg_replace("|(
|", "$1", $pee); // problem with nested lists
+ $pee = preg_replace('|
]*)>|i', "", $pee);
+ $pee = str_replace('
', ' ', $pee);
+ $pee = preg_replace('!\s*(?' . $allblocks . '[^>]*>)!', "$1", $pee);
+ $pee = preg_replace('!(?' . $allblocks . '[^>]*>)\s*
!', "$1", $pee);
+ if ($br) {
+ $pee = preg_replace_callback('/<(script|style).*?<\/\\1>/s', create_function('$matches', 'return str_replace("\n", " ", $matches[0]);'), $pee);
+ $pee = preg_replace('|(?)\s*\n|', " \n", $pee); // optionally make line breaks
+ $pee = str_replace(' ', "\n", $pee);
+ }
+ $pee = preg_replace('!(?' . $allblocks . '[^>]*>)\s* !', "$1", $pee);
+ $pee = preg_replace('! (\s*?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)!', '$1', $pee);
+ if (strpos($pee, ')(.*?) !is', 'clean_pre', $pee );
+ $pee = preg_replace( "|\n$|", '', $pee );
+ //$pee = preg_replace('/\s*?(' . get_shortcode_regex() . ')\s*<\/p>/s', '$1', $pee); // don't auto-p wrap shortcodes that stand alone
+
+ return $pee;
+}
+
function seems_utf8($Str) { # by bmorel at ssi dot fr
for ($i=0; $i