Updated the boilerplate on each file
[citadel.git] / textclient / messages.c
index fe975c5e77dc560cf10e3741cf85746a8b16c0c8..31ca9011f6d6a6b39310df58402286eaf1eb33fc 100644 (file)
@@ -1,16 +1,14 @@
-/*
- * Text client functions for reading and writing of messages
- *
- * Copyright (c) 1987-2018 by the citadel.org team
- *
- * This program is open source software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
+// Text client functions for reading and writing of messages
+//
+// Copyright (c) 1987-2020 by the citadel.org team
+//
+// This program is open source software.  Use, duplication, and/or
+// disclosure are subject to the GNU General Purpose License version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
 
 #include "textclient.h"
 
@@ -30,7 +28,7 @@ struct cittext {
 void stty_ctdl(int cmd);
 int haschar(const char *st, int ch);
 int file_checksum(char *filename);
-void progress(CtdlIPC* ipc, unsigned long curr, unsigned long cmax);
+void progress(CtdlIPC * ipc, unsigned long curr, unsigned long cmax);
 
 unsigned long *msg_arr = NULL;
 int msg_arr_size = 0;
@@ -62,11 +60,10 @@ extern CtdlIPC *ipc_for_signal_handlers;    /* KLUDGE cover your eyes */
 int num_urls = 0;
 char urls[MAXURLS][SIZ];
 char imagecmd[SIZ];
-int has_images = 0;                            /* Current msg has images */
+int has_images = 0;            /* Current msg has images */
 struct parts *last_message_parts = NULL;       /* Parts from last msg */
 
 
-
 void ka_sigcatch(int signum)
 {
        alarm(S_KEEPALIVE);
@@ -127,7 +124,6 @@ int ka_system(char *shc)
 }
 
 
-
 /*
  * add a newline to the buffer...
  */
@@ -178,7 +174,7 @@ void add_word(struct cittext *textlist, char *wordbuf)
 /*
  * begin editing of an opened file pointed to by fp
  */
