return;
}
- cprintf("%ld|%s|%ld\n",
+ cprintf("%ld|%s|%s\n",
msgnum,
(msg->cm_fields['E'] ? msg->cm_fields['E'] : ""),
- msg->cm_fields['T']);
+ (msg->cm_fields['T'] ? msg->cm_fields['T'] : "0"));
CtdlFreeMessage(msg);
}
* Retrieve the "seen" message list for the current room.
*/
void CtdlGetSeen(char *buf, int which_set) {
- struct visit vbuf;
+ visit vbuf;
/* Learn about the user and room in question */
CtdlGetRelationship(&vbuf, &CC->user, &CC->room);
int was_seen = 0;
long lo = (-1L);
long hi = (-1L);
- struct visit vbuf;
+ visit vbuf;
long *msglist;
int num_msgs = 0;
StrBuf *vset;
{
int a, i, j;
- struct visit vbuf;
+ visit vbuf;
struct cdbdata *cdbfr;
long *msglist = NULL;
int num_msgs = 0;
const char *nl /* string to terminate lines with */
) {
int column = 0;
- char ch = 0;
+ unsigned char ch = 0;
char outbuf[1024];
int len = 0;
int nllen = 0;
if (!mptr) return;
nllen = strlen(nl);
- while (ch=*(mptr++), ch > 0) {
+ while (ch=*(mptr++), ch != 0) {
if (ch == '\n') {
client_write(outbuf, len);
}
}
}
+ else if (i == 'K') {
+ cprintf("Reply-To: <%s>%s", mptr, nl);
+ }
if (mptr != mpptr)
free (mptr);
}
char dest_node[256];
char buf[1024];
struct CtdlMessage *msg;
+ StrBuf *FakeAuthor;
+ StrBuf *FakeEncAuthor = NULL;
msg = malloc(sizeof(struct CtdlMessage));
memset(msg, 0, sizeof(struct CtdlMessage));
msg->cm_fields['T'] = strdup(buf);
if ((fake_name != NULL) && (fake_name[0])) { /* author */
- msg->cm_fields['A'] = strdup(fake_name);
+ FakeAuthor = NewStrBufPlain (fake_name, -1);
}
else {
- msg->cm_fields['A'] = strdup(author->fullname);
+ FakeAuthor = NewStrBufPlain (author->fullname, -1);
}
+ StrBufRFC2047encode(&FakeEncAuthor, FakeAuthor);
+ msg->cm_fields['A'] = SmashStrBuf(&FakeEncAuthor);
+ FreeStrBuf(&FakeAuthor);
if (CC->room.QRflags & QR_MAILBOX) { /* room */
msg->cm_fields['O'] = strdup(&CC->room.QRname[11]);