aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2021-07-08 16:10:10 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2021-07-08 16:10:10 +0100
commit83855b16bb7fb9c699cd7f4d935e58217bb41ab0 (patch)
treef91f8a4abb807cf7b7d2f27e1206b7d9be156bae /src
parent7a181b1fe66fcf0fd5a3b94c6ceae7e9a2a08b47 (diff)
downloadrspamd-83855b16bb7fb9c699cd7f4d935e58217bb41ab0.tar.gz
rspamd-83855b16bb7fb9c699cd7f4d935e58217bb41ab0.zip
[Minor] Fix hex colors parsing
Diffstat (limited to 'src')
-rw-r--r--src/libserver/css/css_value.cxx12
-rw-r--r--src/libserver/html/html.cxx3
2 files changed, 12 insertions, 3 deletions
diff --git a/src/libserver/css/css_value.cxx b/src/libserver/css/css_value.cxx
index 799d5f8ef..704905cd4 100644
--- a/src/libserver/css/css_value.cxx
+++ b/src/libserver/css/css_value.cxx
@@ -40,10 +40,16 @@ namespace rspamd::css {
auto css_value::maybe_color_from_string(const std::string_view &input)
-> std::optional<css_value> {
- auto found_it = css_colors_map.find(input);
- if (found_it != css_colors_map.end()) {
- return css_value{found_it->second};
+ if (input.size() > 1 && input.front() == '#') {
+ return css_value::maybe_color_from_hex(input.substr(1));
+ }
+ else {
+ auto found_it = css_colors_map.find(input);
+
+ if (found_it != css_colors_map.end()) {
+ return css_value{found_it->second};
+ }
}
return std::nullopt;
diff --git a/src/libserver/html/html.cxx b/src/libserver/html/html.cxx
index b3080bd88..346f87644 100644
--- a/src/libserver/html/html.cxx
+++ b/src/libserver/html/html.cxx
@@ -2132,6 +2132,9 @@ TEST_CASE("html text extraction")
"<span style=\"color: #00aff0;\">F</span>Rev<span style=\"opacity: 1;\"></span></span>ie<span style=\"opacity: 1;\"></span>"
"</span>w<span style=\"color: #00aff0;\">F<span style=\"opacity: 1;\">ΜΉ</span></span>",
" Review"},
+ {"<td style=\"color:#ffffff\" bgcolor=\"#005595\">\n"
+ "hello world\n"
+ "</td>", "hello world"},
/* Colors */
{"goodbye <span style=\"COLOR: rgb(64,64,64)\">cruel</span>"
"<span>world</span>", "goodbye cruelworld"},