1 /*******************WARNING*********************
2 
3 This is a *MODIFIED* version of Geoff Coller's proof-of-concept NOV
4 implementation.
5 
6 It has been modified to support threading directly from a file handle
7 to a NNTP server without a temporary file.
8 
9 This is not a complete distribution.  We have only distributed enough
10 to support NN's needs.
11 
12 The original version came from world.std.com:/src/news/nov.dist.tar.Z
13 and was dated 11 Aug 1993.
14 
15 In any case, bugs you find here are probably my fault, as I've trimmed
16 a fair bit of unused code.
17 
18 -Peter Wemm  <peter@DIALix.oz.au>
19 */
20 
21 /*
22  * Copyright (c) Geoffrey Collyer 1992, 1993.
23  * All rights reserved.
24  * Written by Geoffrey Collyer.
25  * Thanks to UUNET Communications Services Inc for financial support.
26  *
27  * This software is not subject to any license of the American Telephone
28  * and Telegraph Company, the Regents of the University of California, or
29  * the Free Software Foundation.
30  *
31  * Permission is granted to anyone to use this software for any purpose on
32  * any computer system, and to alter it and redistribute it freely, subject
33  * to the following restrictions:
34  *
35  * 1. The authors are not responsible for the consequences of use of this
36  *    software, no matter how awful, even if they arise from flaws in it.
37  *
38  * 2. The origin of this software must not be misrepresented, either by
39  *    explicit claim or by omission.  Since few users ever read sources,
40  *    credits must appear in the documentation.
41  *
42  * 3. Altered versions must be plainly marked as such, and must not be
43  *    misrepresented as being the original software.  Since few users
44  *    ever read sources, credits must appear in the documentation.
45  *
46  * 4. This notice may not be removed or altered.
47  */
48 
49 /* newsreader interface to news overview data */
50 struct novgroup {
51     char           *g_dir;
52     FILE           *g_stream;
53     struct novart  *g_first;
54     struct novart  *g_curr;
55     HASHTABLE      *g_msgids;
56     HASHTABLE      *g_roots;
57 };
58 
59 struct novart {
60     char           *a_num;
61     char           *a_subj;
62     char           *a_from;
63     char           *a_date;
64     char           *a_msgid;
65     char           *a_refs;
66     char           *a_bytes;
67     char           *a_lines;
68     char           *a_others;
69     /* these members are message-ids, filled in by novthread() */
70     char           *a_parent;
71     char           *a_child1;	/* first child of a chain */
72     char           *a_sibling;	/* next sibling in this chain */
73     /* end message-ids */
74     struct novart  *a_nxtnum;	/* next in numeric order */
75 };
76