New changes: Sender: cannot be blank, Sender: always overrides From:
[mmh] / h / msh.h
1
2 /*
3  * msh.h -- definitions for msh
4  */
5
6 /* flags for stream */
7 #define STDIO   0               /* regular stdoutput */
8 #define CRTIO   1               /* create  re-direct */
9 #define APPIO   2               /* append  re-direct */
10 #define PIPIO   3               /* pipe    re-direct */
11
12 struct Cmd {
13     char line[BUFSIZ];
14     char *args[MAXARGS];
15     char *redirect;
16     int direction;
17     FILE *stream;
18 };
19
20 #define NULLCMD ((struct Cmd *) 0)
21
22 #define MHNCHK 0x0001   /* did nontext check           */
23 #define MHNYES 0x0002   /* .. and known to be non-text */
24
25 #define CUR (1 << (FFATTRSLOT + NUMATTRS - 1))
26
27 #ifdef BPOP
28 # define VIRTUAL SELECT_EMPTY
29
30 # define is_virtual(mp,msgnum)    ((mp)->msgstats[msgnum] & VIRTUAL)
31 # define unset_virtual(mp,msgnum) ((mp)->msgstats[msgnum] &= ~VIRTUAL)
32 # define set_virtual(mp,msgnum)   ((mp)->msgstats[msgnum] |= VIRTUAL)
33 #endif
34
35 struct Msg {
36     struct drop m_drop;
37     char *m_scanl;
38     struct tws m_tb;
39     short m_flags;
40     seqset_t m_stats;
41 };
42
43 #define m_bboard_id  m_drop.d_id
44 #define m_top        m_drop.d_size
45 #define m_start      m_drop.d_start
46 #define m_stop       m_drop.d_stop
47
48 /*
49  * FOLDER
50  */
51 extern char *fmsh;              /* folder instead of file  */
52 extern int modified;            /* command modified folder */
53 extern struct msgs *mp;         /* used a lot              */
54 extern struct Msg *Msgs;        /* Msgs[0] not used        */
55
56 FILE *msh_ready ();
57
58 /*
59  * COMMAND
60  */
61 extern int interactive;         /* running from a /dev/tty */
62 extern int redirected;          /* re-directing output     */
63 extern FILE *sp;                /* original stdout         */
64 extern char *cmd_name;          /* command being run       */
65 extern char myfilter[];         /* path to mhl.forward     */
66
67 extern char *BBoard_ID;         /* BBoard-ID constant */
68
69 /*
70  * SIGNALS
71  */
72 extern SIGNAL_HANDLER istat;    /* original SIGINT  */
73 extern SIGNAL_HANDLER qstat;    /* original SIGQUIT */
74 extern int interrupted;         /* SIGINT detected  */
75 extern int broken_pipe;         /* SIGPIPE detected */
76 extern int told_to_quit;        /* SIGQUIT detected */
77
78 /*
79  * prototypes
80  */
81 int readid (int);
82 int expand (char *);
83 void m_reset (void);
84 void fsetup (char *);
85 void setup (char *);
86 void readids (int);
87 void display_info (int);
88
89 void forkcmd (char **s, char *);
90 void distcmd (char **);
91 void explcmd (char **);
92 int filehak (char **);
93 void filecmd (char **);
94 void foldcmd (char **);
95 void forwcmd (char **);
96 void helpcmd (char **);
97 void markcmd (char **);
98 void mhncmd (char **);
99 void showcmd (char **);
100 int pack (char *, int, int);
101 int packhak (char **);
102 void packcmd (char **);
103 void pickcmd (char **);
104 void replcmd (char **);
105 void rmmcmd (char **);
106 void scancmd (char **);
107 void sortcmd (char **);