X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/5231493ca1103d6a26feb0e09d22936a3f69be3b..07916b2ff:/uip/new.c?ds=sidebyside diff --git a/uip/new.c b/uip/new.c index dd173cc0..080f065f 100644 --- a/uip/new.c +++ b/uip/new.c @@ -1,6 +1,4 @@ - -/* - * new.c -- as new, list all folders with unseen messages +/* new.c -- as new, list all folders with unseen messages * -- as fnext, move to next folder with unseen messages * -- as fprev, move to previous folder with unseen messages * -- as unseen, scan all unseen messages @@ -16,6 +14,8 @@ #include #include #include +#include "../sbr/lock_file.h" +#include "../sbr/m_maildir.h" #define NEW_SWITCHES \ X("mode", 1, MODESW) \ @@ -98,11 +98,11 @@ get_msgnums(char *folder, char *sequences[]) char *seqfile = NULL; FILE *fp; int state; - char name[NAMESZ], field[BUFSIZ]; + char name[NAMESZ], field[NMH_BUFSIZ]; char *cp; char *msgnums = NULL, *this_msgnums, *old_msgnums; int failed_to_lock = 0; - m_getfld_state_t gstate = 0; + m_getfld_state_t gstate; /* copied from seq_read.c:seq_public */ /* @@ -120,26 +120,24 @@ get_msgnums(char *folder, char *sequences[]) return NULL; if ((fp = lkfopendata (seqfile, "r", & failed_to_lock)) == NULL) { - - if (failed_to_lock) { + if (failed_to_lock) adios (seqfile, "failed to lock"); - } else { - free(seqfile); - return NULL; - } + free(seqfile); + return NULL; } - /* Use m_getfld to scan sequence file */ + /* Use m_getfld2 to scan sequence file */ + gstate = m_getfld_state_init(fp); for (;;) { int fieldsz = sizeof field; - switch (state = m_getfld (&gstate, name, field, &fieldsz, fp)) { + switch (state = m_getfld2(&gstate, name, field, &fieldsz)) { case FLD: case FLDPLUS: if (state == FLDPLUS) { cp = getcpy (field); while (state == FLDPLUS) { fieldsz = sizeof field; - state = m_getfld (&gstate, name, field, &fieldsz, fp); + state = m_getfld2(&gstate, name, field, &fieldsz); cp = add (field, cp); } @@ -178,7 +176,7 @@ get_msgnums(char *folder, char *sequences[]) case BODY: adios (NULL, "no blank lines are permitted in %s", seqfile); - /* fall */ + break; case FILEEOF: break; @@ -342,14 +340,15 @@ doit(char *cur, char *folders, char *sequences[]) if (first == NULL) { /* No folders at all... */ return NULL; - } else if (first->n_next == NULL) { + } + if (first->n_next == NULL) { /* We have only one node; any desired messages in it? */ if (first->n_field == NULL) { return NULL; - } else { - return first; } - } else if (cur_node == NULL) { + return first; + } + if (cur_node == NULL) { /* Current folder is not listed in .folders, return first. */ return first; } @@ -390,7 +389,7 @@ doit(char *cur, char *folders, char *sequences[]) if (strcmp(node->n_name, cur) == 0) { puts(" (*: current folder)"); } else { - puts(""); + putchar('\n'); } fflush(stdout);