Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / support / bboards / mmdfII / bboards / bboards.h
1 /* bboards.h - definition of a BBoard structure */
2
3 #define BBOARDS "bboards"       /* name in /etc/passwd */
4 #define BBDB    "BBoards"       /* file in BBOARDS' home directory */
5 #define BBMODE  0644            /* default BBoards mode */
6 #define DISTADR "dist-"         /* prefix for distribution addresses */
7
8 #ifdef  POP
9 #define POPUID  "pop"           /* name in /etc/passwd */
10 #define POPDB   "POP"           /* file in POPUID's home directory */
11 #define POMODE  0600            /* default POP subscriber maildrop mode */
12 #endif  POP
13
14 struct bboard {
15     char   *bb_name;            /* name of the bboard */
16     char  **bb_aka;             /* aliases for the bboards */
17
18     char   *bb_file;            /* file it resides in */
19     char   *bb_archive;         /* file where archives reside */
20     char   *bb_info;            /* file where maxima resides */
21     char   *bb_map;             /* file where binary map resides */
22
23     char   *bb_passwd;          /* password for it */
24
25     char  **bb_leader;          /* list of local leaders */
26
27     char   *bb_addr;            /* network address */
28     char   *bb_request;         /* network address for requests */
29     char   *bb_relay;           /* host acting as relay in local domain */
30     char  **bb_dist;            /* distribution list */
31
32     unsigned int    bb_flags;   /* various flags */
33 #define BB_NULL 0x0000
34 #define BB_ARCH 0x0007          /* archive policy */
35 #define   BB_ASAV       0x0001  /*   save in archives/ directory */
36 #define   BB_AREM       0x0002  /*   remove without saving */
37 #define BB_INVIS        0x0010  /* invisible to bbc */
38 #define BB_REMOTE       0x0020  /* remote to bbc */
39 #define BB_SEEN         0x0040  /* seen by bbc */
40 #define BBITS   "\020\01ARCHIVE\02REMOVE\05INVIS\06REMOTE\07SEEN"
41
42     union {                     /* unassigned */
43         unsigned int    un_count;
44         long            un_mtime;
45     } bb_un;
46 #define bb_count        bb_un.un_count
47 #define bb_mtime        bb_un.un_mtime
48     
49     unsigned int    bb_maxima;  /* highest BBoard-Id in it */
50     char   *bb_date;            /* date that maxima was written */
51
52     struct bboard *bb_next;     /* unassigned */
53     struct bboard *bb_link;     /* unassigned */
54     struct bboard *bb_chain;    /* unassigned */
55 };
56
57                                 /* flags for setbbent () */
58 #define SB_NULL 0x0000
59 #define SB_STAY 0x0001          /*   stay open between calls */
60 #define SB_FAST 0x0002          /*   fast parse of file */
61
62 void    make_lower ();
63 int     setbbent (), endbbent (), setbbfile (), setbbinfo (), setpwinfo (),
64         ldrbb (), ldrchk (), getbbdist ();
65 long    getbbtime ();
66 char   *getbberr ();
67 struct bboard  *getbbent (), *getbbnam (), *getbbaka (), *getbbcpy();