1 /*
2  * parsed form of the "sys" file
3  * Beware that in C++, struct system collides with system(3) in transmit.c
4  * This can be fixed by using "::system(...)" or by renaming struct system.
5  */
6 struct system {
7 	char *sy_name;		/* machine name */
8 	char *sy_excl;		/* exclusion list of machines */
9 	char *sy_ngs;		/* newsgroup subscription list */
10 	char *sy_distr;		/* distribution list */
11 	char *sy_cmd;		/* command to transmit articles */
12 	unsigned sy_lochops;	/* flags Ln value: local hops */
13 	char sy_flags;		/* ornaments, encoded as bits */
14 	NGPAT *sy_trngs;	/* parsed form of sy_ngs */
15 	NGPAT *sy_trdistr;	/* parsed form of sy_trdistr */
16 	struct system *sy_next;	/* link to next system */
17 };
18 
19 /* sy_flags bits */
20 #define FLG_BATCH	(1<<0)		/* F: sy_cmd is batch filename */
21 #define FLG_SZBATCH	(1<<1)		/* f: F, and include byte count */
22 #define FLG_IHAVE	(1<<2)		/* I: NNTP ihave - F, write msg. ids */
23 #define FLG_LOCAL	(1<<3)		/* L: send local articles only */
24 #define FLG_MOD		(1<<4)		/* m: send moderated groups only */
25 #define FLG_UNMOD	(1<<5)		/* u: send unmoderated groups only */
26 #define FLG_NBATCH	(1<<6)		/* n: NNTP batch: filename & msg-id */
27 
28 /* imports from system.c */
29 extern struct system *oursys(), *nextsys();
30 extern void sysdeflt(), rewndsys();
31