commit 8b17629

default  ·  2023-08-17 16:20:16 +0000 UTC
parent 93bdf79
Simplified smiley processing.
1 files changed,  +29, -31
+29, -31
 1@@ -8,34 +8,30 @@
 2 #include "snac.h"
 3 
 4 /* emoticons, people laughing and such */
 5-
 6-struct {
 7-    const char *key;
 8-    const char *value;
 9-} smileys[] = {
10-    { ":-)",        "🙂" },
11-    { ":-D",        "😀" },
12-    { "X-D",        "😆" },
13-    { ";-)",        "😉" },
14-    { "B-)",        "😎" },
15-    { ">:-(",       "😡" },
16-    { ":-(",        "😞" },
17-    { ":-*",        "😘" },
18-    { ":-/",        "😕" },
19-    { "8-o",        "😲" },
20-    { "%-)",        "🤪" },
21-    { ":_(",        "😢" },
22-    { ":-|",        "😐" },
23-    { "<3",         "&#128147;" },
24-    { ":facepalm:", "&#129318;" },
25-    { ":shrug:",    "&#129335;" },
26-    { ":shrug2:",   "&#175;\\_(&#12484;)_/&#175;" },
27-    { ":eyeroll:",  "&#128580;" },
28-    { ":beer:",     "&#127866;" },
29-    { ":beers:",    "&#127867;" },
30-    { ":munch:",    "&#128561;" },
31-    { ":thumb:",    "&#128077;" },
32-    { NULL,         NULL }
33+const char *smileys[] = {
34+    ":-)",        "&#128578;",
35+    ":-D",        "&#128512;",
36+    "X-D",        "&#128518;",
37+    ";-)",        "&#128521;",
38+    "B-)",        "&#128526;",
39+    ">:-(",       "&#128545;",
40+    ":-(",        "&#128542;",
41+    ":-*",        "&#128536;",
42+    ":-/",        "&#128533;",
43+    "8-o",        "&#128562;",
44+    "%-)",        "&#129322;",
45+    ":_(",        "&#128546;",
46+    ":-|",        "&#128528;",
47+    "<3",         "&#128147;",
48+    ":facepalm:", "&#129318;",
49+    ":shrug:",    "&#129335;",
50+    ":shrug2:",   "&#175;\\_(&#12484;)_/&#175;",
51+    ":eyeroll:",  "&#128580;",
52+    ":beer:",     "&#127866;",
53+    ":beers:",    "&#127867;",
54+    ":munch:",    "&#128561;",
55+    ":thumb:",    "&#128077;",
56+    NULL,         NULL
57 };
58 
59 
60@@ -193,10 +189,12 @@ xs_str *not_really_markdown(const char *content, xs_list **attach)
61 
62     {
63         /* traditional emoticons */
64-        int n;
65+        const char **emo = smileys;
66 
67-        for (n = 0; smileys[n].key; n++)
68-            s = xs_replace_i(s, smileys[n].key, smileys[n].value);
69+        while (*emo) {
70+            s = xs_replace_i(s, emo[0], emo[1]);
71+            emo += 2;
72+        }
73     }
74 
75     return s;