From 15ba057f92cf851d663270ae43944ad774f84d55 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?G=C3=A1bor=20Hojtsy?= <gabor@hojtsy.hu>
Date: Fri, 28 May 2010 14:40:02 +0000
Subject: [PATCH] #133188 by Behrang, John Morahan, frega: Line break converter
 can result in empty node display due to PCRE limits

---
 modules/filter/filter.module | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/modules/filter/filter.module b/modules/filter/filter.module
index 9646b1d1ced3..916e020f5c13 100644
--- a/modules/filter/filter.module
+++ b/modules/filter/filter.module
@@ -932,7 +932,8 @@ function _filter_autop($text) {
       $chunk = preg_replace('!(<'. $block .'[^>]*>)!', "\n$1", $chunk); // Space things out a little
       $chunk = preg_replace('!(</'. $block .'>)!', "$1\n\n", $chunk); // Space things out a little
       $chunk = preg_replace("/\n\n+/", "\n\n", $chunk); // take care of duplicates
-      $chunk = preg_replace('/\n?(.+?)(?:\n\s*\n|\z)/s', "<p>$1</p>\n", $chunk); // make paragraphs, including one at the end
+      $chunk = preg_replace('/^\n|\n\s*\n$/', '', $chunk);
+      $chunk = '<p>'. preg_replace('/\n\s*\n\n?(.)/', "</p>\n<p>$1", $chunk) ."</p>\n"; // make paragraphs, including one at the end
       $chunk = preg_replace("|<p>(<li.+?)</p>|", "$1", $chunk); // problem with nested lists
       $chunk = preg_replace('|<p><blockquote([^>]*)>|i', "<blockquote$1><p>", $chunk);
       $chunk = str_replace('</blockquote></p>', '</p></blockquote>', $chunk);
-- 
GitLab