From d42979da12ad6749a3c47c67dc4fb0f0f57420b4 Mon Sep 17 00:00:00 2001 From: Sorunome Date: Sun, 20 Sep 2020 19:09:32 +0200 Subject: [PATCH] fix: Emoji regex incorrectly using multiline --- lib/src/event.dart | 8 ++++---- test/event_test.dart | 11 +++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/src/event.dart b/lib/src/event.dart index 740fe0b..a92bbd2 100644 --- a/lib/src/event.dart +++ b/lib/src/event.dart @@ -781,19 +781,19 @@ class Event extends MatrixEvent { static final RegExp _onlyEmojiRegex = RegExp( r'^(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]|\s)*$', caseSensitive: false, - multiLine: true); + multiLine: false); static final RegExp _onlyEmojiEmoteRegex = RegExp( r'^(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]|]+data-mx-(?:emote|emoticon)(?==|>|\s)[^>]*>|\s)*$', caseSensitive: false, - multiLine: true); + multiLine: false); static final RegExp _countEmojiRegex = RegExp( r'(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])', caseSensitive: false, - multiLine: true); + multiLine: false); static final RegExp _countEmojiEmoteRegex = RegExp( r'(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]|]+data-mx-(?:emote|emoticon)(?==|>|\s)[^>]*>)', caseSensitive: false, - multiLine: true); + multiLine: false); /// Returns if a given event only has emotes, emojis or whitespace as content. /// This is useful to determine if stand-alone emotes should be displayed bigger. diff --git a/test/event_test.dart b/test/event_test.dart index 3dabdd4..aaa4aff 100644 --- a/test/event_test.dart +++ b/test/event_test.dart @@ -1171,6 +1171,17 @@ void main() { }, null); expect(event.onlyEmotes, false); expect(event.numberEmotes, 0); + event = Event.fromJson({ + 'type': EventTypes.Message, + 'content': { + 'msgtype': 'm.text', + 'body': 'normal message\n\nvery normal', + }, + 'event_id': '\$edit2', + 'sender': '@alice:example.org', + }, null); + expect(event.onlyEmotes, false); + expect(event.numberEmotes, 0); event = Event.fromJson({ 'type': EventTypes.Message, 'content': {