/* ENT0 */
-int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, const struct ctdlipcmessage *mr, char *cret)
+int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, int *subject_required, const struct ctdlipcmessage *mr, char *cret)
{
register int ret;
char cmd[SIZ];
mr->anonymous, mr->type, mr->subject, mr->author);
ret = CtdlIPCGenericCommand(ipc, cmd, mr->text, strlen(mr->text), NULL,
NULL, cret);
+ if ((flag == 0) && (subject_required != NULL)) {
+ /* Is the server strongly recommending that the user enter a message subject? */
+ if ((cret[3] != '\0') && (cret[4] != '\0')) {
+ *subject_required = extract_int(&cret[4], 1);
+ }
+
+
+ }
return ret;
}
char *cret);
int CtdlIPCGetRoomAide(CtdlIPC *ipc, char *cret);
int CtdlIPCSetRoomAide(CtdlIPC *ipc, const char *username, char *cret);
-int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, const struct ctdlipcmessage *mr,
- char *cret);
+int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, int *subject_required,
+ const struct ctdlipcmessage *mr,
+ char *cret);
int CtdlIPCRoomInfo(CtdlIPC *ipc, char **iret, char *cret);
int CtdlIPCDeleteMessage(CtdlIPC *ipc, long msgnum, char *cret);
int CtdlIPCMoveMessage(CtdlIPC *ipc, int copy, long msgnum,
struct ctdlipcmessage message;
unsigned long *msgarr = NULL;
int r; /* IPC response code */
+ int subject_required = 0;
if (c > 0)
mode = 1;
newprompt("Display name for this message: ", message.author, 40);
}
- r = CtdlIPCPostMessage(ipc, 0, &message, buf);
+ r = CtdlIPCPostMessage(ipc, 0, &subject_required, &message, buf);
if (r / 100 != 2 && r / 10 != 57) {
scr_printf("%s\n", buf);
/* If it's mail, we've got to check the validity of the recipient... */
if (strlen(message.recipient) > 0) {
- r = CtdlIPCPostMessage(ipc, 0, &message, buf);
+ r = CtdlIPCPostMessage(ipc, 0, &subject_required, &message, buf);
if (r / 100 != 2) {
scr_printf("%s\n", buf);
return (1);
break_big_lines(message.text);
/* Transmit message to the server */
- r = CtdlIPCPostMessage(ipc, 1, &message, buf);
+ r = CtdlIPCPostMessage(ipc, 1, NULL, &message, buf);
if (r / 100 != 4) {
scr_printf("%s\n", buf);
return (1);
int argc_;
char** argv_;
long tmin = LONG_MAX, trun = 0, tmax = LONG_MIN;
+ int subject_required;
args = (void*)data;
argc_ = (int)args[0];
}
/* Post the message */
- r = CtdlIPCPostMessage(ipc, 1, &msg, aaa);
+ r = CtdlIPCPostMessage(ipc, 1, NULL, &msg, aaa);
if (r / 100 != 4) {
fprintf(stderr, "Citadel refused message entry: %s\n", aaa);
pthread_mutex_lock(&count_mutex);