From 4277763df5c1dac8ff389d3bfd138f03acc7f1e2 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 28 Sep 2020 13:32:34 +0200 Subject: Implement text editing with navigation and multilingual fonts --- src/plugins/Matrix.cpp | 6 +++++- src/plugins/Plugin.cpp | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp index d364b16..513a9fb 100644 --- a/src/plugins/Matrix.cpp +++ b/src/plugins/Matrix.cpp @@ -666,7 +666,10 @@ namespace QuickMedia { std::string formatted_body; bool contains_formatted_text = false; if(msgtype == MessageType::TEXT) { - string_split(body, '\n', [&formatted_body, &contains_formatted_text](const char *str, size_t size){ + int line = 0; + string_split(body, '\n', [&formatted_body, &contains_formatted_text, &line](const char *str, size_t size){ + if(line > 0) + formatted_body += "
"; if(size > 0 && str[0] == '>') { std::string line(str, size); html_escape_sequences(line); @@ -677,6 +680,7 @@ namespace QuickMedia { } else { formatted_body.append(str, size); } + ++line; return true; }); } diff --git a/src/plugins/Plugin.cpp b/src/plugins/Plugin.cpp index f23175c..20c4b0a 100644 --- a/src/plugins/Plugin.cpp +++ b/src/plugins/Plugin.cpp @@ -35,11 +35,11 @@ namespace QuickMedia { void html_escape_sequences(std::string &str) { const std::array escape_sequences = { + HtmlEscapeSequence { '&', "&" }, // This should be first, to not accidentally replace a new sequence caused by replacing this HtmlEscapeSequence { '"', """ }, HtmlEscapeSequence { '\'', "'" }, HtmlEscapeSequence { '<', "<" }, - HtmlEscapeSequence { '>', ">" }, - HtmlEscapeSequence { '&', "&" } // This should be last, to not accidentally replace a new sequence caused by replacing this + HtmlEscapeSequence { '>', ">" } }; for(const HtmlEscapeSequence &escape_sequence : escape_sequences) { -- cgit v1.2.3