Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!spool.mu.edu!newspump.sol.net!www.nntp.primenet.com!nntp.primenet.com!news.mathworks.com!fu-berlin.de!irz401!orion.sax.de!uriah.heep!news From: j@uriah.heep.sax.de (J Wunsch) Newsgroups: comp.unix.bsd.freebsd.misc Subject: Re: knews & threads [Was: dummy question] Date: 18 Oct 1996 23:56:47 GMT Organization: Private BSD site, Dresden Lines: 63 Message-ID: <5495fv$c8@uriah.heep.sax.de> References: <53mfdu$1iv@wa4phy.async.com> <53oncv$fi5@newshost.lanl.gov> <53rfcg$a7@anorak.coverform.lan> <5411l8$dr9@uriah.heep.sax.de> <542rb6$i6@anorak.coverform.lan> Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch) NNTP-Posting-Host: localhost.heep.sax.de Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Newsreader: knews 0.9.6 X-Phone: +49-351-2012 669 X-PGP-Fingerprint: DC 47 E6 E4 FF A6 E9 8F 93 21 E0 7D F9 12 D6 4E brian@anorak.coverform.lan (Brian Somers) wrote: > BTW, on another note J"org, I note that you're using knews. Does this > article thread correctly after your article in your view ? Your Yep. > previous article mis-threaded (I *think* due to knews on my end) - as > if knews doesn't handle header line continuations - even though it > writes them itself. > > This threading lark is beginning to bug me :) Let me guess... you are running INN, but not overchan? Then, knews will use the INN-internal Xover generator. There's nothing wrong with this apart from being a little sluggish compared to knews, but i also prefer this method for my mostly single-user machine. Alas, there's a bug in INN. Below's my fix. After people have been helping me to find the current maintainer of INN, i've got a confirmation yesterday that the fix was accepted for the next version. --- nnrpd/article.c.orig Mon Jan 3 17:20:31 1994 +++ nnrpd/article.c Sun Apr 28 21:50:59 1996 @@ -801,6 +801,22 @@ if (*line == '\0') break; + /* Is it a continuation line? */ + if (ISWHITE(*line) && (hp - Headers) < ARTfieldsize) { + /* Skip whitespace but one. */ + for (p = line; *p && ISWHITE(*p); p++) + continue; + --p; + /* Now append it. */ + hp->Length += strlen(p); + RENEW(hp->Header, char, hp->Length + 1); + (void)strcat(hp->Header, p); + for (p = hp->Header; *p; p++) + if (*p == '\t' || *p == '\n') + *p = ' '; + continue; + } + /* See if we want this header. */ fp = ARTfields; for (hp = Headers, i = ARTfieldsize; --i >= 0; hp++, fp++) { @@ -833,6 +849,7 @@ if (*p == '\t' || *p == '\n') *p = ' '; hp->HasHeader = TRUE; + break; } } -- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)