1 /* 2 * All the information needed to describe an article as it is processed. 3 */ 4 5 #define MINSHPTRS 30 /* initial value for sh_alloced */ 6 7 struct article { 8 statust a_status; /* article status bits */ 9 struct headers h; /* strictly from headers in input */ 10 char *a_haccum; /* accumulated output headers, if any */ 11 char *a_hnext; /* -> first free byte in a_haccum */ 12 short a_hpalloced; /* indices in a_hptrs */ 13 short a_hpused; /* indices currently in use */ 14 char **a_hptrs; /* -> array of ptrs to lines in a_haccum */ 15 unsigned a_hbytesleft; /* in a_haccum */ 16 char *a_files; /* names for history, added in filing, from h.h_ngs */ 17 char *a_tmpf; /* temp link name or first spool dir link */ 18 FILE *a_artf; /* stream corresponding to a_tmpf */ 19 boolean a_unlink; /* true iff a_tmpf should be unlinked at end */ 20 boolean a_filed; /* true iff article has been filed */ 21 boolean a_xref; /* true iff Xref: header generated yet */ 22 boolean a_blvmax; /* true iff a_unread is to be believed */ 23 long a_charswritten; /* into spool directory, for batcher */ 24 long a_unread; /* bytes of article input yet unread */ 25 long a_id; /* article id #, unique within this batch */ 26 boolean a_badhdr; /* true iff non-header is before blank line */ 27 }; 28 29 /* return name of at least one link, for printing in error messages, etc. */ 30 #define spoolnm(art) ((art)->a_unlink? (art)->a_tmpf: (art)->a_files) 31 32 /* imports from article.c */ 33 extern void artinit(), artfree(); 34