PennMUSH Community

root/1.8.3/trunk/hdrs/extmail.h

Revision 1117, 3.9 kB (checked in by shawnw, 1 year ago)

Merge with devel

Line 
1 /* mail.h - header for Javelin's extended mailer */
2
3 #ifndef _EXTMAIL_H
4 #define _EXTMAIL_H
5 /* Some of this isn't implemented yet, but heralds the future! */
6 #define M_MSGREAD       0x0001U
7 #define M_UNREAD        0x0FFEU
8 #define M_CLEARED       0x0002U
9 #define M_URGENT        0x0004U
10 #define M_MASS          0x0008U
11 #define M_EXPIRE        0x0010U
12 #define M_RECEIPT       0x0020U
13 #define M_TAG           0x0040U
14 #define M_FORWARD       0x0080U
15 /* 0x0100 - 0x0F00 reserved for folder numbers */
16 #define M_FMASK         0xF0FFU
17 #define M_ALL           0x1000U /* In mail_selector, all msgs in all folders */
18 #define M_MSUNREAD      0x2000U /* Mail selectors */
19 #define M_REPLY         0x4000U
20 #define M_FOLDER        0x8000U /* In mail selector, all msgs in cur folder */
21
22 #define MAX_FOLDERS     15
23 #define FOLDER_NAME_LEN (BUFFER_LEN / 30)
24 #define FolderBit(f) (256 * (f))
25 #define Urgent(m)       (m->read & M_URGENT)
26 #define Mass(m)         (m->read & M_MASS)
27 #define Expire(m)       (m->read & M_EXPIRE)
28 #define Receipt(m)      (m->read & M_RECEIPT)
29 #define Forward(m)      (m->read & M_FORWARD)
30 #define Reply(m)        (m->read & M_REPLY)
31 #define Tagged(m)       (m->read & M_TAG)
32 #define Folder(m)       ((m->read & ~M_FMASK) >> 8U)
33 #define Read(m)         (m->read & M_MSGREAD)
34 #define Cleared(m)      (m->read & M_CLEARED)
35 #define Unread(m)       (!Read(m))
36 #define All(ms)         (ms.flags & M_ALL)
37 #define AllInFolder(ms) (ms.flags & M_FOLDER)
38 #define MSFolder(ms)    ((int)((ms.flags & ~M_FMASK) >> 8U))
39
40 /** A mail selection.
41  * This structure maintains information about a selected list of
42  * messages. Messages can be selected in several ways.
43  */
44 struct mail_selector {
45   int low;              /**< Minimum message number */
46   int high;             /**< Maximum message number */
47   mail_flag flags;      /**< Message flags */
48   dbref player;         /**< Message sender's dbref */
49   int days;             /**< Target message age in days */
50   int day_comp;         /**< Direction of comparison to target age */
51 };
52
53 typedef int folder_array[MAX_FOLDERS + 1];
54 #define FA_Init(fa,x) \
55 for (x = 0; x <= MAX_FOLDERS; x++) \
56 fa[x] = 0
57
58 #define SUBJECT_COOKIE  '/'
59 #define SUBJECT_LEN     60
60
61 #define MDBF_SUBJECT    0x1
62 #define MDBF_ALIASES    0x2
63
64 /* Database ends with ***END OF DUMP*** not *** END OF DUMP *** */
65 #define MDBF_NEW_EOD    0x4
66
67 /* Database contains sender ctimes */
68 #define MDBF_SENDERCTIME        0x8
69
70 /* From extmail.c */
71 extern struct mail *maildb;
72 extern void set_player_folder(dbref player, int fnum);
73 extern void add_folder_name(dbref player, int fld, const char *name);
74 extern struct mail *find_exact_starting_point(dbref player);
75 extern void check_mail(dbref player, int folder, int silent);
76 extern void check_all_mail(dbref player);
77 extern int dump_mail(FILE * fp);
78 extern int load_mail(FILE * fp);
79 extern void mail_init(void);
80 extern int mdb_top;
81 extern void do_mail(dbref player, char *arg1, char *arg2);
82 enum mail_stats_type { MSTATS_COUNT, MSTATS_READ, MSTATS_SIZE };
83 extern void do_mail_stats(dbref player, char *name, enum mail_stats_type full);
84 extern void do_mail_debug(dbref player, const char *action, const char *victim);
85 extern void do_mail_nuke(dbref player);
86 extern void do_mail_change_folder(dbref player, char *fld, char *newname);
87 extern void do_mail_unfolder(dbref player, char *fld);
88 extern void do_mail_list(dbref player, const char *msglist);
89 extern void do_mail_read(dbref player, char *msglist);
90 extern void do_mail_clear(dbref player, const char *msglist);
91 extern void do_mail_unclear(dbref player, const char *msglist);
92 extern void do_mail_purge(dbref player);
93 extern void do_mail_file(dbref player, char *msglist, char *folder);
94 extern void do_mail_tag(dbref player, const char *msglist);
95 extern void do_mail_untag(dbref player, const char *msglist);
96 extern void do_mail_fwd(dbref player, char *msglist, char *tolist);
97 extern void do_mail_send
98   (dbref player, char *tolist, char *message, mail_flag flags,
99    int silent, int nosig);
100
101 #endif                          /* _EXTMAIL_H */
Note: See TracBrowser for help on using the browser.