From 9545ff614b28d9d8fc22b0647b3870fca7b34b77 Mon Sep 17 00:00:00 2001
From: Hypolite Petovan <hypolite@mrpetovan.com>
Date: Thu, 20 Jun 2019 15:00:33 -0400
Subject: [PATCH] Limit smilies replacement to BBCode::convert

---
 include/text.php            | 10 +++-------
 mod/message.php             |  2 +-
 src/Content/Text/BBCode.php |  3 ++-
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/include/text.php b/include/text.php
index e4227cd7d0..052bdc4c3c 100644
--- a/include/text.php
+++ b/include/text.php
@@ -143,13 +143,9 @@ function redir_private_images($a, &$item)
  * @return string Formattet HTML.
  * @throws \Friendica\Network\HTTPException\InternalServerErrorException
  */
-function prepare_text($text) {
-	if (stristr($text, '[nosmile]')) {
-		$s = BBCode::convert($text);
-	} else {
-		$s = Smilies::replace(BBCode::convert($text));
-	}
-
+function prepare_text($text)
+{
+	$s = BBCode::convert($text);
 	return trim($s);
 }
 
diff --git a/mod/message.php b/mod/message.php
index 3ff84a1e66..fe4429e000 100644
--- a/mod/message.php
+++ b/mod/message.php
@@ -384,7 +384,7 @@ function message_content(App $a)
 
 			$from_name_e = $message['from-name'];
 			$subject_e = $message['title'];
-			$body_e = Smilies::replace(BBCode::convert($message['body']));
+			$body_e = BBCode::convert($message['body']);
 			$to_name_e = $message['name'];
 
 			$contact = Contact::getDetailsByURL($message['from-url']);
diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php
index e08d60579d..da09e13dd9 100644
--- a/src/Content/Text/BBCode.php
+++ b/src/Content/Text/BBCode.php
@@ -1395,6 +1395,7 @@ class BBCode extends BaseObject
 
 		// This is actually executed in Item::prepareBody()
 
+		$nosmile = strpos($text, '[nosmile]') !== false;
 		$text = str_replace('[nosmile]', '', $text);
 
 		// Check for font change text
@@ -1572,7 +1573,7 @@ class BBCode extends BaseObject
 		}
 
 		// Replace non graphical smilies for external posts
-		if ($simple_html) {
+		if (!$nosmile && !$for_plaintext) {
 			$text = Smilies::replace($text);
 		}
 
-- 
2.39.5