Remove the rcvstoreproc/rcvpackproc vars.
[mmh] / h / mh.h
diff --git a/h/mh.h b/h/mh.h
index 35c8b41..dd049d3 100644 (file)
--- a/h/mh.h
+++ b/h/mh.h
@@ -1,12 +1,12 @@
 /*
- * mh.h -- main header file for all of nmh
- */
+** mh.h -- main header file for all of nmh
+*/
 
 #include <h/nmh.h>
 
 /*
- * Well-used constants
- */
+** Well-used constants
+*/
 #define NOTOK       (-1)    /* syscall()s return this on error */
 #define OK             0    /*  ditto on success               */
 #define DONE           1    /* trinary logic                   */
@@ -27,8 +27,8 @@
 typedef unsigned char  boolean;  /* not int so we can pack in a structure */
 
 /* If we're using gcc then give it some information about
- * functions that abort.
- */
+** functions that abort.
+*/
 #if __GNUC__ > 2
 # define NORETURN __attribute__((__noreturn__))
 #else
@@ -36,8 +36,8 @@ typedef unsigned char  boolean;  /* not int so we can pack in a structure */
 #endif
 
 /*
- * user context/profile structure
- */
+** user context/profile structure
+*/
 struct node {
        char *n_name;         /* key                  */
        char *n_field;        /* value                */
@@ -46,69 +46,64 @@ struct node {
 };
 
 /*
- * switches structure
- */
+** switches structure
+*/
 #define AMBIGSW  (-2)    /* from smatch() on ambiguous switch */
 #define UNKWNSW  (-1)    /* from smatch() on unknown switch   */
 
 struct swit {
        char *sw;
        /*
-        * The minchars field is apparently used like this:
-        *
-        * -# : Switch can be abbreviated to # chars; switch hidden in -help.
-        * 0  : Switch can't be abbreviated;          switch shown in -help.
-        * #  : Switch can be abbreviated to # chars; switch shown in -help.
-        */
+       ** The minchars field is apparently used like this:
+       **
+       ** -# : Switch can be abbreviated to # chars; switch hidden in -help.
+       ** 0  : Switch can't be abbreviated;          switch shown in -help.
+       ** #  : Switch can be abbreviated to # chars; switch shown in -help.
+       */
        int minchars;
 };
 
 extern struct swit anoyes[];   /* standard yes/no switches */
 
-#define ATTACHFORMATS 3        /* Number of send attach formats. */
-
 /*
- * general folder attributes
- */
-#define READONLY   (1<<0)    /* No write access to folder    */
-#define SEQMOD     (1<<1)    /* folder's sequences modifed   */
-#define ALLOW_NEW  (1<<2)    /* allow the "new" sequence     */
-#define OTHERS     (1<<3)    /* folder has other files       */
+** general folder attributes
+*/
+#define READONLY      (1<<0)    /* No write access to folder    */
+#define SEQMOD        (1<<1)    /* folder's sequences modifed   */
+#define ALLOW_BEYOND  (1<<2)    /* allow the beyond sequence    */
+#define OTHERS        (1<<3)    /* folder has other files       */
 
-#define FBITS  "\020\01READONLY\02SEQMOD\03ALLOW_NEW\04OTHERS"
+#define FBITS  "\020\01READONLY\02SEQMOD\03ALLOW_BEYOND\04OTHERS"
 
 /*
- * type for holding the sequence set of a message
- */
+** type for holding the sequence set of a message
+*/
 typedef unsigned int seqset_t;
 
 /*
- * Determine the number of user defined sequences we
- * can have.  The first 5 sequence flags are for
- * internal nmh message flags.
- */
-#define NUMATTRS  ((sizeof(seqset_t) * Nbby) - 5)
+** internal messages attributes (sequences)
+*/
+#define EXISTS        (1<<0)    /* exists            */
+#define SELECTED      (1<<1)    /* selected for use  */
+#define SELECT_UNSEEN (1<<2)    /* inc/show "unseen" */
 
-/*
- * first free slot for user defined sequences
- * and attributes
- */
-#define FFATTRSLOT  5
+#define MBITS "\020\01EXISTS\02SELECTED\03UNSEEN"
 
 /*
- * internal messages attributes (sequences)
- */
-#define EXISTS        (1<<0)    /* exists            */
-#define DELETED       (1<<1)    /* deleted           */
-#define SELECTED      (1<<2)    /* selected for use  */
-#define SELECT_EMPTY  (1<<3)    /* "new" message     */
-#define SELECT_UNSEEN (1<<4)    /* inc/show "unseen" */
+** first free slot for user-defined sequences
+*/
+#define FFATTRSLOT  3
 
-#define MBITS "\020\01EXISTS\02DELETED\03SELECTED\04NEW\05UNSEEN"
+/*
+** Determine the number of user defined sequences we
+** can have.  The first few sequence flags are for
+** internal nmh message flags.
+*/
+#define NUMATTRS  ((sizeof(seqset_t) * Nbby) - FFATTRSLOT)
 
 /*
- * Primary structure of folder/message information
- */
+** Primary structure of folder/message information
+*/
 struct msgs {
        int lowmsg;        /* Lowest msg number                 */
        int hghmsg;        /* Highest msg number                */
@@ -124,44 +119,44 @@ struct msgs {
        char *foldpath;    /* Pathname of folder                */
 
        /*
-        * Name of sequences in this folder.  We add an
-        * extra slot, so we can NULL terminate the list.
-        */
+       ** Name of sequences in this folder.  We add an
+       ** extra slot, so we can NULL terminate the list.
+       */
        char *msgattrs[NUMATTRS + 1];
 
        /*
-        * bit flags for whether sequence
-        * is public (0), or private (1)
-        */
+       ** bit flags for whether sequence
+       ** is public (0), or private (1)
+       */
        seqset_t attrstats;
 
        /*
-        * These represent the lowest and highest possible
-        * message numbers we can put in the message status
-        * area, without calling folder_realloc().
-        */
+       ** These represent the lowest and highest possible
+       ** message numbers we can put in the message status
+       ** area, without calling folder_realloc().
+       */
        int    lowoff;
        int    hghoff;
 
        /*
-        * This is an array of seqset_t which we allocate dynamically.
-        * Each seqset_t is a set of bits flags for a particular message.
-        * These bit flags represent general attributes such as
-        * EXISTS, SELECTED, etc. as well as track if message is
-        * in a particular sequence.
-        */
+       ** This is an array of seqset_t which we allocate dynamically.
+       ** Each seqset_t is a set of bits flags for a particular message.
+       ** These bit flags represent general attributes such as
+       ** EXISTS, SELECTED, etc. as well as track if message is
+       ** in a particular sequence.
+       */
        seqset_t *msgstats;        /* msg status */
 };
 
 /*
- * Amount of space to allocate for msgstats.  Allocate
- * the array to have space for messages numbers lo to hi.
- */
+** Amount of space to allocate for msgstats.  Allocate
+** the array to have space for messages numbers lo to hi.
+*/
 #define MSGSTATSIZE(mp,lo,hi) ((size_t) (((hi) - (lo) + 1) * sizeof(*(mp)->msgstats)))
 
 /*
- * macros for message and sequence manipulation
- */
+** macros for message and sequence manipulation
+*/
 #define clear_msg_flags(mp,msgnum) ((mp)->msgstats[(msgnum) - mp->lowoff] = 0)
 #define copy_msg_flags(mp,i,j) \
     ((mp)->msgstats[(i) - mp->lowoff] = (mp)->msgstats[(j) - mp->lowoff])
@@ -176,10 +171,6 @@ struct msgs {
 #define unset_selected(mp,msgnum)  ((mp)->msgstats[(msgnum) - mp->lowoff] &= ~SELECTED)
 #define set_selected(mp,msgnum)  ((mp)->msgstats[(msgnum) - mp->lowoff] |= SELECTED)
 
-#define is_select_empty(mp,msgnum)  ((mp)->msgstats[(msgnum) - mp->lowoff] & SELECT_EMPTY)
-#define set_select_empty(mp,msgnum) \
-    ((mp)->msgstats[(msgnum) - mp->lowoff] |= SELECT_EMPTY)
-
 #define is_unseen(mp,msgnum)  ((mp)->msgstats[(msgnum) - mp->lowoff] & SELECT_UNSEEN)
 #define unset_unseen(mp,msgnum)  ((mp)->msgstats[(msgnum) - mp->lowoff] &= ~SELECT_UNSEEN)
 #define set_unseen(mp,msgnum)  ((mp)->msgstats[(msgnum) - mp->lowoff] |= SELECT_UNSEEN)
@@ -202,8 +193,8 @@ struct msgs {
            ((mp)->attrstats = 0)
 
 /*
- * macros for folder attributes
- */
+** macros for folder attributes
+*/
 #define clear_folder_flags(mp) ((mp)->msgflags = 0)
 
 #define is_readonly(mp)  ((mp)->msgflags & READONLY)
@@ -215,19 +206,20 @@ struct msgs {
 #define NULLMP  ((struct msgs *) 0)
 
 /*
- * m_getfld() message parsing
- */
-
-#define NAMESZ  999        /* Limit on component name size.
-                            * RFC 2822 limits line lengths to
-                            * 998 characters, so a header name
-                            * can be at most that long.
-                            * m_getfld limits header names to 2
-                            * less than NAMESZ, which is fine,
-                            * because header names must be
-                            * followed by a colon. Add one for
-                            * terminating NULL.
-                            */
+** m_getfld() message parsing
+*/
+
+#define NAMESZ  999        /*
+                           ** Limit on component name size.
+                           ** RFC 2822 limits line lengths to
+                           ** 998 characters, so a header name
+                           ** can be at most that long.
+                           ** m_getfld limits header names to 2
+                           ** less than NAMESZ, which is fine,
+                           ** because header names must be
+                           ** followed by a colon. Add one for
+                           ** terminating NULL.
+                           */
 
 #define LENERR   (-2)      /* Name too long error from getfld  */
 #define FMTERR   (-3)      /* Message Format error             */
@@ -239,12 +231,11 @@ struct msgs {
 #define FILEEOF  5         /* Reached end of input file        */
 
 /*
- * Maildrop styles
- */
+** Maildrop styles
+*/
 #define MS_DEFAULT  0    /* default (one msg per file) */
 #define MS_UNKNOWN  1    /* type not known yet         */
 #define MS_MBOX     2    /* Unix-style "from" lines    */
-#define MS_MMDF     3    /* string mmdlm2              */
 
 extern int msg_count;        /* m_getfld() indicators */
 extern int msg_style;        /*  .. */
@@ -252,17 +243,13 @@ extern char *msg_delim;      /*  .. */
 
 #define NOUSE    0        /* draft being re-used */
 
-#define TFOLDER  0        /* path() given a +folder */
-#define TFILE    1        /* path() given a file    */
-#define TSUBCWF  2        /* path() given a @folder */
-
 #define OUTPUTLINELEN  72    /* default line length for headers */
 
 /*
- * miscellaneous macros
- */
+** miscellaneous macros
+*/
 
-#define pidXwait(pid,cp) pidstatus (pidwait (pid, NOTOK), stdout, cp)
+#define pidXwait(pid,cp) pidstatus(pidwait(pid, NOTOK), stdout, cp)
 
 #ifndef max
 # define max(a,b) ((a) > (b) ? (a) : (b))
@@ -277,71 +264,77 @@ extern char *msg_delim;      /*  .. */
 #endif
 
 /*
- * GLOBAL VARIABLES
- */
+** GLOBAL VARIABLES
+*/
 #define CTXMOD  0x01        /* context information modified */
 #define DBITS  "\020\01CTXMOD"
 extern char ctxflags;
 
 extern char *invo_name;      /* command invocation name         */
 extern char *mypath;         /* user's $HOME                    */
+extern char *mmhdir;
+extern char *mmhpath;
 extern char *defpath;        /* pathname of user's profile      */
 extern char *ctxpath;        /* pathname of user's context      */
 extern struct node *m_defs;  /* list of profile/context entries */
+extern char *mailstore;      /* name of mail storage directory  */
 
 /*
- * These standard strings are defined in config.c.  They are the
- * only system-dependent parameters in nmh, and thus by redefining
- * their values and reloading the various modules, nmh will run
- * on any system.
- */
-extern char *buildmimeproc;
+** These standard strings are defined in config.c.  They are the
+** only system-dependent parameters in nmh, and thus by redefining
+** their values and reloading the various modules, nmh will run
+** on any system.
+*/
+extern char *attach_hdr;
 extern char *backup_prefix;
 extern char *altmsglink;
-extern char *catproc;
 extern char *components;
 extern char *context;
-extern char *current;
+extern char *curfolder;
 extern char *defaulteditor;
+extern char *defaultpager;
 extern char *defaultfolder;
 extern char *digestcomps;
 extern char *distcomps;
 extern char *draftfolder;
-extern char *faceproc;
 extern char *fileproc;
 extern char *foldprot;
 extern char *forwcomps;
 extern char *inbox;
-extern char *incproc;
-extern char *installproc;
-extern char *lproc;
+extern char *listproc;
+extern char *mhetcdir;
 extern char *mailproc;
-extern char *mh_defaults;
-extern char *mh_profile;
+extern char *mailspool;
 extern char *mh_seq;
 extern char *mhlformat;
-extern char *mhlforward;
 extern char *mhlproc;
 extern char *mhlreply;
-extern char *moreproc;
+extern char *mimetypequery;
+extern char *mimetypequeryproc;
 extern char *msgprot;
 extern char *nmhaccessftp;
 extern char *nmhstorage;
 extern char *nmhcache;
 extern char *nmhprivcache;
 extern char *nsequence;
-extern char *packproc;
 extern char *postproc;
-extern char *pfolder;
+extern char *profile;
 extern char *psequence;
 extern char *rcvdistcomps;
-extern char *rcvstoreproc;
 extern char *replcomps;
 extern char *replgroupcomps;
-extern char *rmfproc;
 extern char *rmmproc;
 extern char *sendmail;
 extern char *sendproc;
+extern char *seq_all;
+extern char *seq_beyond;
+extern char *seq_cur;
+extern char *seq_first;
+extern char *seq_last;
+extern char *seq_next;
+extern char *seq_prev;
+extern char *seq_unseen;
+extern char *seq_neg;
 extern char *showmimeproc;
 extern char *showproc;
 extern char *usequence;