#include <pwd.h>
#include <errno.h>
#include <sys/types.h>
-#include <sys/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 <sys/wait.h>
#include <ctype.h>
#include <string.h>
#include <limits.h>
#include "citadel.h"
#include "server.h"
-#include <time.h>
#include "sysdep_decls.h"
#include "citserver.h"
#include "support.h"
void imap_fetch_flags(int seq) {
cprintf("FLAGS (");
if (IMAP->flags[seq] & IMAP_DELETED) cprintf("\\Deleted ");
+ if (IMAP->flags[seq] & IMAP_SEEN) cprintf("\\Seen ");
cprintf(")");
}
}
/*
- * Be obnoxious and send the entire header, even if the client only
- * asks for certain fields. FIXME this shortcut later.
+ * If the client asked for just headers, or just particular header
+ * fields, strip it down.
*/
else if (!strncasecmp(section, "HEADER", 6)) {
CtdlRedirectOutput(tmp, -1);
fclose(tmp);
- if (is_peek) {
- /* FIXME set the last read pointer or something */
+ /* Mark this message as "seen" *unless* this is a "peek" operation */
+ if (is_peek == 0) {
+ CtdlSetSeen(msgnum, 1);
}
}