commit b262961
default
·
2023-01-17 08:37:41 +0000 UTC
parent 8e1f443
Process HTML Unicode entities specially in process_tags().
1 files changed,
+8,
-1
+8,
-1
1@@ -272,7 +272,7 @@ void process_tags(snac *snac, const char *content, d_char **n_content, d_char **
2 char *p, *v;
3 int n = 0;
4
5- split = xs_regex_split(content, "(@[A-Za-z0-9_]+@[A-Za-z0-9\\.-]+|#[^ ,\\.:;<]+)");
6+ split = xs_regex_split(content, "(@[A-Za-z0-9_]+@[A-Za-z0-9\\.-]+|&#[0-9]+;|#[^ ,\\.:;<]+)");
7
8 p = split;
9 while (xs_list_iter(&p, &v)) {
10@@ -321,6 +321,13 @@ void process_tags(snac *snac, const char *content, d_char **n_content, d_char **
11 /* add the code */
12 nc = xs_str_cat(nc, l);
13 }
14+ else
15+ if (*v == '&') {
16+ /* HTML Unicode entity, probably part of an emoji */
17+
18+ /* write as is */
19+ nc = xs_str_cat(nc, v);
20+ }
21 }
22 else
23 nc = xs_str_cat(nc, v);