
#define AREAS 200	/* maximum message areas stored in memory */

struct _area {				/* list of message areas */
	char name[32];			/* area name */
	char path[64];			/* pathname */
};

/* Standard node structure used throughout Fido. This is buried within all
the other major structures. */

struct _node {
	int zone;		/* zone number */
	int net;		/* net number */
	int number;		/* node number */
	int point;		/* point number */
};

/* Message header structure. */

/* PUBLIC */
struct _msg {
	char from[36];		/* who from, */
	char to[36];		/* who to, */
	char subj[72];		/* message subject, */
	char date[20];		/* creation date, */
	int times;		/* number of times read, */
	int dest_node;		/* destination node, */
	int orig_node;		/* originating node */
	int cost;		/* actual cost of this msg */
	int orig_net;		/* v10 originating net */
	int dest_net;		/* v10 destination net */
	int reserved[4];	/* */
	unsigned reply;		/* thread to previous msg. (reply-to) */
	unsigned attr;		/* message type, see below */
	unsigned up;		/* thread to next msg. (replied-to) */

/* NOTE: The date[20] field is another historical embarrasment. The
format is, exactly:

	"dd Mon yy  hh:mm:ss"

where dd, yy, hh, mm, and ss are two digit numbers, zero filled where
necessary, and Mon is the first three letters of the month, in English,
lower case with the first letter upper case. There are TWO SPACES between
yy and hh.

This format is very important (this is the embarrasing part) because
Fido since v3 has done arithmetic on the string itself. Please preserve this
EXACT FORMAT if you wish things like RENUM and PURGE to work correctly. 
*/
};

/* Message attribute bits */

/* PUBLIC */
#define MSGPRIVATE 1		/* private message, */
#define MSGCRASH 2		/* NOT USED */
#define MSGREAD 4		/* read by addressee */
#define MSGSENT 8		/* sent OK (remote) */
#define MSGFILE 16		/* file(s) attached to msg */
#define MSGFWD 32		/* message in transit */
#define MSGORPHAN 64		/* unknown dest node this sched */
#define MSGKILL 128		/* kill after mailing */
#define MSGLOCAL 256		/* was generated locally */
#define MSGHFP 512		/* Hold For Pickup NOT USED */
#define MSGUNUSED 1024		/* NOT USED */
#define MSGFREQ 2048		/* file(s) requested */
#define MSGRRR 4096		/* Return Receipt Requested NOT USED */
#define MSGIRR 8192		/* Is Return Receipt NOT USED */
#define MSGAR 16384		/* Audit Request NOT USED */
#define MSGFUR 32768		/* File Update Request NOT USED */

/* Bits allowed in packets and after unpacking, ie. this mask is used to
strip off message attribute bits. */

#define MSGMASK (MSGPRIVATE | MSGCRASH | MSGFILE | MSGUNUSED | MSGRRR | MSGIRR | MSGAR)
