Convert RFC2047-encoded strings to UTF8 before display
authorArt Cancro <ajc@citadel.org>
Sun, 10 Jul 2022 23:23:01 +0000 (19:23 -0400)
committerArt Cancro <ajc@citadel.org>
Sun, 10 Jul 2022 23:23:01 +0000 (19:23 -0400)
citadel/server/internet_addressing.c
webcit-ng/forum_view.c
webcit-ng/room_functions.c

index 5acf8b781a38f7d876321cb1dc2c42c27cf68d9c..31e3fe2d8762a3a4c560878b6958a2d7dfddd8be 100644 (file)
@@ -1347,8 +1347,9 @@ char *harvest_collected_addresses(struct CtdlMessage *msg) {
                if (!CM_IsEmpty(msg, field)) {
                        for (j=0; j<num_tokens(msg->cm_fields[field], ','); ++j) {
                                extract_token(addr, msg->cm_fields[field], j, ',', sizeof addr);
-                               if (strstr(addr, "=?") != NULL)
+                               if (strstr(addr, "=?") != NULL) {
                                        utf8ify_rfc822_string(addr);
+                               }
                                process_rfc822_addr(addr, user, node, name);
                                h = CtdlHostAlias(node);
                                if (h != hostalias_localhost) {
index 591e5fc55ba673d9bcfc82265fb4f36885424510..90ef33746c68cfbc8a9d058fe6526fd5b18dae00 100644 (file)
@@ -44,6 +44,7 @@ void json_render_one_message(struct http_transaction *h, struct ctdlsession *c,
        JsonObjectAppend(j, NewJsonNumber(HKEY("msgnum"), msgnum));
 
        while ((ctdl_readline(c, buf, sizeof(buf)) >= 0) && (strcmp(buf, "text")) && (strcmp(buf, "000"))) {
+               utf8ify_rfc822_string(&buf[5]);
 
                // citadel header parsing here
                if (!strncasecmp(buf, "from=", 5)) {
index 48701159da9d7092eddf0a98b5ef3577e91f1981..bafb7c9dd0587b34220baad777bfdac0f7033e46 100644 (file)
@@ -83,6 +83,7 @@ void json_mailbox(struct http_transaction *h, struct ctdlsession *c) {
        ctdl_readline(c, buf, sizeof(buf));
        if (buf[0] == '1') {
                while (ctdl_readline(c, buf, sizeof(buf)), (strcmp(buf, "000"))) {
+                       utf8ify_rfc822_string(buf);
                        JsonValue *jmsg = NewJsonObject(HKEY("message"));
                        JsonObjectAppend(jmsg, NewJsonNumber(HKEY("msgnum"), extract_long(buf, 0)));
                        JsonObjectAppend(jmsg, NewJsonNumber(HKEY("time"), extract_long(buf, 1)));