45 if ((fin = fopen(fname,
"r")) != NULL)
54 memset(line, 0,
sizeof (line));
64 char *env = getenv(
"MBOXSPOOL");
67 if (access(env, R_OK | W_OK | X_OK) == 0)
72 snprintf(ofname,
sizeof(ofname),
"%s/mbox-tmp.XXXXXX", dir);
74 strlcpy(ofname,
"/tmp/mbox-tmp.XXXXXX",
sizeof (ofname));
78 if ((fd = mkstemp(ofname)) < 0)
86 (void) write(fd, line, strlen(line));
88 while ((q = fgets(line,
sizeof (line), fin)) != NULL)
91 if (nl > 1 && strncmp(line,
"From ", strlen(
"From ")) == 0)
94 (void) write(fd, line, strlen(line));
100 if (func(ofname, msgID, arg))
103 if (
remove(ofname) != 0)
119 #define LSTAT(a,b) lstat((a),(b)) 121 #define LSTAT(a,b) stat((a),(b)) 133 int msgID = 0,
nb = 0;
138 if ((dir = opendir(dirname)) != NULL)
140 while ((p = readdir(dir)) != NULL)
144 snprintf(fname,
sizeof (fname),
"%s/%s", dirname, p->d_name);
146 if (
LSTAT(fname, &st) == 0)
148 if (S_ISREG(st.st_mode))
151 if (func(fname, msgID, arg))
#define ZE_MessageInfo(level,...)
#define ZE_LogSysError(...)
#define ZE_LogMsgWarning(level,...)