-void citedit(FILE *fp)
+void citedit(FILE * fp)
 {
        int a, prev, finished, b, last_space;
        int appending = 0;
@@ -261,10 +257,8 @@ void citedit(FILE *fp)
                                for (b = 0; b < strlen(wordbuf); ++b)
                                        if (wordbuf[b] == 32) {
                                                wordbuf[b] = 0;
-                                               add_word(textlist,
-                                                        wordbuf);
-                                               strcpy(wordbuf,
-                                                      &wordbuf[b + 1]);
+                                               add_word(textlist, wordbuf);
+                                               strcpy(wordbuf, &wordbuf[b + 1]);
                                                b = 0;
                                        }
                                add_word(textlist, wordbuf);
@@ -284,10 +278,8 @@ void citedit(FILE *fp)
                                for (b = 0; b < strlen(wordbuf); ++b)
                                        if (wordbuf[b] == 32) {
                                                wordbuf[b] = 0;
-                                               add_word(textlist,
-                                                        wordbuf);
-                                               strcpy(wordbuf,
-                                                      &wordbuf[b + 1]);
+                                               add_word(textlist, wordbuf);
+                                               strcpy(wordbuf, &wordbuf[b + 1]);
                                                b = 0;
                                        }
                                for (b = 0; b < strlen(wordbuf); ++b) {
@@ -316,7 +308,7 @@ void citedit(FILE *fp)
        if (rv < 0)
                scr_printf("failed to set message buffer: %s\n", strerror(errno));
 
-       
+
        /* and deallocate the memory we used */
        while (textlist != NULL) {
                ptr = textlist->next;
@@ -346,62 +338,78 @@ void free_parts(struct parts *p)
 /*
  * This is a mini RFC2047 decoder.
  * It only handles strings encoded from UTF-8 as Quoted-printable.
+ * We can do this "in place" because the converted string will always be smaller than the source string.
  */
-void mini_2047_decode(char *s) {
-       if (!s) return;
+void mini_2047_decode(char *s)
+{
+       if (!s) {                                               // no null strings allowed!
+               return;
+       }
 
-       char *qstart = strstr(s, "=?UTF-8?Q?");
-       if (!qstart) return;
+       char *qstart = strstr(s, "=?UTF-8?Q?");                 // Must start with this string
+       if (!qstart) {
+               return;
+       }
 
-       char *qend = strstr(s, "?=");
-       if (!qend) return;
+       char *qend = strstr(qstart+10, "?=");                   // Must end with this string
+       if (!qend) {
+               return;
+       }
 
-       if (qend <= qstart) return;
+       if (qend <= qstart) {                                   // And there must be something in between them.
+               return;
+       }
 
-       strcpy(qstart, &qstart[10]);
-       qend -= 10;
+       // The string has qualified for conversion.
 
-       char *p = qstart;
-       while (p < qend) {
+       strcpy(qend, "");                                       // Strip the trailer
+       strcpy(qstart, &qstart[10]);                            // Strip the header
 
-               if (p[0] == '=') {
+       char *r = qstart;                                       // Pointer to where in the string we're reading
+       char *w = s;                                            // Pointer to where in the string we're writing
 
+       while(*r) {                                             // Loop through the source string
+               if (r[0] == '=') {                              // "=" means read a hex character
                        char ch[3];
-                       ch[0] = p[1];
-                       ch[1] = p[2];
-                       ch[2] = p[3];
+                       ch[0] = r[1];
+                       ch[1] = r[2];
+                       ch[2] = r[3];
                        int c;
                        sscanf(ch, "%02x", &c);
-                       p[0] = c;
-                       strcpy(&p[1], &p[3]);
-                       qend -= 2;
+                       w[0] = c;
+                       r += 3;
+                       ++w;
                }
-
-               if (p[0] == '_') {
-                       p[0] = ' ';
+               else if (r[0] == '_') {                         // "_" is a space
+                       w[0] = ' ';
+                       ++r;
+                       ++w;
+               }
+               else {                                          // anything else pass through literally
+                       w[0] = r[0];
+                       ++r;
+                       ++w;
                }
-               
-               ++p;
        }
-
-       strcpy(qend, &qend[2]);
+       w[0] = 0;                                               // null terminate
 }
 
+
 /*
  * Read a message from the server
  */
 int read_message(CtdlIPC *ipc,
-       long num,   /* message number */
-       int pagin, /* 0 = normal read, 1 = read with pagination, 2 = header */
-       FILE *dest) /* Destination file, NULL for screen */
-{
+               long num,       /* message number */
+               int pagin,      /* 0 = normal read, 1 = read with pagination, 2 = header */
+               FILE *dest      /* Destination file, NULL for screen */
+{
        char buf[SIZ];
        char now[256];
        int format_type = 0;
        int fr = 0;
        int nhdr = 0;
        struct ctdlipcmessage *message = NULL;
-       int r;                          /* IPC response code */
+       int r;                  /* IPC response code */
        char *converted_text = NULL;
        char *lineptr;
        char *nextline;
@@ -410,7 +418,6 @@ int read_message(CtdlIPC *ipc,
        char ch;
        int linelen;
        int final_line_is_blank = 0;
-
        has_images = 0;
 
        sigcaught = 0;
@@ -433,10 +440,12 @@ int read_message(CtdlIPC *ipc,
 
        if (dest) {
                fprintf(dest, "\n ");
-       } else {
+       }
+       else {
                scr_printf("\n");
-               if (pagin != 2)
+               if (pagin != 2) {
                        scr_printf(" ");
+               }
        }
        if (pagin == 1 && !dest) {
                color(BRIGHT_CYAN);
@@ -445,19 +454,14 @@ int read_message(CtdlIPC *ipc,
        /* View headers only */
        if (pagin == 2) {
                scr_printf("nhdr=%s\nfrom=%s\ntype=%d\nmsgn=%s\n",
-                               message->nhdr ? "yes" : "no",
-                               message->author, message->type,
-                               message->msgid);
+                          message->nhdr ? "yes" : "no", message->author, message->type, message->msgid);
                if (!IsEmptyStr(message->subject)) {
                        scr_printf("subj=%s\n", message->subject);
                }
                if (!IsEmptyStr(message->email)) {
                        scr_printf("rfca=%s\n", message->email);
                }
-               scr_printf("room=%s\ntime=%s",
-                       message->room,
-                       asctime(localtime(&message->time))
-               );
+               scr_printf("room=%s\ntime=%s", message->room, asctime(localtime(&message->time)));
                if (!IsEmptyStr(message->recipient)) {
                        scr_printf("rcpt=%s\n", message->recipient);
                }
@@ -466,10 +470,7 @@ int read_message(CtdlIPC *ipc,
 
                        for (ptr = message->attachments; ptr; ptr = ptr->next) {
                                scr_printf("part=%s|%s|%s|%s|%s|%ld\n",
-                                       ptr->name, ptr->filename, ptr->number,
-                                       ptr->disposition, ptr->mimetype,
-                                       ptr->length
-                               );
+                                          ptr->name, ptr->filename, ptr->number, ptr->disposition, ptr->mimetype, ptr->length);
                        }
                }
                scr_printf("\n");
@@ -495,31 +496,34 @@ int read_message(CtdlIPC *ipc,
        if (nhdr == 1 && !is_room_aide) {
                if (dest) {
                        fprintf(dest, " ****");
-               } else {
+               }
+               else {
                        scr_printf(" ****");
                }
-       } else {
+       }
+       else {
                struct tm thetime;
                localtime_r(&message->time, &thetime);
                strftime(now, sizeof now, "%F %R", &thetime);
                if (dest) {
                        fprintf(dest, "%s from %s ", now, message->author);
-                       if (!IsEmptyStr(message->email)) {
+                       if (!message->is_local) {
                                fprintf(dest, "<%s> ", message->email);
                        }
-               } else {
+               }
+               else {
                        color(BRIGHT_CYAN);
                        scr_printf("%s ", now);
                        color(DIM_WHITE);
                        scr_printf("from ");
                        color(BRIGHT_CYAN);
                        scr_printf("%s ", message->author);
-                       if (!IsEmptyStr(message->email)) {
+                       if (!message->is_local) {
                                color(DIM_WHITE);
                                scr_printf("<");
                                color(BRIGHT_BLUE);
                                scr_printf("%s", message->email);
-                                       color(DIM_WHITE);
+                               color(DIM_WHITE);
                                scr_printf("> ");
                        }
                }
@@ -544,7 +548,7 @@ int read_message(CtdlIPC *ipc,
                        }
                }
        }
-       
+
        if (dest) {
                fprintf(dest, "\n");
        } else {
@@ -556,8 +560,7 @@ int read_message(CtdlIPC *ipc,
        if ((message->email != NULL) && (!IsEmptyStr(message->email))) {
                if (!IsEmptyStr(message->author)) {
                        snprintf(reply_to, sizeof reply_to, "%s <%s>", message->author, message->email);
-               }
-               else {
+               } else {
                        safestrncpy(reply_to, message->email, sizeof reply_to);
                }
        }
@@ -572,9 +575,10 @@ int read_message(CtdlIPC *ipc,
                safestrncpy(reply_inreplyto, message->msgid, sizeof reply_inreplyto);
        }
 
-       if (message->references != NULL) if (!IsEmptyStr(message->references)) {
-               safestrncpy(reply_references, message->references, sizeof reply_references);
-       }
+       if (message->references != NULL)
+               if (!IsEmptyStr(message->references)) {
+                       safestrncpy(reply_references, message->references, sizeof reply_references);
+               }
 
        if (message->subject != NULL) {
                safestrncpy(reply_subject, message->subject, sizeof reply_subject);
@@ -587,6 +591,7 @@ int read_message(CtdlIPC *ipc,
                                color(BRIGHT_CYAN);
                                mini_2047_decode(message->subject);
                                scr_printf("%s\n", message->subject);
+
                        }
                }
        }
@@ -602,7 +607,7 @@ int read_message(CtdlIPC *ipc,
         * of the client screen.
         */
        if (!strcasecmp(message->content_type, "text/html")) {
-               converted_text = html_to_ascii(message->text, 0, screenwidth, 0);
+               converted_text = html_to_ascii(message->text, 0, screenwidth);
                if (converted_text != NULL) {
                        free(message->text);
                        message->text = converted_text;
@@ -627,17 +632,16 @@ int read_message(CtdlIPC *ipc,
                "ftp://"
        };
        int p = 0;
-       num_urls = 0;   /* Start with a clean slate */
-       for (p=0; p<(sizeof urlprefixes / sizeof(char *)); ++p) {
+       num_urls = 0;           /* Start with a clean slate */
+       for (p = 0; p < (sizeof urlprefixes / sizeof(char *)); ++p) {
                searchptr = message->text;
-               while ( (searchptr != NULL) && (num_urls < MAXURLS) ) {
+               while ((searchptr != NULL) && (num_urls < MAXURLS)) {
                        searchptr = strstr(searchptr, urlprefixes[p]);
                        if (searchptr != NULL) {
                                safestrncpy(urls[num_urls], searchptr, sizeof(urls[num_urls]));
                                for (i = 0; i < strlen(urls[num_urls]); i++) {
                                        ch = urls[num_urls][i];
-                                       if (ch == '>' || ch == '\"' || ch == ')' ||
-                                           ch == ' ' || ch == '\n') {
+                                       if (ch == '>' || ch == '\"' || ch == ')' || ch == ' ' || ch == '\n') {
                                                urls[num_urls][i] = 0;
                                                break;
                                        }
@@ -663,12 +667,13 @@ int read_message(CtdlIPC *ipc,
                        if (nextline != NULL) {
                                *nextline = 0;
                                ++nextline;
-                               if (*nextline == 0) nextline = NULL;
+                               if (*nextline == 0)
+                                       nextline = NULL;
                        }
 
                        if (sigcaught == 0) {
                                linelen = strlen(lineptr);
-                               if (linelen && (lineptr[linelen-1] == '\r')) {
+                               if (linelen && (lineptr[linelen - 1] == '\r')) {
                                        lineptr[--linelen] = 0;
                                }
                                if (dest) {
@@ -677,8 +682,10 @@ int read_message(CtdlIPC *ipc,
                                        scr_printf("%s\n", lineptr);
                                }
                        }
-                       if (lineptr[0] == 0) final_line_is_blank = 1;
-                       else final_line_is_blank = 0;
+                       if (lineptr[0] == 0)
+                               final_line_is_blank = 1;
+                       else
+                               final_line_is_blank = 0;
                        lineptr = nextline;
                } while (nextline);
                fr = sigcaught;
@@ -686,25 +693,24 @@ int read_message(CtdlIPC *ipc,
        if (!final_line_is_blank) {
                if (dest) {
                        fprintf(dest, "\n");
-               }
-               else {
+               } else {
                        scr_printf("\n");
-                       fr = sigcaught;         
+                       fr = sigcaught;
                }
        }
 
        /* Enumerate any attachments */
-       if ( (pagin == 1) && (message->attachments) ) {
+       if ((pagin == 1) && (message->attachments)) {
                struct parts *ptr;
 
                for (ptr = message->attachments; ptr; ptr = ptr->next) {
-                       if ( (!strcasecmp(ptr->disposition, "attachment"))
-                          || (!strcasecmp(ptr->disposition, "inline"))
-                          || (!strcasecmp(ptr->disposition, ""))
-                       ) {
-                               if ( (strcasecmp(ptr->number, message->mime_chosen))
-                                  && (!IsEmptyStr(ptr->mimetype))
-                               ) {
+                       if ((!strcasecmp(ptr->disposition, "attachment"))
+                           || (!strcasecmp(ptr->disposition, "inline"))
+                           || (!strcasecmp(ptr->disposition, ""))
+                           ) {
+                               if ((strcasecmp(ptr->number, message->mime_chosen))
+                                   && (!IsEmptyStr(ptr->mimetype))
+                                   ) {
                                        color(DIM_WHITE);
                                        scr_printf("Part ");
                                        color(BRIGHT_MAGENTA);
@@ -736,6 +742,7 @@ int read_message(CtdlIPC *ipc,
        return (fr);
 }
 
+
 /*
  * replace string function for the built-in editor
  */
@@ -752,12 +759,12 @@ void replace_string(char *filename, long int startpos)
        long msglen = 0L;
        int rv;
 
-       newprompt("Enter text to be replaced: ", srch_str, (sizeof(srch_str)-1) );
+       newprompt("Enter text to be replaced: ", srch_str, (sizeof(srch_str) - 1));
        if (IsEmptyStr(srch_str)) {
                return;
        }
 
-       newprompt("Enter text to replace it with: ", rplc_str, (sizeof(rplc_str)-1) );
+       newprompt("Enter text to replace it with: ", rplc_str, (sizeof(rplc_str) - 1));
 
        fp = fopen(filename, "r+");
        if (fp == NULL) {
@@ -784,7 +791,7 @@ void replace_string(char *filename, long int startpos)
                        rv = fwrite((char *) buf, 128, 1, fp);
                        if (rv < 0) {
                                scr_printf("failed to replace string: %s\n", strerror(errno));
-                               break; /*whoopsi! */
+                               break;  /*whoopsi! */
                        }
                        strcpy(buf, &buf[128]);
                        wpos = ftell(fp);
@@ -801,18 +808,15 @@ void replace_string(char *filename, long int startpos)
        scr_printf("<R>eplace made %d substitution(s).\n\n", substitutions);
 }
 
+
 /*
  * Function to begin composing a new message
  */
-int client_make_message(CtdlIPC *ipc,
-                       char *filename,         /* temporary file name */
+int client_make_message(CtdlIPC * ipc, char *filename, /* temporary file name */
                        char *recipient,        /* NULL if it's not mail */
-                       int is_anonymous,
-                       int format_type,
-                       int mode,
-                       char *subject,          /* buffer to store subject line */
-                       int subject_required
-) {
+                       int is_anonymous, int format_type, int mode, char *subject,     /* buffer to store subject line */
+                       int subject_required)
+{
        FILE *fp;
        int a, b, e_ex_code;
        long beg;
@@ -820,7 +824,7 @@ int client_make_message(CtdlIPC *ipc,
        char header[SIZ];
        int cksum = 0;
 
-       if ( (mode == 2) && (IsEmptyStr(editor_path)) ) {
+       if ((mode == 2) && (IsEmptyStr(editor_path))) {
                scr_printf("*** No editor available; using built-in editor.\n");
                mode = 0;
        }
@@ -833,25 +837,21 @@ int client_make_message(CtdlIPC *ipc,
 
        if (room_flags & QR_ANONONLY && !recipient) {
                snprintf(header, sizeof header, " ****");
-       }
-       else {
-               snprintf(header, sizeof header,
-                       " %s from %s",
-                       datestr,
-                       (is_anonymous ? "[anonymous]" : fullname)
-                       );
+       } else {
+               snprintf(header, sizeof header, " %s from %s", datestr, (is_anonymous ? "[anonymous]" : fullname)
+                   );
                if (!IsEmptyStr(recipient)) {
                        size_t tmp = strlen(header);
-                       snprintf(&header[tmp], sizeof header - tmp,
-                               " to %s", recipient);
+                       snprintf(&header[tmp], sizeof header - tmp, " to %s", recipient);
                }
        }
        scr_printf("%s\n", header);
-       if (subject != NULL) if (!IsEmptyStr(subject)) {
-               scr_printf("Subject: %s\n", subject);
-       }
-       
-       if ( (subject_required) && (IsEmptyStr(subject)) ) {
+       if (subject != NULL)
+               if (!IsEmptyStr(subject)) {
+                       scr_printf("Subject: %s\n", subject);
+               }
+
+       if ((subject_required) && (IsEmptyStr(subject))) {
                newprompt("Subject: ", subject, 70);
        }
 
@@ -865,30 +865,27 @@ int client_make_message(CtdlIPC *ipc,
                        fmout(screenwidth, fp, NULL, NULL, 0);
                        beg = ftell(fp);
                        if (beg < 0)
-                               scr_printf("failed to get stream position %s\n", 
-                                          strerror(errno));
+                               scr_printf("failed to get stream position %s\n", strerror(errno));
                        fclose(fp);
                } else {
                        fp = fopen(filename, "w");
                        if (fp == NULL) {
-                               scr_printf("*** Error opening temp file!\n    %s: %s\n",
-                                       filename, strerror(errno)
-                               );
-                       return(1);
+                               scr_printf("*** Error opening temp file!\n    %s: %s\n", filename, strerror(errno)
+                                   );
+                               return (1);
                        }
                        fclose(fp);
                }
        }
 
-ME1:   switch (mode) {
+      ME1:switch (mode) {
 
        case 0:
                fp = fopen(filename, "r+");
                if (fp == NULL) {
-                       scr_printf("*** Error opening temp file!\n    %s: %s\n",
-                               filename, strerror(errno)
-                       );
-                       return(1);
+                       scr_printf("*** Error opening temp file!\n    %s: %s\n", filename, strerror(errno)
+                           );
+                       return (1);
                }
                citedit(fp);
                fclose(fp);
@@ -897,10 +894,8 @@ ME1:       switch (mode) {
        case 1:
                fp = fopen(filename, "a");
                if (fp == NULL) {
-                       scr_printf("*** Error opening temp file!\n"
-                               "    %s: %s\n",
-                               filename, strerror(errno));
-                       return(1);
+                       scr_printf("*** Error opening temp file!\n" "    %s: %s\n", filename, strerror(errno));
+                       return (1);
                }
                do {
                        a = inkey();
@@ -919,7 +914,7 @@ ME1:        switch (mode) {
                break;
 
        case 2:
-       default:        /* allow 2+ modes */
+       default:                /* allow 2+ modes */
                e_ex_code = 1;  /* start with a failed exit code */
                stty_ctdl(SB_RESTORE);
                editor_pid = fork();
@@ -943,7 +938,7 @@ ME1:        switch (mode) {
                break;
        }
 
-MECR:  if (mode >= 2) {
+      MECR:if (mode >= 2) {
                if (file_checksum(filename) == cksum) {
                        scr_printf("*** Aborted message.\n");
                        e_ex_code = 1;
@@ -955,34 +950,31 @@ MECR:     if (mode >= 2) {
        }
 
        b = keymenu("Entry command (? for options)",
-               "<A>bort|"
-               "<C>ontinue|"
-               "<S>ave message|"
-               "<P>rint formatted|"
-               "add s<U>bject|"
-               "<R>eplace string|"
-               "<H>old message"
-       );
-
-       if (b == 'a') goto MEABT;
-       if (b == 'c') goto ME1;
-       if (b == 's') goto MEFIN;
+                   "<A>bort|"
+                   "<C>ontinue|" "<S>ave message|" "<P>rint formatted|" "add s<U>bject|" "<R>eplace string|" "<H>old message");
+
+       if (b == 'a')
+               goto MEABT;
+       if (b == 'c')
+               goto ME1;
+       if (b == 's')
+               goto MEFIN;
        if (b == 'p') {
                scr_printf(" %s from %s", datestr, fullname);
                if (!IsEmptyStr(recipient)) {
                        scr_printf(" to %s", recipient);
                }
                scr_printf("\n");
-               if (subject != NULL) if (!IsEmptyStr(subject)) {
-                       scr_printf("Subject: %s\n", subject);
-               }
+               if (subject != NULL)
+                       if (!IsEmptyStr(subject)) {
+                               scr_printf("Subject: %s\n", subject);
+                       }
                fp = fopen(filename, "r");
                if (fp != NULL) {
                        fmout(screenwidth, fp, NULL, NULL, 0);
                        beg = ftell(fp);
                        if (beg < 0)
-                               scr_printf("failed to get stream position %s\n", 
-                                          strerror(errno));
+                               scr_printf("failed to get stream position %s\n", strerror(errno));
                        fclose(fp);
                }
                goto MECR;
@@ -1001,13 +993,13 @@ MECR:    if (mode >= 2) {
                goto MECR;
        }
 
-MEFIN: return (0);
+      MEFIN:return (0);
 
-MEABT: scr_printf("Are you sure? ");
+      MEABT:scr_printf("Are you sure? ");
        if (yesno() == 0) {
                goto ME1;
        }
-MEABT2:        unlink(filename);
+      MEABT2:unlink(filename);
        return (2);
 }
 
@@ -1015,11 +1007,11 @@ MEABT2: unlink(filename);
 /*
  * Make sure there's room in msg_arr[] for at least one more.
  */
-void check_msg_arr_size(void) {
+void check_msg_arr_size(void)
+{
        if ((num_msgs + 1) > msg_arr_size) {
                msg_arr_size += 512;
-               msg_arr = realloc(msg_arr,
-                       ((sizeof(long)) * msg_arr_size) );
+               msg_arr = realloc(msg_arr, ((sizeof(long)) * msg_arr_size));
        }
 }
 
@@ -1028,7 +1020,8 @@ void check_msg_arr_size(void) {
  * break_big_lines()  -  break up lines that are >1024 characters
  *                       otherwise the server will truncate
  */
-void break_big_lines(char *msg) {
+void break_big_lines(char *msg)
+{
        char *ptr;
        char *break_here;
 
@@ -1052,11 +1045,11 @@ void break_big_lines(char *msg) {
  * entmsg()  -  edit and create a message
  *              returns 0 if message was saved
  */
-int entmsg(CtdlIPC *ipc,
-               int is_reply,   /* nonzero if this was a <R>eply command */
-               int c,          /* mode */
-               int masquerade  /* prompt for a non-default display name? */
-{
+int entmsg(CtdlIPC * ipc, int is_reply,        /* nonzero if this was a <R>eply command */
+          int c,               /* mode */
+          int masquerade       /* prompt for a non-default display name? */
+    )
+{
        char buf[SIZ];
        int a, b;
        int need_recp = 0;
@@ -1069,15 +1062,28 @@ int entmsg(CtdlIPC *ipc,
        int r;                  /* IPC response code */
        int subject_required = 0;
 
-       if (!entmsg_ok) {
+       if (entmsg_ok == ENTMSG_OK_YES) {
+               /* no problem, go right ahead */
+       }
+       else if (entmsg_ok == ENTMSG_OK_BLOG) {
+               if (!is_reply) {
+                       scr_printf("WARNING: this is a BLOG room.\n");
+                       scr_printf("The '<E>nter Message' command will create a BLOG POST.\n");
+                       scr_printf("If you want to leave a comment or reply to a comment, use the '<R>eply' command.\n");
+                       scr_printf("Do you really want to create a new blog post? ");
+                       if (!yesno()) {
+                               return(1);
+                       }
+               }
+       }
+       else {
                scr_printf("You may not enter messages in this type of room.\n");
-               return(1);
+               return (1);
        }
 
        if (c > 0) {
                mode = 1;
-       }
-       else {
+       } else {
                mode = 0;
        }
 
@@ -1091,7 +1097,7 @@ int entmsg(CtdlIPC *ipc,
        strcpy(message.author, "");
        strcpy(message.subject, "");
        strcpy(message.references, "");
-       message.text = "";              /* point to "", changes later */
+       message.text = "";      /* point to "", changes later */
        message.anonymous = 0;
        message.type = mode;
 
@@ -1102,15 +1108,10 @@ int entmsg(CtdlIPC *ipc,
        if (is_reply) {
 
                if (!IsEmptyStr(reply_subject)) {
-                       if (!strncasecmp(reply_subject,
-                          "Re: ", 3)) {
+                       if (!strncasecmp(reply_subject, "Re: ", 3)) {
                                strcpy(message.subject, reply_subject);
-                       }
-                       else {
-                               snprintf(message.subject,
-                                       sizeof message.subject,
-                                       "Re: %s",
-                                       reply_subject);
+                       } else {
+                               snprintf(message.subject, sizeof message.subject, "Re: %s", reply_subject);
                        }
                }
 
@@ -1119,15 +1120,12 @@ int entmsg(CtdlIPC *ipc,
                 */
                int rrtok = num_tokens(reply_references, '|');
                int rrlen = strlen(reply_references);
-               if ( ((rrtok >= 3) && (rrlen > 900)) || (rrtok > 10) ) {
+               if (((rrtok >= 3) && (rrlen > 900)) || (rrtok > 10)) {
                        remove_token(reply_references, 1, '|');
                }
 
                snprintf(message.references, sizeof message.references, "%s%s%s",
-                       reply_references,
-                       (IsEmptyStr(reply_references) ? "" : "|"),
-                       reply_inreplyto
-               );
+                        reply_references, (IsEmptyStr(reply_references) ? "" : "|"), reply_inreplyto);
        }
 
        r = CtdlIPCPostMessage(ipc, 0, &subject_required, &message, buf);
@@ -1159,7 +1157,7 @@ int entmsg(CtdlIPC *ipc,
                        if (is_reply) {
                                strcpy(buf, reply_to);
                        } else {
-                               newprompt("Enter recipient: ", buf, SIZ-100);
+                               newprompt("Enter recipient: ", buf, SIZ - 100);
                                if (IsEmptyStr(buf)) {
                                        return (1);
                                }
@@ -1177,7 +1175,7 @@ int entmsg(CtdlIPC *ipc,
 
        /* If it's mail, we've got to check the validity of the recipient... */
        if (!IsEmptyStr(message.recipient)) {
-               r = CtdlIPCPostMessage(ipc, 0, &subject_required,  &message, buf);
+               r = CtdlIPCPostMessage(ipc, 0, &subject_required, &message, buf);
                if (r / 100 != 2) {
                        scr_printf("%s\n", buf);
                        return (1);
@@ -1185,21 +1183,20 @@ int entmsg(CtdlIPC *ipc,
        }
 
        /* Learn the number of the newest message in in the room, so we can
-        * tell upon saving whether someone else has posted too.
-        */
+        * tell upon saving whether someone else has posted too.
+        */
        num_msgs = 0;
        r = CtdlIPCGetMessages(ipc, LastMessages, 1, NULL, &msgarr, buf);
        if (r / 100 != 1) {
                scr_printf("%s\n", buf);
        } else {
-               for (num_msgs = 0; msgarr[num_msgs]; num_msgs++)
-                       ;
+               for (num_msgs = 0; msgarr[num_msgs]; num_msgs++);
        }
 
        /* Now compose the message... */
-       if (client_make_message(ipc, temp, message.recipient,
-          message.anonymous, 0, c, message.subject, subject_required) != 0) {
-           if (msgarr) free(msgarr);   
+       if (client_make_message(ipc, temp, message.recipient, message.anonymous, 0, c, message.subject, subject_required) != 0) {
+               if (msgarr)
+                       free(msgarr);
                return (2);
        }
 
@@ -1207,14 +1204,13 @@ int entmsg(CtdlIPC *ipc,
        fp = fopen(temp, "r");
 
        if (!fp || !(message.text = load_message_from_file(fp))) {
-               scr_printf("*** Internal error while trying to save message!\n"
-                       "%s: %s\n",
-                       temp, strerror(errno));
+               scr_printf("*** Internal error while trying to save message!\n" "%s: %s\n", temp, strerror(errno));
                unlink(temp);
-               return(errno);
+               return (errno);
        }
 
-       if (fp) fclose(fp);
+       if (fp)
+               fclose(fp);
 
        /* Break lines that are >1024 characters, otherwise the server
         * will truncate them.
@@ -1231,16 +1227,17 @@ int entmsg(CtdlIPC *ipc,
        /* Yes, unlink it now, so it doesn't stick around if we crash */
        unlink(temp);
 
-       if (num_msgs >= 1) highmsg = msgarr[num_msgs - 1];
+       if (num_msgs >= 1)
+               highmsg = msgarr[num_msgs - 1];
 
-       if (msgarr) free(msgarr);
+       if (msgarr)
+               free(msgarr);
        msgarr = NULL;
        r = CtdlIPCGetMessages(ipc, NewMessages, 0, NULL, &msgarr, buf);
        if (r / 100 != 1) {
                scr_printf("%s\n", buf);
        } else {
-               for (num_msgs = 0; msgarr[num_msgs]; num_msgs++)
-                       ;
+               for (num_msgs = 0; msgarr[num_msgs]; num_msgs++);
        }
 
        /* get new highest message number in room to set lrp for goto... */
@@ -1253,7 +1250,8 @@ int entmsg(CtdlIPC *ipc,
                        ++b;
                }
        }
-       if (msgarr) free(msgarr);
+       if (msgarr)
+               free(msgarr);
        msgarr = NULL;
 
        /* In the Mail> room, this algorithm always counts one message
@@ -1264,18 +1262,16 @@ int entmsg(CtdlIPC *ipc,
        }
 
        if (b == 1) {
-               scr_printf("*** 1 additional message has been entered "
-                       "in this room by another user.\n");
-       }
-       else if (b > 1) {
-               scr_printf("*** %d additional messages have been entered "
-                       "in this room by other users.\n", b);
+               scr_printf("*** 1 additional message has been entered " "in this room by another user.\n");
+       } else if (b > 1) {
+               scr_printf("*** %d additional messages have been entered " "in this room by other users.\n", b);
        }
-    free(message.text);
+       free(message.text);
 
-       return(0);
+       return (0);
 }
 
+
 /*
  * Do editing on a quoted file
  */
@@ -1310,8 +1306,9 @@ void process_quote(void)
        }
        tfile = fopen(temp, "w");
        while (fgets(buf, 128, qfile) != NULL) {
-               if ((++line >= qstart) && (line <= qend))
+               if ((++line >= qstart) && (line <= qend)) {
                        fprintf(tfile, " >%s", buf);
+               }
        }
        fprintf(tfile, " \n");
        fclose(qfile);
@@ -1320,18 +1317,17 @@ void process_quote(void)
 }
 
 
-
 /*
- * List the URL's which were embedded in the previous message
+ * List the URLs which were embedded in the previous message
  */
-void list_urls(CtdlIPC *ipc)
+void list_urls(CtdlIPC * ipc)
 {
        int i;
        char cmd[SIZ];
        int rv;
 
        if (num_urls == 0) {
-               scr_printf("There were no URL's in the previous message.\n\n");
+               scr_printf("There were no URLs in the previous message.\n\n");
                return;
        }
 
@@ -1344,8 +1340,6 @@ void list_urls(CtdlIPC *ipc)
 
        snprintf(cmd, sizeof cmd, rc_url_cmd, urls[i - 1]);
        rv = system(cmd);
-       if (rv != 0) 
-               scr_printf("failed to '%s' by %d\n", cmd, rv);
        scr_printf("\n");
 }
 
@@ -1407,7 +1401,7 @@ int do_image_view(const char *filename)
                waitpid(childpid, &retcode, 0);
                return retcode;
        }
-       
+
        return -1;
 }
 
@@ -1415,7 +1409,7 @@ int do_image_view(const char *filename)
 /*
  * View an image attached to a message
  */
-void image_view(CtdlIPC *ipc, unsigned long msg)
+void image_view(CtdlIPC * ipc, unsigned long msg)
 {
        struct parts *ptr = last_message_parts;
        char part[SIZ];
@@ -1424,8 +1418,8 @@ void image_view(CtdlIPC *ipc, unsigned long msg)
        /* Run through available parts */
        for (ptr = last_message_parts; ptr; ptr = ptr->next) {
                if ((!strcasecmp(ptr->disposition, "attachment")
-                  || !strcasecmp(ptr->disposition, "inline"))
-                  && !strncmp(ptr->mimetype, "image/", 6)) {
+                    || !strcasecmp(ptr->disposition, "inline"))
+                   && !strncmp(ptr->mimetype, "image/", 6)) {
                        found++;
                        if (found == 1) {
                                strcpy(part, ptr->number);
@@ -1435,18 +1429,18 @@ void image_view(CtdlIPC *ipc, unsigned long msg)
 
        while (found > 0) {
                if (found > 1)
-                       strprompt("View which part (0 when done)", part, SIZ-1);
+                       strprompt("View which part (0 when done)", part, SIZ - 1);
                found = -found;
                for (ptr = last_message_parts; ptr; ptr = ptr->next) {
                        if ((!strcasecmp(ptr->disposition, "attachment")
-                          || !strcasecmp(ptr->disposition, "inline"))
-                          && !strncmp(ptr->mimetype, "image/", 6)
-                          && !strcasecmp(ptr->number, part)) {
+                            || !strcasecmp(ptr->disposition, "inline"))
+                           && !strncmp(ptr->mimetype, "image/", 6)
+                           && !strcasecmp(ptr->number, part)) {
                                char tmp[PATH_MAX];
                                char buf[SIZ];
-                               void *file = NULL; /* The downloaded file */
+                               void *file = NULL;      /* The downloaded file */
                                int r;
-       
+
                                /* view image */
                                found = -found;
                                r = CtdlIPCAttachmentDownload(ipc, msg, ptr->number, &file, progress, buf);
@@ -1454,8 +1448,8 @@ void image_view(CtdlIPC *ipc, unsigned long msg)
                                        scr_printf("%s\n", buf);
                                } else {
                                        size_t len;
-       
-                                       len = (size_t)extract_long(buf, 0);
+
+                                       len = (size_t) extract_long(buf, 0);
                                        progress(ipc, len, len);
                                        scr_flush();
                                        CtdlMakeTempFileName(tmp, sizeof tmp);
@@ -1471,16 +1465,16 @@ void image_view(CtdlIPC *ipc, unsigned long msg)
                        break;
        }
 }
+
 
 /*
  * Read the messages in the current room
  */
-void readmsgs(CtdlIPC *ipc,
-       enum MessageList c,             /* see listing in citadel_ipc.h */
-       enum MessageDirection rdir,     /* 1=Forward (-1)=Reverse */
-       int q           /* Number of msgs to read (if c==3) */
-{
+void readmsgs(CtdlIPC * ipc, enum MessageList c,       /* see listing in citadel_ipc.h */
+             enum MessageDirection rdir,       /* 1=Forward (-1)=Reverse */
+             int q             /* Number of msgs to read (if c==3) */
+    )
+{
        int a, e, f, g, start;
        int savedpos;
        int hold_sw = 0;
@@ -1494,10 +1488,10 @@ void readmsgs(CtdlIPC *ipc,
        char filename[PATH_MAX];
        char save_to[PATH_MAX];
        void *attachment = NULL;        /* Downloaded attachment */
-       FILE *dest = NULL;              /* Alternate destination other than screen */
-       int r;                          /* IPC response code */
-       static int att_seq = 0;         /* Attachment download sequence number */
-       int rv = 0;                     /* silence the stupid warn_unused_result warnings */
+       FILE *dest = NULL;      /* Alternate destination other than screen */
+       int r;                  /* IPC response code */
+       static int att_seq = 0; /* Attachment download sequence number */
+       int rv = 0;             /* silence the stupid warn_unused_result warnings */
 
        CtdlMakeTempFileName(prtfile, sizeof prtfile);
 
@@ -1509,15 +1503,18 @@ void readmsgs(CtdlIPC *ipc,
        if (r / 100 != 1) {
                scr_printf("%s\n", cmd);
        } else {
-               for (num_msgs = 0; msg_arr[num_msgs]; num_msgs++)
-                       ;
+               for (num_msgs = 0; msg_arr[num_msgs]; num_msgs++);
        }
 
-       if (num_msgs == 0) {    /* TODO look at this later */
-               if (c == LastMessages) return;
+       if (num_msgs == 0) {
+               if (c == LastMessages) {
+                       return;
+               }
                scr_printf("*** There are no ");
-               if (c == NewMessages) scr_printf("new ");
-               if (c == OldMessages) scr_printf("old ");
+               if (c == NewMessages)
+                       scr_printf("new ");
+               if (c == OldMessages)
+                       scr_printf("old ");
                scr_printf("messages in this room.\n");
                return;
        }
@@ -1531,7 +1528,7 @@ void readmsgs(CtdlIPC *ipc,
                                return;
                }
 
-RAGAIN:                pagin = ((arcflag == 0)
+             RAGAIN:pagin = ((arcflag == 0)
                         && (quotflag == 0)
                         && (userflags & US_PAGINATOR)) ? 1 : 0;
 
@@ -1558,7 +1555,7 @@ RAGAIN:           pagin = ((arcflag == 0)
                if ((quotflag) || (arcflag)) {
                        screenwidth = hold_sw;
                }
-RMSGREAD:
+             RMSGREAD:
                highest_msg_read = msg_arr[a];
                if (quotflag) {
                        fclose(dest);
@@ -1594,7 +1591,7 @@ RMSGREAD:
                if (e == SIGQUIT)
                        return;
                if (((userflags & US_NOPROMPT) || (e == SIGINT))
-                       && (((room_flags & QR_MAILBOX) == 0)
+                   && (((room_flags & QR_MAILBOX) == 0)
                        || (rc_force_mail_prompts == 0))) {
                        e = 'n';
                } else {
@@ -1620,10 +1617,10 @@ RMSGREAD:
 /* space key same as <N> */ if (e == 32)
                                        e = 'n';
 /* del/move for aides only */
-                                   if (  (!is_room_aide)
-                                      && ((room_flags & QR_MAILBOX) == 0)
-                                      && ((room_flags2 & QR2_COLLABDEL) == 0)
-                                      ) {
+                               if ((!is_room_aide)
+                                   && ((room_flags & QR_MAILBOX) == 0)
+                                   && ((room_flags2 & QR2_COLLABDEL) == 0)
+                                   ) {
                                        if ((e == 'd') || (e == 'm'))
                                                e = 0;
                                }
@@ -1631,22 +1628,22 @@ RMSGREAD:
                                if ((e == 'p') && (IsEmptyStr(printcmd)))
                                        e = 0;
 /* can't file if not allowed */
-                                   if ((e == 'f')
-                                       && (rc_allow_attachments == 0))
+                               if ((e == 'f')
+                                   && (rc_allow_attachments == 0))
                                        e = 0;
 /* link only if browser avail*/
-                                   if ((e == 'u')
-                                       && (IsEmptyStr(rc_url_cmd)))
+                               if ((e == 'u')
+                                   && (IsEmptyStr(rc_url_cmd)))
                                        e = 0;
                                if ((e == 'i')
-                                       && (IsEmptyStr(imagecmd) || !has_images))
+                                   && (IsEmptyStr(imagecmd) || !has_images))
                                        e = 0;
                        } while ((e != 'a') && (e != 'n') && (e != 's')
                                 && (e != 'd') && (e != 'm') && (e != 'p')
                                 && (e != 'q') && (e != 'b') && (e != 'h')
                                 && (e != 'r') && (e != 'f') && (e != '?')
                                 && (e != 'u') && (e != 'c') && (e != 'y')
-                                && (e != 'i') && (e != 'o') );
+                                && (e != 'i') && (e != 'o'));
                        switch (e) {
                        case 's':
                                scr_printf("Stop");
@@ -1704,28 +1701,26 @@ RMSGREAD:
                        else
                                scr_printf("\n");
                }
-DONE_QUOTING:  switch (e) {
+             DONE_QUOTING:switch (e) {
                case '?':
                        scr_printf("Options available here:\n"
-                               " ?  Help (prints this message)\n"
-                               " S  Stop reading immediately\n"
-                               " A  Again (repeats last message)\n"
-                               " N  Next (continue with next message)\n"
-                               " Y  My Next (continue with next message you authored)\n"
-                               " B  Back (go back to previous message)\n");
-                       if (  (is_room_aide)
-                          || (room_flags & QR_MAILBOX)
-                          || (room_flags2 & QR2_COLLABDEL)
-                       ) {
-                               scr_printf(" D  Delete this message\n"
-                                       " M  Move message to another room\n");
+                                  " ?  Help (prints this message)\n"
+                                  " S  Stop reading immediately\n"
+                                  " A  Again (repeats last message)\n"
+                                  " N  Next (continue with next message)\n"
+                                  " Y  My Next (continue with next message you authored)\n"
+                                  " B  Back (go back to previous message)\n");
+                       if ((is_room_aide)
+                           || (room_flags & QR_MAILBOX)
+                           || (room_flags2 & QR2_COLLABDEL)
+                           ) {
+                               scr_printf(" D  Delete this message\n" " M  Move message to another room\n");
                        }
                        scr_printf(" C  Copy message to another room\n");
                        if (!IsEmptyStr(printcmd))
                                scr_printf(" P  Print this message\n");
-                       scr_printf(
-                               " Q  Reply to this message, quoting portions of it\n"
-                               " H  Headers (display message headers only)\n");
+                       scr_printf(" Q  Reply to this message, quoting portions of it\n"
+                                  " H  Headers (display message headers only)\n");
                        if (is_mail)
                                scr_printf(" R  Reply to this message\n");
                        if (rc_allow_attachments) {
@@ -1761,11 +1756,9 @@ DONE_QUOTING:    switch (e) {
                        break;
                case 'm':
                case 'c':
-                       newprompt("Enter target room: ",
-                                 targ, ROOMNAMELEN - 1);
+                       newprompt("Enter target room: ", targ, ROOMNAMELEN - 1);
                        if (!IsEmptyStr(targ)) {
-                               r = CtdlIPCMoveMessage(ipc, (e == 'c' ? 1 : 0),
-                                                      msg_arr[a], targ, cmd);
+                               r = CtdlIPCMoveMessage(ipc, (e == 'c' ? 1 : 0), msg_arr[a], targ, cmd);
                                scr_printf("%s\n", cmd);
                                if (r / 100 == 2)
                                        msg_arr[a] = 0L;
@@ -1778,8 +1771,7 @@ DONE_QUOTING:     switch (e) {
                case 'o':
                case 'f':
                        newprompt("Which section? ", filename, ((sizeof filename) - 1));
-                       r = CtdlIPCAttachmentDownload(ipc, msg_arr[a],
-                                       filename, &attachment, progress, cmd);
+                       r = CtdlIPCAttachmentDownload(ipc, msg_arr[a], filename, &attachment, progress, cmd);
                        if (r / 100 != 2) {
                                scr_printf("%s\n", cmd);
                        } else {
@@ -1791,19 +1783,15 @@ DONE_QUOTING:   switch (e) {
                                if (IsEmptyStr(filename)) {
                                        strcpy(filename, reply_subject);
                                }
-                               if (e == 'o') {         /* open attachment */
+                               if (e == 'o') { /* open attachment */
                                        mkdir(tempdir, 0700);
-                                       snprintf(save_to, sizeof save_to, "%s/%04x.%s",
-                                               tempdir,
-                                               ++att_seq,
-                                               filename);
+                                       snprintf(save_to, sizeof save_to, "%s/%04x.%s", tempdir, ++att_seq, filename);
                                        save_buffer(attachment, extract_unsigned_long(cmd, 0), save_to);
                                        snprintf(cmd, sizeof cmd, rc_open_cmd, save_to);
                                        rv = system(cmd);
                                        if (rv != 0)
                                                scr_printf("failed to save %s Reason %d\n", cmd, rv);
-                               }
-                               else {                  /* save attachment to disk */
+                               } else {        /* save attachment to disk */
                                        destination_directory(save_to, filename);
                                        save_buffer(attachment, extract_unsigned_long(cmd, 0), save_to);
                                }
@@ -1838,44 +1826,41 @@ DONE_QUOTING:   switch (e) {
                case 'i':
                        image_view(ipc, msg_arr[a]);
                        goto RMSGREAD;
-           case 'y':
-          { /* hack hack hack */
-            /* find the next message by me, stay here if we find nothing */
-            int finda;
-            int lasta = a;
-            for (finda = (a + rdir); ((finda < num_msgs) && (finda >= 0)); finda += rdir)
-              {
-               /* This is repetitively dumb, but that's what computers are for.
-                  We have to load up messages until we find one by us */
-               char buf[SIZ];
-               int founda = 0;
-               struct ctdlipcmessage *msg = NULL;
-                
-               /* read the header so we can get 'from=' */
-               r = CtdlIPCGetSingleMessage(ipc, msg_arr[finda], 1, 0, &msg, buf);
-               if (!strncasecmp(msg->author, fullname, sizeof(fullname))) {
-                       a = lasta; /* meesa current */
-                       founda = 1;
-               }
+               case 'y':
+                       {       /* hack hack hack */
+                               /* find the next message by me, stay here if we find nothing */
+                               int finda;
+                               int lasta = a;
+                               for (finda = (a + rdir); ((finda < num_msgs) && (finda >= 0)); finda += rdir) {
+                                       /* This is repetitively dumb, but that's what computers are for.
+                                          We have to load up messages until we find one by us */
+                                       char buf[SIZ];
+                                       int founda = 0;
+                                       struct ctdlipcmessage *msg = NULL;
+
+                                       /* read the header so we can get 'from=' */
+                                       r = CtdlIPCGetSingleMessage(ipc, msg_arr[finda], 1, 0, &msg, buf);
+                                       if (!strncasecmp(msg->author, fullname, sizeof(fullname))) {
+                                               a = lasta;      /* meesa current */
+                                               founda = 1;
+                                       }
 
-               free(msg);
+                                       free(msg);
 
-               if (founda)
-                       break; /* for */
-               lasta = finda; /* keep one behind or we skip on the reentrance to the for */
-              } /* for */
-          } /* case 'y' */
-      } /* switch */
+                                       if (founda)
+                                               break;  /* for */
+                                       lasta = finda;  /* keep one behind or we skip on the reentrance to the for */
+                               }       /* for */
+                       }       /* case 'y' */
+               }               /* switch */
        }                       /* end for loop */
 }                              /* end read routine */
 
 
-
-
 /*
  * View and edit a system message
  */
-void edit_system_message(CtdlIPC *ipc, char *which_message)
+void edit_system_message(CtdlIPC * ipc, char *which_message)
 {
        char desc[SIZ];
        char read_cmd[SIZ];
@@ -1888,13 +1873,10 @@ void edit_system_message(CtdlIPC *ipc, char *which_message)
 }
 
 
-
-
 /*
- * Loads the contents of a file into memory.  Caller must free the allocated
- * memory.
+ * Loads the contents of a file into memory.  Caller must free the allocated memory.
  */
-char *load_message_from_file(FILE *src)
+char *load_message_from_file(FILE * src)
 {
        size_t i;
        size_t got = 0;
@@ -1904,7 +1886,7 @@ char *load_message_from_file(FILE *src)
        i = ftell(src);
        rewind(src);
 
-       dest = (char *)calloc(1, i + 1);
+       dest = (char *) calloc(1, i + 1);
        if (!dest)
                return NULL;