aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-10-02 19:08:25 +0200
committerdec05eba <dec05eba@protonmail.com>2020-10-02 19:09:19 +0200
commit99bee0e8d2c498f6dff94a87db7540687161f3f7 (patch)
tree5c17aeb1f08b144df8e03231e0641131acfb7352 /src
parent2d4772337df47794fb0b1734bda209177a989515 (diff)
Matrix: fix reply to multiline reply
Diffstat (limited to 'src')
-rw-r--r--src/QuickMedia.cpp4
-rw-r--r--src/plugins/Matrix.cpp16
2 files changed, 17 insertions, 3 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index 41c4cb1..29b2db9 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -4179,8 +4179,8 @@ namespace QuickMedia {
std::string room_desc = current_room_body_data->body_item->get_description();
if(strncmp(room_desc.c_str(), "Unread: ", 8) == 0)
room_desc = room_desc.substr(8);
- if(room_desc.size() >= 26 && strncmp(room_desc.c_str() + room_desc.size() - 26, "\n** You were mentioned **", 26) == 0)
- room_desc = room_desc.substr(0, room_desc.size() - 26);
+ if(room_desc.size() >= 25 && strncmp(room_desc.c_str() + room_desc.size() - 25, "\n** You were mentioned **", 25) == 0)
+ room_desc = room_desc.substr(0, room_desc.size() - 25);
current_room_body_data->body_item->set_description(std::move(room_desc));
// TODO: Show a line like nheko instead for unread messages, or something else
current_room_body_data->body_item->title_color = sf::Color::White;
diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp
index 585664a..b8f3742 100644
--- a/src/plugins/Matrix.cpp
+++ b/src/plugins/Matrix.cpp
@@ -904,6 +904,20 @@ namespace QuickMedia {
return str;
}
+ static std::string block_quote(const std::string &str) {
+ std::string result = "> ";
+ for(char c : str) {
+ if(c == '>') {
+ result += "\\>";
+ } else if(c == '\n') {
+ result += "\n> ";
+ } else {
+ result += c;
+ }
+ }
+ return result;
+ }
+
static std::string create_body_for_message_reply(const RoomData *room_data, const Message *message, const std::string &body) {
std::string related_to_body;
switch(message->type) {
@@ -927,7 +941,7 @@ namespace QuickMedia {
related_to_body = "sent a file";
break;
}
- return "> <" + room_data->user_info[message->user_id].user_id + "> " + std::move(related_to_body) + "\n\n" + body;
+ return block_quote("<" + room_data->user_info[message->user_id].user_id + "> " + std::move(related_to_body)) + "\n\n" + body;
}
// TODO: Add formatted_body just like element does with <mx-reply><blockquote... and also support greentext with that