/*
* Text client functions for reading and writing of messages
*
- * Copyright (c) 1987-2019 by the citadel.org team
+ * Copyright (c) 1987-2020 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.
/*
* 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 */
+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 */
+) {
char buf[SIZ];
char now[256];
int format_type = 0;
char ch;
int linelen;
int final_line_is_blank = 0;
-
has_images = 0;
sigcaught = 0;
if (dest) {
fprintf(dest, "\n ");
- } else {
+ }
+ else {
scr_printf("\n");
if (pagin != 2) {
scr_printf(" ");
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);
}
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);
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);
}