diff options
author | dec05eba <dec05eba@protonmail.com> | 2020-09-21 03:49:17 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-09-21 03:49:17 +0200 |
commit | 40e0f8f5d8c3e480f01a2d71b6a493247adcb77f (patch) | |
tree | ccc3c0a7c82be8f5dbe86dfc712cce3da7e2ad59 /src/plugins/Plugin.cpp | |
parent | 5c72463c029804c85479d2c4426397d932c88ee1 (diff) |
Initial matrix support
Diffstat (limited to 'src/plugins/Plugin.cpp')
-rw-r--r-- | src/plugins/Plugin.cpp | 37 |
1 files changed, 28 insertions, 9 deletions
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<HtmlEscapeSequence, 6> 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<HtmlUnescapeSequence, 6> 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); } } |