OSDN Git Service

異字体セレクタ U+FE0F を含む絵文字が正しく表示されない不具合を修正
authorKimura Youichi <kim.upsilon@bucyou.net>
Thu, 22 Sep 2016 15:40:49 +0000 (00:40 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Thu, 22 Sep 2016 15:54:12 +0000 (00:54 +0900)
Fixes: 98015d9c ("twemoji V2 に対応")

OpenTween.Tests/EmojiFormatterTest.cs
OpenTween/EmojiFormatter.cs
OpenTween/Resources/ChangeLog.txt

index 9d9aed9..64f0189 100644 (file)
@@ -42,6 +42,30 @@ namespace OpenTween
         }
 
         [Fact]
+        public void ReplaceEmojiToImg_VariationSelector_TextStyleTest()
+        {
+            // 異字体セレクタを使用して明示的にテキストスタイルで表示させている文字
+            var origText = "©\uFE0E"; // U+00A9 + U+FE0E (text style)
+
+            var result = EmojiFormatter.ReplaceEmojiToImg(origText);
+            var expected = "©\uFE0E";
+
+            Assert.Equal(expected, result);
+        }
+
+        [Fact]
+        public void ReplaceEmojiToImg_VariationSelector_EmojiStyleTest()
+        {
+            // 異字体セレクタを使用して明示的に絵文字スタイルで表示させている文字
+            var origText = "©\uFE0F"; // U+00A9 + U+FE0F (emoji style)
+
+            var result = EmojiFormatter.ReplaceEmojiToImg(origText);
+            var expected = "<img class=\"emoji\" src=\"https://twemoji.maxcdn.com/2/72x72/a9.png\" alt=\"©\" />";
+
+            Assert.Equal(expected, result);
+        }
+
+        [Fact]
         public void ReplaceEmojiToImg_SurrogatePairTest()
         {
             var origText = "🍣"; // U+1F363
index 98ac0ef..1f5d68e 100644 (file)
@@ -48,6 +48,9 @@ namespace OpenTween
             string input = m.Value;
             string codes = "";
 
+            // 異字体セレクタ U+FE0F (emoji style) は除去する
+            input = input.Replace("\uFE0F", "");
+
             for (var i = 0; i < input.Length; i += char.IsSurrogatePair(input, i) ? 2 : 1)
             {
                 var codepoint = char.ConvertToUtf32(input, i);
@@ -60,7 +63,7 @@ namespace OpenTween
                 codes += string.Format("{0:x}", codepoint);
             }
 
-            return "<img class=\"emoji\" src=\"https://twemoji.maxcdn.com/2/72x72/" + codes + ".png\" alt=\"" + m.Value + "\" />";
+            return "<img class=\"emoji\" src=\"https://twemoji.maxcdn.com/2/72x72/" + codes + ".png\" alt=\"" + input + "\" />";
         }
     }
 }
index 5dccad1..b3a07e8 100644 (file)
@@ -12,6 +12,7 @@
  * FIX: Alt+←/→による移動時にエラーが発生する不具合を修正
  * FIX: 「自分がRTした自分のツイート」を選択して削除機能を使用すると、RTの取り消しではなくRT元のツイートが削除される不具合を修正
  * FIX: タブ名の変更時に発言一覧のスクロール位置・選択状態に不整合が生じていた不具合を修正
+ * FIX: Twemojiによる絵文字の表示が有効な場合に、異字体セレクタを含む絵文字が正しく表示されない不具合を修正
 
 ==== Ver 1.3.4(2016/08/26)
  * FIX: Fav削除時にエラーが発生し操作不能になる不具合を修正