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);