diff --git a/src/Content/Text/HTML.php b/src/Content/Text/HTML.php index 0e117a2205..e1caca48ae 100644 --- a/src/Content/Text/HTML.php +++ b/src/Content/Text/HTML.php @@ -386,7 +386,7 @@ class HTML $prefix = '[code=' . $matches[1] . ']'; } - return $prefix . PHP_EOL . trim($matches[2]) . PHP_EOL . '[/code]'; + return $prefix . "\n" . html_entity_decode($matches[2]) . "\n" . '[/code]'; }, $message ); diff --git a/tests/src/Content/Text/HTMLTest.php b/tests/src/Content/Text/HTMLTest.php index bf5e676a9c..fb2b95740d 100644 --- a/tests/src/Content/Text/HTMLTest.php +++ b/tests/src/Content/Text/HTMLTest.php @@ -84,6 +84,16 @@ class HTMLTest extends MockedTest 'expectedBBCode' => " I don't understand tests", 'html' => "<big rant here> I don't understand tests", ], + 'bug-10877-code-entities' => [ + 'expectedBBCode' => "Now playing +[code] +echo \"main(i){for(i=0;;i++)putchar(((i*(i>>8|i>>9)&46&i>>8))^(i&i>>13|i>>6));}\" | gcc -o a.out -x c - 2> /dev/null +./a.out | aplay -q 2> /dev/null +[/code] +its surprisingly good", + 'html' => "
Now playing
echo "main(i){for(i=0;;i++)putchar(((i*(i>>8|i>>9)&46&i>>8))^(i&i>>13|i>>6));}" | gcc -o a.out -x c - 2> /dev/null
+./a.out | aplay -q 2> /dev/null
its surprisingly good
", + ], ]; }