[ This is Andrew Molitor's attribute filter stuff. I have made very
  slight updates, making his db.h into filter.h, since it is highly
  unlikely that anyone's going to go screwing around with the value of
  A_USER_START, which is in attrs.h in TinyMUSH 2.2 anyway. I also
  changed the 'char ch;' declares to 'int ch;' in order to make
  compilers happy, since getchar() returns int and things blow up
  badly under SysV-derived UNIXen otherwise. -- Amberyl ]

	This is a package of two filters, called filter-1 and filter-2.
I'm very proud of this innovative naming scheme. They're intended to
be two passes over a FLAT dump of a MUSH 2.x databasde, and together
eliminate unused user defined attributes, and renumbering of the
used ones sequentially. Here's how ya do it.

	Run your flat file in to stdin of filter-1. What comes out
on stdout is a sorted list of attribute numbers. Stuff that in a file.
Now run filter-2 with the name of the attribute numbers file as an argument,
feeding it your flat file on stdin. What appears on stdout is the
tidied and renumbered flat file.

E.G.
zcat flat.old.Z | filter-1 > attr.nums
zcat flat.old.Z | filter-2 attr.nums | compress > flat.new.Z

	Or something like that. I did this, or something real close, and
it worked good. Unix shells and all, ya know. I just wing it.

	You compile these filters up somewhere or other where they
can get hold of filter.h, from which they get the constant A_USER_START,
which is 256.

		Andrew
