The cdiff.* files contain a pair of rn speedups, relative to rn
patchlevel 40 as modified by U of Waterloo: they remove some expensive
stat system calls.  The base U of Waterloo rn contains two other handy
changes:  a -q which disables the interrogation when the active file
changes, and a third answer during the interrogation: "q" means "I
don't care, just show me some news, right now".

The changes to ngdata.c prevent rn stating every file under
/usr/spool/news that might contain an article before opening it.

The changes to addng.c prevent rn stating all ~700 directories under
/usr/spool/news every time the active file changes (this is known as
"the rn huddle").  In the one timing trial we did, this reduced start
up time after touching active from 56 seconds elapsed on a Sun 3 to 8
seconds.  Before making these changes, longer huddles in the range of
10 to 15 minutes were observed on Sun 3s and 4s, perhaps because the
active file was touched in a different spot.

Unfortunately the new addng.c code means that you will get an even
longer interrogation after the shorter huddle than you previously
would, as many groups will be spuriously considered "new".  If you have
-q available, you can keep up with new groups by just reading the
"control" pseudo-group with "ihave", "sendme" and "cancel" in your
control kill file.

The theory behind the 700 stats in the newgroup huddle was apparently
that if rn stats group/1, and it exists, then group must be a
newly-created group.  There's gotta be a better way.  With rapid
expiry, group/1 won't be around for long in most groups, causing rn to
miss some new groups, and in "valuable" groups with long expiry times,
group/1 will be around for a very long time, making rn spuriously think
that the old groups are new.  Proper fixes for this problem involve
reworking rn's strategy for determining new newsgroups completely,
using the "active.times" file.  The file "better.way" is an attempt
to do exactly that.
