dockapps/wmbiff-0.4.27/wmbiff/LicqClient.c
Carlos R. Mafra 21625f40b5 Initial dockapps git repo
I tried to get the latest versions from dockapps.org, but I haven't
tested any of them.

More dockapps will be added as time permits.
2011-03-25 19:45:13 +01:00

90 lines
1.8 KiB
C

/* $Id: LicqClient.c,v 1.11 2002/06/21 04:31:31 bluehal Exp $ */
/* Author : Yong-iL Joh ( tolkien@mizi.com )
Modified: Jorge García ( Jorge.Garcia@uv.es )
*
* LICQ checker.
*
* Last Updated : $Date: 2002/06/21 04:31:31 $
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "Client.h"
#include <sys/stat.h>
#include <utime.h>
#include <errno.h>
#ifdef USE_DMALLOC
#include <dmalloc.h>
#endif
#define PCM (pc->u).mbox
int licqCheckHistory( /*@notnull@ */ Pop3 pc)
{
struct utimbuf ut;
DM(pc, DEBUG_INFO, ">Mailbox: '%s'\n", pc->path);
if (fileHasChanged(pc->path, &ut.actime, &PCM.mtime, &PCM.size) != 0
|| pc->OldMsgs < 0) {
FILE *F;
char buf[1024];
int count_status = 0;
F = openMailbox(pc, pc->path);
if (F == NULL)
return -1;
/* count message */
while (fgets(buf, BUF_SIZE, F)) {
if ((buf[0] == '[') || (buf[0] == '-')) { /* new, or old licq */
count_status++;
}
}
(void) fclose(F);
pc->TotalMsgs = count_status * 2;
pc->UnreadMsgs = pc->TotalMsgs - count_status;
DM(pc, DEBUG_INFO, "from: %d status: %d\n", pc->TotalMsgs,
pc->UnreadMsgs);
/* Not clear that resetting the mtime is useful, as
mutt is not involved. Unfortunately, I
(nspring/blueHal) can't tell whether this
cut-and-pasted code is needed */
ut.modtime = PCM.mtime;
utime(pc->path, &ut);
}
return 0;
}
int licqCreate( /*@notnull@ */ Pop3 pc, const char *str)
{
/* LICQ format: licq:fullpathname */
pc->TotalMsgs = 0;
pc->UnreadMsgs = 0;
pc->OldMsgs = -1;
pc->OldUnreadMsgs = -1;
pc->checkMail = licqCheckHistory;
strcpy(pc->path, str + 5); /* cut off ``licq:'' */
DM(pc, DEBUG_INFO, "licq: str = '%s'\n", str);
DM(pc, DEBUG_INFO, "licq: path= '%s'\n", pc->path);
return 0;
}
/* vim:set ts=4: */
/*
* Local Variables:
* tab-width: 4
* c-indent-level: 4
* c-basic-offset: 4
* End:
*/