From 40e0f8f5d8c3e480f01a2d71b6a493247adcb77f Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 21 Sep 2020 03:49:17 +0200 Subject: Initial matrix support --- src/plugins/Plugin.cpp | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) (limited to 'src/plugins/Plugin.cpp') diff --git a/src/plugins/Plugin.cpp b/src/plugins/Plugin.cpp index 8690964..f23175c 100644 --- a/src/plugins/Plugin.cpp +++ b/src/plugins/Plugin.cpp @@ -29,22 +29,41 @@ namespace QuickMedia { } struct HtmlEscapeSequence { + char unescape_char; std::string escape_sequence; - std::string unescaped_str; }; - void html_unescape_sequences(std::string &str) { + void html_escape_sequences(std::string &str) { const std::array escape_sequences = { - HtmlEscapeSequence { """, "\"" }, - HtmlEscapeSequence { "'", "'" }, - HtmlEscapeSequence { "'", "'" }, - HtmlEscapeSequence { "<", "<" }, - HtmlEscapeSequence { ">", ">" }, - HtmlEscapeSequence { "&", "&" } // This should be last, 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 }; for(const HtmlEscapeSequence &escape_sequence : escape_sequences) { - string_replace_all(str, escape_sequence.escape_sequence, escape_sequence.unescaped_str); + string_replace_all(str, escape_sequence.unescape_char, escape_sequence.escape_sequence); + } + } + + struct HtmlUnescapeSequence { + std::string escape_sequence; + std::string unescaped_str; + }; + + void html_unescape_sequences(std::string &str) { + const std::array unescape_sequences = { + HtmlUnescapeSequence { """, "\"" }, + HtmlUnescapeSequence { "'", "'" }, + HtmlUnescapeSequence { "'", "'" }, + HtmlUnescapeSequence { "<", "<" }, + HtmlUnescapeSequence { ">", ">" }, + HtmlUnescapeSequence { "&", "&" } // This should be last, to not accidentally replace a new sequence caused by replacing this + }; + + for(const HtmlUnescapeSequence &unescape_sequence : unescape_sequences) { + string_replace_all(str, unescape_sequence.escape_sequence, unescape_sequence.unescaped_str); } } -- cgit v1.2.3