X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Ffolder_read.c;h=67775f1bc2e0d31a02fb407a57cd5405dcf0eace;hp=e4c1b7f71642641158a99d2ee1c8846a85d4476c;hb=10eff860a28b96582526eb739fd0a55441669938;hpb=dfecfa4b4b77983ddf8253b1b8effaf5c1a0ce80 diff --git a/sbr/folder_read.c b/sbr/folder_read.c index e4c1b7f..67775f1 100644 --- a/sbr/folder_read.c +++ b/sbr/folder_read.c @@ -6,8 +6,11 @@ ** complete copyright information. */ +#include #include #include +#include +#include /* We allocate the `mi' array 1024 elements at a time */ #define NUMMSGS 1024 @@ -24,7 +27,7 @@ struct msgs * folder_read(char *name) { - int msgnum, prefix_len, len, *mi; + int msgnum, len, *mi; struct msgs *mp; struct stat st; struct dirent *dp; @@ -43,7 +46,7 @@ folder_read(char *name) } /* Allocate the main structure for folder information */ - mp = (struct msgs *) mh_xmalloc((size_t) sizeof(*mp)); + mp = (struct msgs *) mh_xcalloc(1, (size_t) sizeof(*mp)); clear_folder_flags(mp); mp->foldpath = name; @@ -57,14 +60,13 @@ folder_read(char *name) if (access(name, W_OK) == -1) set_readonly(mp); - prefix_len = strlen(backup_prefix); /* ** Allocate a temporary place to record the ** name of the messages in this folder. */ len = NUMMSGS; - mi = (int *) mh_xmalloc((size_t) (len * sizeof(*mi))); + mi = (int *) mh_xcalloc((size_t) len, sizeof(*mi)); while ((dp = readdir(dd))) { if ((msgnum = m_atoi(dp->d_name)) && msgnum > 0) { @@ -87,9 +89,9 @@ folder_read(char *name) ** lowest we've seen? */ if (msgnum < mp->lowmsg) - mp->lowmsg = msgnum; + mp->lowmsg = msgnum; if (msgnum > mp->hghmsg) - mp->hghmsg = msgnum; + mp->hghmsg = msgnum; } /* @@ -102,25 +104,10 @@ folder_read(char *name) switch (dp->d_name[0]) { case '.': case ',': -#ifdef MHE - case '+': -#endif /* MHE */ continue; default: /* - ** skip any files beginning with - ** backup prefix - */ - if (strncmp(dp->d_name, backup_prefix, - prefix_len)==0) - continue; - - /* skip the altmsg link file */ - if (strcmp(dp->d_name, altmsglink)==0) - continue; - - /* ** indicate that there are other ** files in folder */ @@ -141,7 +128,7 @@ folder_read(char *name) /* Allocate space for status of each message. */ - mp->msgstats = mh_xmalloc(MSGSTATSIZE(mp, mp->lowoff, mp->hghoff)); + mp->msgstats = mh_xcalloc(MSGSTATSIZE(mp, mp->lowoff, mp->hghoff), 1); /* ** Clear all the flag bits for all the message