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