From 08ab6692cf41dc095d4ed6793e7cdbccb6866c33 Mon Sep 17 00:00:00 2001
From: real_nowhereman ' . trim($tinkle, "\n") . " \s*? ([^<]+)\s*?((?:div|address|form)[^>]*>)!', " $1 |', "$1 ", $pee );
+ $pee = preg_replace('| \s* ([^<]+)(div|address|form)>!', " $1 \s*(?' . $allblocks . '[^>]*>)\s* ( ", $pee);
@@ -103,20 +119,30 @@ function wpautop($pee, $br = 1) {
$pee = preg_replace('! \s*(?' . $allblocks . '[^>]*>)!', "$1", $pee);
$pee = preg_replace('!(?' . $allblocks . '[^>]*>)\s*
> tags, unless $br is set to '0'
+ * or 'false'.
+ *
+ * @since 0.71
+ *
+ * @param string $pee The text which has to be formatted.
+ * @param int|bool $br Optional. If set, this will convert all remaining line-breaks after paragraphing. Default true.
+ * @return string Text which has been converted into correct paragraph tags.
+ */
function wpautop($pee, $br = 1) {
+
+ if ( trim($pee) === '' )
+ return '';
$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)';
+ $allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|option|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';
$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
@@ -93,9 +110,8 @@ function wpautop($pee, $br = 1) {
$pee = '';
foreach ( $pees as $tinkle )
$pee .= ']*)>|i', "
\n", $pee); // optionally make line breaks
$pee = str_replace('
!', "$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_callback('!(]*>)(.*?)
!is', 'clean_pre', $pee );
$pee = preg_replace( "|\n
\s*?(' . get_shortcode_regex() . ')\s*<\/p>/s', '$1', $pee); // don't auto-p wrap shortcodes that stand alone
return $pee;
}
+/**
+ * Newline preservation help function for wpautop
+ *
+ * @since 3.1.0
+ * @access private
+ * @param array $matches preg_replace_callback matches array
+ * @returns string
+ */
+function _autop_newline_preservation_helper( $matches ) {
+ return str_replace("\n", "