I guess mode_t, uid_t or gid_t are undefined in mailbox.h. Try adding
#include <sys/types.h>
To the top of mailbox.h and see if it solves your problem.
that was it. i knew you could easily find it while i have needed to spend more than minutes to figure it out.
#i am curious how other environments work without adding sys/types.h.
but actually that was not only it to complete my mission. i ended up modifying two more files as the following patches.
the first patch was needed to solve types such as mode_t or uid_t.
the second one was needed otherwise Mail::getLastError() couldn't be found by linker. it's kinda strange because the method is defined as inline, right? anyway, it was needed and i don't know other way to solve the problem.
the last one was actually not always needed but it can suppress some warning messages by compiler.
#imho, this is practically better while the type should always match the #one of list.
hope this would help.
-- Hiroshima
--- src/mailbox.h.orig Sun Jul 27 04:56:51 2003 +++ src//mailbox.h Fri Aug 15 02:23:05 2003 @@ -46,6 +46,7 @@ #include <time.h> #include <stdio.h> #include <string.h> +#include <sys/types.h>
#include "imapparser.h"
--- src/Makefile.in.orig Thu Aug 14 11:53:20 2003 +++ src/Makefile.in Fri Aug 15 02:26:13 2003 @@ -164,6 +164,7 @@ authenticate.$(OBJEXT) base64.$(OBJEXT) bincimap-up.$(OBJEXT) \ broker.$(OBJEXT) convert.$(OBJEXT) depot.$(OBJEXT) \ greeting.$(OBJEXT) imapparser.$(OBJEXT) io.$(OBJEXT) \ + mailbox.$(OBJEXT) \ io-ssl.$(OBJEXT) operator-authenticate.$(OBJEXT) \ operator-capability.$(OBJEXT) operator-noop.$(OBJEXT) \ operator-login.$(OBJEXT) operator-logout.$(OBJEXT) \
--- src/arg-error.h.orig Thu Aug 14 10:24:14 2003 +++ src/arg-error.h Fri Aug 15 02:24:14 2003 @@ -66,13 +66,14 @@ const std::string reason(void) const { switch (type) { - case NONE: return "unknown reason"; case CHECK: case REQUIRED_COMMAND: return "required command"; case REQUIRED_ARGUMENT: return "required argument"; case UNKNOWN: return "unknown reason"; case MISSING: return "missing argument"; case INVALID: return "invalid argument"; + case NONE: + default: return "unknown reason"; } }

