*
*/
+#ifdef DLL_EXPORT
+#define IN_LIBCIT
+#endif
+
#include "sysdep.h"
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
-#include <time.h>
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+
#include <ctype.h>
#include <string.h>
#include <syslog.h>
#include <sys/stat.h>
#include "citadel.h"
#include "server.h"
+#include "dynloader.h"
#include "database.h"
#include "msgbase.h"
#include "support.h"
#include "user_ops.h"
#include "file_ops.h"
#include "control.h"
-#include "dynloader.h"
#include "tools.h"
#include "mime_parser.h"
#include "html.h"
struct SuppMsgInfo smi;
struct CtdlMessage *msg;
int is_seen;
+ long lastold = 0L;
+ int printed_lastold = 0;
/* Learn about the user and room in question */
get_mm();
for (a = 0; a < num_msgs; ++a) {
thismsg = msglist[a];
is_seen = is_msg_in_mset(vbuf.v_seen, thismsg);
- if ((thismsg > 0)
+ if (is_seen) lastold = thismsg;
+ if ((thismsg > 0L)
&& (
(mode == MSGS_ALL)
|| ((mode == MSGS_OLD) && (is_seen))
|| ((mode == MSGS_NEW) && (!is_seen))
- /* FIXME handle lastold mode */
|| ((mode == MSGS_LAST) && (a >= (num_msgs - ref)))
|| ((mode == MSGS_FIRST) && (a < ref))
|| ((mode == MSGS_GT) && (thismsg > ref))
|| ((mode == MSGS_EQ) && (thismsg == ref))
)
) {
+ if ((mode == MSGS_NEW) && (CC->usersupp.flags & US_LASTOLD) && (lastold > 0L) && (printed_lastold == 0) && (!is_seen)) {
+ if (CallBack)
+ CallBack(lastold, userdata);
+ printed_lastold = 1;
+ ++num_processed;
+ }
if (CallBack) CallBack(thismsg, userdata);
++num_processed;
}
char *ptr;
char *wptr;
size_t wlen;
- CIT_UBYTE ch;
+ CIT_UBYTE ch = 0;
if (!strcasecmp(cbtype, "multipart/alternative")) {
strcpy(ma->prefix, partnum);
wptr = content;
while (wlen--) {
ch = *wptr++;
+ /**********
if (ch==10) cprintf("\r\n");
else cprintf("%c", ch);
+ **********/
+ cprintf("%c", ch);
}
+ if (ch != '\n') cprintf("\n");
}
else if (!strcasecmp(cbtype, "text/html")) {
ptr = html_to_ascii(content, 80, 0);
ret->len = ret->len +
strlen(msg->cm_fields[(int)forder[i]]) + 2;
- lprintf(9, "calling malloc(%d)\n", ret->len);
+ lprintf(9, "serialize_message() calling malloc(%d)\n", ret->len);
ret->ser = mallok(ret->len);
if (ret->ser == NULL) {
ret->len = 0;
getroom(&CC->quickroom, hold_rm);
- lprintf(9, "eggstracting...\n");
if (conf != NULL) do {
extract_token(buf, conf, 0, '\n');
- lprintf(9, "eggstracted <%s>\n", buf);
strcpy(conf, &conf[strlen(buf)+1]);
} while ( (strlen(conf)>0) && (strlen(buf)>0) );