projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Replace mh_xmalloc() with mh_xcalloc()
[mmh]
/
sbr
/
folder_read.c
diff --git
a/sbr/folder_read.c
b/sbr/folder_read.c
index
5195592
..
67775f1
100644
(file)
--- a/
sbr/folder_read.c
+++ b/
sbr/folder_read.c
@@
-6,8
+6,11
@@
** complete copyright information.
*/
** complete copyright information.
*/
+#include <unistd.h>
#include <h/mh.h>
#include <h/utils.h>
#include <h/mh.h>
#include <h/utils.h>
+#include <dirent.h>
+#include <sys/stat.h>
/* We allocate the `mi' array 1024 elements at a time */
#define NUMMSGS 1024
/* We allocate the `mi' array 1024 elements at a time */
#define NUMMSGS 1024
@@
-24,7
+27,7
@@
struct msgs *
folder_read(char *name)
{
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;
struct msgs *mp;
struct stat st;
struct dirent *dp;
@@
-38,11
+41,12
@@
folder_read(char *name)
if (stat(name, &st) == -1) {
free(name);
if (stat(name, &st) == -1) {
free(name);
+ closedir(dd);
return NULL;
}
/* Allocate the main structure for folder information */
return NULL;
}
/* 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;
clear_folder_flags(mp);
mp->foldpath = name;
@@
-56,14
+60,13
@@
folder_read(char *name)
if (access(name, W_OK) == -1)
set_readonly(mp);
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;
/*
** 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) {
while ((dp = readdir(dd))) {
if ((msgnum = m_atoi(dp->d_name)) && msgnum > 0) {
@@
-86,9
+89,9
@@
folder_read(char *name)
** lowest we've seen?
*/
if (msgnum < mp->lowmsg)
** lowest we've seen?
*/
if (msgnum < mp->lowmsg)
- mp->lowmsg = msgnum;
+ mp->lowmsg = msgnum;
if (msgnum > mp->hghmsg)
if (msgnum > mp->hghmsg)
- mp->hghmsg = msgnum;
+ mp->hghmsg = msgnum;
}
/*
}
/*
@@
-101,25
+104,10
@@
folder_read(char *name)
switch (dp->d_name[0]) {
case '.':
case ',':
switch (dp->d_name[0]) {
case '.':
case ',':
-#ifdef MHE
- case '+':
-#endif /* MHE */
continue;
default:
/*
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
*/
** indicate that there are other
** files in folder
*/
@@
-138,14
+126,14
@@
folder_read(char *name)
/* for testing, allocate minimal necessary space */
/* mp->hghoff = max(mp->hghmsg, 1); */
/* for testing, allocate minimal necessary space */
/* mp->hghoff = max(mp->hghmsg, 1); */
- /*
- ** Allocate space for status of each message.
- */
- mp->msgstats = mh_xmalloc(MSGSTATSIZE(mp, mp->lowoff, mp->hghoff));
+ /* Allocate space for status of each message. */
+
+ mp->msgstats = mh_xcalloc(MSGSTATSIZE(mp, mp->lowoff, mp->hghoff), 1);
/*
** Clear all the flag bits for all the message
** status entries we just allocated.
/*
** 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);
*/
for (msgnum = mp->lowoff; msgnum <= mp->hghoff; msgnum++)
clear_msg_flags(mp, msgnum);