aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2021-04-03 18:51:13 +0200
committerdec05eba <dec05eba@protonmail.com>2021-04-05 05:53:41 +0200
commita105630199bb4be80b3a8228a2c3e5b0c7347625 (patch)
treedbb50d356d6201085362250a2891c6ab22ae8e59 /include
parent3ca7ed72c2f3a046e94213a8c26d80eafde9585c (diff)
Make url parsing better by using a list of valid tlds. Make urls blue in text
Diffstat (limited to 'include')
-rw-r--r--include/NetUtils.hpp9
-rw-r--r--include/Text.hpp3
2 files changed, 11 insertions, 1 deletions
diff --git a/include/NetUtils.hpp b/include/NetUtils.hpp
index 4770fb4..e719c82 100644
--- a/include/NetUtils.hpp
+++ b/include/NetUtils.hpp
@@ -4,8 +4,15 @@
#include <vector>
namespace QuickMedia {
+ struct Range {
+ size_t start;
+ size_t length;
+ };
+
void html_escape_sequences(std::string &str);
void html_unescape_sequences(std::string &str);
std::string url_param_encode(const std::string &param);
- void extract_urls(const std::string &str, std::vector<std::string> &urls);
+ std::vector<Range> extract_urls(const std::string &str);
+ std::vector<std::string> ranges_get_strings(const std::string &str, const std::vector<Range> &ranges);
+ void convert_utf8_to_utf32_ranges(const std::string &str, std::vector<Range> &ranges);
} \ No newline at end of file
diff --git a/include/Text.hpp b/include/Text.hpp
index 3981f13..c74607c 100644
--- a/include/Text.hpp
+++ b/include/Text.hpp
@@ -1,5 +1,6 @@
#pragma once
+#include "NetUtils.hpp"
#include <SFML/Graphics/VertexArray.hpp>
#include <SFML/System/String.hpp>
#include <SFML/System/Clock.hpp>
@@ -160,5 +161,7 @@ namespace QuickMedia
sf::Vector2u renderTargetSize;
std::vector<VertexRef> vertices_linear; // TODO: Use textElements instead
+
+ std::vector<Range> url_ranges;
};
}