瀏覽代碼

Process HTML Unicode entities specially in process_tags().

default 3 年之前
父節點
當前提交
b262961c93
共有 1 個文件被更改,包括 8 次插入 和 1 次删除
  1. 8 1
      activitypub.c

+ 8 - 1
activitypub.c

@@ -272,7 +272,7 @@ void process_tags(snac *snac, const char *content, d_char **n_content, d_char **
     char *p, *v;
     char *p, *v;
     int n = 0;
     int n = 0;
 
 
-    split = xs_regex_split(content, "(@[A-Za-z0-9_]+@[A-Za-z0-9\\.-]+|#[^ ,\\.:;<]+)");
+    split = xs_regex_split(content, "(@[A-Za-z0-9_]+@[A-Za-z0-9\\.-]+|&#[0-9]+;|#[^ ,\\.:;<]+)");
 
 
     p = split;
     p = split;
     while (xs_list_iter(&p, &v)) {
     while (xs_list_iter(&p, &v)) {
@@ -321,6 +321,13 @@ void process_tags(snac *snac, const char *content, d_char **n_content, d_char **
                 /* add the code */
                 /* add the code */
                 nc = xs_str_cat(nc, l);
                 nc = xs_str_cat(nc, l);
             }
             }
+            else
+            if (*v == '&') {
+                /* HTML Unicode entity, probably part of an emoji */
+
+                /* write as is */
+                nc = xs_str_cat(nc, v);
+            }
         }
         }
         else
         else
             nc = xs_str_cat(nc, v);
             nc = xs_str_cat(nc, v);