void finger_mail(USER_DATA *usr, char *name) { MAIL_DATA *pMail; MAIL_DATA *fMailFirst; MAIL_DATA *fMailLast; USER_DATA *to; char buf[INPUT]; FILE *fpMail; int count = 0; int new_count = 0; if (!(to = get_user(name))) { if (!is_user(name)) { bbs_bug("Finger_mail: No such user %s", name); send_to_user("ERROR: No such user.\n\r", usr); return; } fMailFirst = NULL; fMailLast = NULL; sprintf(buf, "%s%s", MAIL_DIR, capitalize(name)); if (!(fpMail = fopen(buf, "r"))) { bbs_bug("Finger_mail: Could not open to read %s", buf); /* send_to_user("ERROR: Could not open mail file.\n\r", usr); BAXTER */ send_to_user("Mail: No new messages.\n\r\n\r", usr); return; } while ((pMail = read_mail(fpMail)) != NULL) LINK(pMail, fMailFirst, fMailLast); for (pMail = fMailFirst; pMail; pMail = pMail->next) { if (pMail) { if (pMail->stamp_time > pMail->read_time) new_count++; count++; } } if (new_count > 0) sprintf(buf, "Mail: %d new message%s.\n\r\n\r", new_count, new_count > 1 ? "s" : ""); else sprintf(buf, "Mail: No new messages.\n\r\n\r"); send_to_user(buf, usr); return; } if (unread_mail(to) > 0) sprintf(buf, "Mail: %d new message%s.\n\r\n\r", unread_mail(to), unread_mail(to) > 1 ? "s" : ""); else sprintf(buf, "Mail: No new messages.\n\r\n\r"); send_to_user(buf, usr); return; }
/* load_ml: load maillist, assumes init_ml done */ static void load_ml(void) { FILE *in; imc_mail *p; char name[200]; imc_sncpy(name, imc_prefix, 190); strcat(name, "mail-list"); in=fopen(name, "r"); if (!in) return; p=read_mail(in); while (p) { add_ml(p); p=read_mail(in); } fclose(in); }
void load_mail(USER_DATA *usr) { MAIL_DATA *pMail; char buf[INPUT]; FILE *fpMail; usr->pMailFirst = NULL; usr->pMailLast = NULL; sprintf(buf, "%s%s", MAIL_DIR, capitalize(usr->name)); if (!(fpMail = fopen(buf, "r"))) { bbs_bug("Load_mail: Could not open to read %s", buf); return; } while ((pMail = read_mail(fpMail)) != NULL) LINK(pMail, usr->pMailFirst, usr->pMailLast); return; }