X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Ffolder_read.c;h=e4c1b7f71642641158a99d2ee1c8846a85d4476c;hb=dfecfa4b4b77983ddf8253b1b8effaf5c1a0ce80;hp=222b490f27198ed09dbf248688fb28b621e0e858;hpb=714b5c530ece27ea2835a313013f5b770163403c;p=mmh diff --git a/sbr/folder_read.c b/sbr/folder_read.c index 222b490..e4c1b7f 100644 --- a/sbr/folder_read.c +++ b/sbr/folder_read.c @@ -30,7 +30,7 @@ folder_read(char *name) struct dirent *dp; DIR *dd; - name = m_mailpath(name); + name = getcpy(toabsdir(name)); if (!(dd = opendir(name))) { free(name); return NULL; @@ -38,6 +38,7 @@ folder_read(char *name) if (stat(name, &st) == -1) { free(name); + closedir(dd); return NULL; } @@ -99,31 +100,32 @@ folder_read(char *name) } else { switch (dp->d_name[0]) { - case '.': - case ',': + case '.': + case ',': #ifdef MHE - case '+': + case '+': #endif /* MHE */ + continue; + + default: + /* + ** skip any files beginning with + ** backup prefix + */ + if (strncmp(dp->d_name, backup_prefix, + prefix_len)==0) continue; - default: - /* - ** skip any files beginning with - ** backup prefix - */ - if (!strncmp(dp->d_name, backup_prefix, prefix_len)) - continue; - - /* skip the altmsg link file */ - if (!strcmp(dp->d_name, altmsglink)) - continue; - - /* - ** indicate that there are other - ** files in folder - */ - set_other_files(mp); + /* skip the altmsg link file */ + if (strcmp(dp->d_name, altmsglink)==0) continue; + + /* + ** indicate that there are other + ** files in folder + */ + set_other_files(mp); + continue; } } } @@ -137,14 +139,14 @@ folder_read(char *name) /* for testing, allocate minimal necessary space */ /* mp->hghoff = max(mp->hghmsg, 1); */ - /* - ** Allocate space for status of each message. - */ + /* Allocate space for status of each message. */ + mp->msgstats = mh_xmalloc(MSGSTATSIZE(mp, mp->lowoff, mp->hghoff)); /* ** Clear all the flag bits for all the message ** status entries we just allocated. + ** TODO: use memset() ? */ for (msgnum = mp->lowoff; msgnum <= mp->hghoff; msgnum++) clear_msg_flags(mp, msgnum);