/* start of structure definitions */

/* initial data */
struct mydata {
	char myaddr[50] ;
	char mypath[1024] ;
	} ;
	
/* linked list data definitions */
struct ll {
   char datafile[13] ; /* <name>.<ext>\0 where name is upto 8 chars and ext is 3 chars, total 11 plis the . and the \0 gives 13 */
   char to[100] ;
   char from[100] ;
   char subject[100] ;
   char cc[100] ;
   char bcc[100] ;
   int status ;
   int read ;
   int no ;
   int count ;
   struct mydata * mydata ;
   struct ll * next ;
   } ;

/* end of struct definitions */


/* start of defines */

#define TRUE 1
#define FALSE 0

/* list printing definitions */
#define PDATAFILE 0x1
#define PTO 0x2
#define PFROM 0x4
#define PSUBJECT 0x8
#define PCC 0x10
#define PBCC 0x20
#define PSTATUS 0x40
#define PREAD 0x80
#define PNO 0x100
#define PCOUNT 0x200
#define PACTIVE 0x400
#define PIGNORE 0x800
#define PDELETED 0x1000
/* general defines */
#define FILEERR -1
#define MEMERR -2
#define IERR -3

/* max line length */
#define MAXLINE 1024
/* ll status values */
#define ACTIVE 0
#define IGNORE -1
#define DELETED -2
/* ll new / read */
#define RD -1
#define NEW -2

#define OUTSKELETON "out%03d.msg"
#define INSKELETON "in%03d.msg"

/* locations of the meta files */
#define METAIN "in.mta"
#define METAOUT "out.mta"

/* debugging defines */
#define cmddbg FALSE 
#define lldbg FALSE 
#define mtadbg FALSE 
#define topdbg FALSE 
#define procdbg FALSE 
#define inpdbg FALSE 
#define filedbg TRUE 
#define ancdbg FALSE

/* end of defines */
/* commands to manipulate the linked list */
struct ll * llnew() ;
struct ll * llnofind() ;

/* End of function definitions */
