]> git.mxchange.org Git - friendica.git/commitdiff
Extend multi-line code blocks regular expression
authorHypolite Petovan <mrpetovan@gmail.com>
Sun, 14 Jan 2018 18:12:29 +0000 (13:12 -0500)
committerHypolite Petovan <mrpetovan@gmail.com>
Mon, 15 Jan 2018 00:01:09 +0000 (19:01 -0500)
- Covers the case where there's no new line after the [code] tag

include/bb2diaspora.php

index 714d780048b9724fe48f5570cd78ed6a433f65a7..daa8c5e0488cd5e6cff72136247c73a74de23b02 100644 (file)
@@ -146,12 +146,16 @@ function bb2diaspora($Text, $preserve_nl = false, $fordiaspora = true) {
 
        // Extracting multi-line code blocks before the whitespace processing/code highlighter in bbcode()
        $codeblocks = [];
-       $Text = preg_replace_callback('#\[code(?:=([^\]]*))?\](?=\n)(.*?)\[\/code\]#is',
+
+       $Text = preg_replace_callback("#\[code(?:=([^\]]*))?\](.*?)\[\/code\]#is",
                function ($matches) use (&$codeblocks) {
-                       $return = '#codeblock-' . count($codeblocks) . '#';
+                       $return = $matches[0];
+                       if (strpos($matches[2], "\n") !== false) {
+                               $return = '#codeblock-' . count($codeblocks) . '#';
 
-            $prefix = '````' . $matches[1] . PHP_EOL;
-                       $codeblocks[] = $prefix . trim($matches[2]) . PHP_EOL . '````';
+                               $prefix = '````' . $matches[1] . PHP_EOL;
+                               $codeblocks[] = $prefix . trim($matches[2]) . PHP_EOL . '````';
+                       }
                        return $return;
                }
        , $Text);