home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / uip / msg / msg.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-05-11  |  6.6 KB  |  226 lines

  1. /*
  2.  *            M S G . H
  3.  *
  4.  * This file contains the declarations for all the global variables
  5.  * and defines for the MSG program.
  6.  *
  7.  *        R E V I S I O N   H I S T O R Y
  8.  *
  9.  *    06/09/82  MJM    Split the enormous MSG program into pieces.
  10.  *
  11.  *    06/10/82  MJM    Added additional flags bits
  12.  *
  13.  *    08/07/82  MJM    Allowed compile-time setting of NMSGS
  14.  *
  15.  *    09/13/82  MJM    Made msgp[] an array of pointers, to permit
  16.  *            undelete to insert messages.
  17.  *
  18.  *    12/04/82  HW    Added xtra options, .msgrc, fixed two signal bugs.
  19.  */
  20.  
  21. #define    ON        1
  22. #define    OFF        0
  23.  
  24. #define SETREAD        1        /* regular file read parsing */
  25. #define SETAPND        2        /* parse appended messages  */
  26. #define SETUNDIGEST    3        /* undigestify one message */
  27.  
  28. /* Selection of who to answer to */
  29. #define ANSFROM        01        /* just to senders */
  30. #define ANSCC        02        /*   from & cc names */
  31. #define ANSTO        04        /*   from & to names */
  32. #define ANSALL        07        /* copies to all recipients */
  33.  
  34. /* Flags to gethead() to omit a field */
  35. #define NODATE        (char *)0
  36. #define NOFROM        (char *)0
  37. #define NOSNDR        (char *)0
  38. #define NORPLY        (char *)0
  39. #define NOTO        (char *)0
  40. #define NOCC        (char *)0
  41. #define NOSUBJ        (char *)0
  42.  
  43. #define SIZEDATE    9
  44. #define SIZEFROM    30           /* ALSO change hdrfmt  */
  45. #define SIZESUBJ    40        /* */
  46. #define SIZETO        30
  47.  
  48. #define    M_BSIZE        512
  49.  
  50. #define SPSIGS        0400007
  51.  
  52. struct message {
  53.     long    start;            /* Offset into file */
  54.     long    len;            /* Length of message */
  55.     int    flags;            /* FLAGS word */
  56.     long    date;
  57.     char    datestr[SIZEDATE];
  58.     char    from[SIZEFROM];
  59.     char    to[SIZETO];
  60.     char    subject[SIZESUBJ];
  61. };
  62.  
  63. /* Flags values in msg[] struct */
  64. #define M_DELETED    0000001        /* Msg flagged for deletion */
  65. #define    M_PUT        0000002        /* Msg put to another file */
  66. #define M_NEW        0000004        /* Msg not seen yet */
  67. #define M_KEEP        0000010        /* Msg to be kept in this file */
  68. #define M_ANSWERED    0000020        /* Msg has been answered */
  69. #define M_FORWARDED    0000040        /* Msg has been forwarded */
  70.  
  71. #define M_RESTMAIL    0040000        /* Special for OverWrite only */
  72. #define M_PROCESS_IT    0100000        /* Msg flagged for processing */
  73.  
  74. #ifndef NOEXTERNS
  75. /* MMDF GLOBALS */
  76. extern int     sentprotect;    /* default mailbox protection */
  77. extern char    *mldflfil;    /* default mailbox file */
  78. extern char    *mldfldir;    /* directory containing mailbox file */
  79. extern char    *delim1;    /* string delimiting messages (start) */
  80. extern char    *delim2;    /* string delimiting messages (end) */
  81. /* End of MMDF GLOBALS */
  82.  
  83. extern struct message *msgp[];
  84. extern struct message *mptr;
  85.  
  86. extern int  errno;            /* sys-call error number */
  87.  
  88. extern int Nmsgs;        /* For Global use */
  89.  
  90. #define IDENTITY    0x6832        /* Magic Number; current value h2 */
  91. /* Status structure, also exists at the front of a binary index file. */
  92. struct status {
  93.     int        ms_ident;    /* "Magic Number" */
  94.     long        ms_time;    /* Last time file was processed */
  95.     unsigned    ms_nmsgs;    /* Number of messages processed */
  96.     unsigned    ms_curmsg;    /* "Current" message */
  97.     long        ms_eofpos;    /* Msg file eof position */
  98.     unsigned    ms_markno;    /* Marked message no */
  99.     int        ms_xxx1;    /* Place holder - not used */
  100.     int        ms_xxx2;    /* Place holder - not used */
  101.     long        ms_xxx3;    /* Place holder - not used */
  102. };
  103.  
  104. extern struct status status;
  105.  
  106. #define OLDIDENTITY    0x6831        /* Magic Number; previous value h1 */
  107. struct oldstatus {
  108.     int        ms_ident;    /* "Magic Number" */
  109.     long        ms_time;    /* Last time file was processed */
  110.     unsigned    ms_nmsgs;    /* Number of messages processed */
  111.     unsigned    ms_curmsg;    /* "Current" message */
  112.     long        ms_eofpos;    /* Msg file eof position */
  113. };
  114.  
  115. /* Stat buffers, used for comparing times */
  116. extern struct stat statb1;            /* Reference buffer */
  117. extern struct stat statb2;            /* Temporary buffer */
  118.  
  119. extern char    ch_erase;
  120.  
  121. extern int     nottty;
  122. extern unsigned int    msgno;        /* message currently being processed */
  123.  
  124. /* user search key for from/subject/text msg sequences */
  125. extern char    key[];
  126. extern char    *gc;
  127.  
  128. extern char    filename[];
  129. extern char    outfile[];
  130. extern char    defmbox[];
  131. extern char    oldfile[];
  132. extern char    *homedir;        /* Full path to home directory */
  133.  
  134. extern char maininbox[60];
  135. extern char binarybox[60];        /* Binary map file filename */
  136. extern char msgrcname[60];        /* User options filename */
  137. extern char defoutfile[60];
  138. extern char username[20];
  139. extern char ascending;
  140. extern char ismainbox;            /* current file is receiving .mail  */
  141. extern char nxtchar;
  142. extern char lstsep;            /* separate messages by formfeed   */
  143. extern char lstmore;            /* second, or more listed message  */
  144. extern char autoconfirm;        /* bypass asking user confirmation */
  145. extern char anstype;            /* what addresses to send answers to  */
  146. extern char binaryvalid;        /* TRUE if incore binary box is valid */
  147. extern sigtype (*orig) ();        /* DEL interrupt value on entry */
  148. extern int  verbose;
  149.  
  150. extern int  outfd;
  151.  
  152. extern int exclfd;        /* overwrit() exclusive use fd */
  153. extern jmp_buf savej;
  154.  
  155. extern unsigned int ansnum;
  156. extern unsigned int fwdnum;
  157.  
  158. extern FILE *filefp;            /* Input FILEp */
  159. extern FILE *outfp;            /* Output FILEp */
  160. extern FILE *binfp;            /* Binary map FILEp */
  161. extern FILE *fpmsgrc;            /* User options FILEp */
  162.  
  163. extern char    ttyobuf[];
  164. extern char    sndto[];
  165. extern char    sndcc[];
  166. extern char    sndsubj[M_BSIZE + 9];
  167.  
  168. extern char    lastc;
  169. extern int    istty;
  170. extern int    keystrip;
  171. extern int    mdots, bdots, bprint;
  172. extern int    paging;
  173. extern int    pagesize;
  174. extern int    quicknflag;
  175. extern int    quickexit;
  176. extern int    filoutflag;
  177. extern int    binsavflag;
  178. extern int    wmsgflag;
  179. extern int    doctrlel;
  180. extern int    prettylist;
  181. extern int    linelength;
  182. extern int    linecount;
  183. extern int    outmem;
  184. extern char    *ushell, *ueditor;
  185. extern int    readonly;
  186. extern char    *tempname;
  187. extern char    *binarypre;
  188. extern char    *savmsgfn;
  189. extern char    *sndname;        /* Name of mail sending program */
  190. extern char    *nullstr;        /* A null string */
  191.  
  192. extern char    twowinfil[];        /* filter for 2-window-answer mode */
  193. extern char    draft_work[];        /* Work file for 2-window answer */
  194. extern char    draft_original[];  /* Original message(s) for 2-window ans */
  195. extern char    draftorig[];        /* Message saving file */
  196.  
  197. #define    MAXKEYS        41
  198. extern char    *keywds[];
  199. #define    SP_BODY        0    /* Reading msg body */
  200. #define    SP_HNOSP    1    /* Line was NOT stripped */
  201. #define SP_HSP        2    /* Line was stripped */
  202.  
  203. #define DOIT        0    /* Argument to cpyiter() */
  204. #define NOIT        1    /* Argument to cpyiter() */
  205. #define DOLF        0
  206. #define NOLF        1
  207.  
  208. extern char *compress ();
  209. extern char *strdup ();
  210. extern char *malloc();
  211. extern char *index(), *strend(), *rindex();
  212.  
  213. extern prmsg(), delmsg(), undelmsg(), prhdr(), movmsg(), onint(), onnopipe();
  214. extern putmsg(), writmsg(), gomsg(), lstmsg(), keepmsg(), lstbdy(), writbdy();
  215. extern onstop(), hdrfile(), dolstmsg();
  216.  
  217. extern ansmsg(), fwdmsg(), fwdpost(), resendmsg(), ansend();
  218. extern undigestify();
  219. extern xomsgrc();
  220. extern char *getenv();
  221. extern char *xfgets();
  222. extern long smtpdate();
  223. extern qcomp();
  224.  
  225. #endif NOEXTERNS
  226.