#Older versions of MagicFilter =[version 2.2.k](magicfilter-2.2.k.tar.gz)= [Harry G. McGavran](mailto:hgm@lanl.gov) found an interesting interaction between Berkeley lpd and magicfilter, where both magicfilter and lpd want to reap magicfilter's children, and sometimes magicfilter doesn't win. In particular, when magicfilter couldn't reap the m4 process, it would fail with a complaint about m4 terminating abnormally. In the case of executing m4, the program would have already failed with a message about m4 not being there, so reaping the return value wasn't necessary. As a little something extra, the `--srcdir` feature now works so you can untar **magicfilter** into directory _A_ and build it in directory _B_ by simply `cd`ing into _B_ and doing _A/_**configure.sh**. At least it works on Linux and FreeBSD. =[version 2.2.j](magicfilter-2.2.j.tar.gz)= 2.2.k should have been 2.2.j, but I set the version tag BEFORE I committed all the changes that now make up 2.2.k. This is a lesson that trying to do changes when you have a fever of 102f may not lead to the most robust code on the planet. =[version 2.2.g](magicfilter-2.2.g.tar.gz)= [Harry G. McGavran, Jr.](mailto:hgm@lanl.gov) of LANL reported a bunch of bugs with the m4 part of magicfilter; The first one was that I had forgotten to quote a `defn()` in [`magic.m4.in`](magicfilter-current/magic.m4.in), so printers that wanted to pass **`GS_OPTIONS`** to ghostscript weren't actually doing that. While fixing that (a trivial fix) he then pointed out (indirectly) that I wasn't properly quoting a large bunch of `ifdef()`s either. He then suggested that I modify **magicfilter** could it could be used as a filter to remote printers when the line printer daemon didn't support filters on them, so I added a **PRINTER** capacity to the .def files (this is a command to pipe printer-ready output to instead of simply piping it to stdout. With this and a front-end printer daemon that tries to print to `/dev/null`, even dumb `lpd`s can be magicfiltered. After I finished this, I added better support for printing **PDF** files both on postscript and non-postscript files, plus I now check for `hp2pcl` or `lj2ps` during configuration so that **PCL** files at least have a chance of being printable on non-PCL printers (`hp2pcl` and `lj2ps` only support **pcl 4**, so you need to give `configure.sh` the `--with-pcl` flag to enable this feature.) =[version 2.2.f](magicfilter-2.2.f.tar.gz)= I'd been having trouble getting magicfilter to configure on The configure.sh scripts have been pretty heavily updated (and both work on FreeBSD 4.5 and Mastodon, so they should work on all modern Unices.) =[version 2.1.a](magicfilter-2.1.a.tar.gz)= This version adds support for fifo handing in filters -- if a filter contains the magic token **`${FILE}`**, output from that filter will be directed through a named pipe to avoid diagnostic messages cluttering it up. Old versions of [Ghostscript](http://www.cs.wisc.edu/~ghost) may suffer from this problem (though I've never seen it.) =[version 2.0.i](magicfilter-2.0.i.tar.gz)= This version fixes some pretty nasty bugs that I managed to never encounter because my network doesn't, amazingly enough, trigger any of those conditions for me. =[version 2.0.g](magicfilter-2.0.g.tar.gz)= Broken. It has the annoying feature that it doesn't return error status from subprocesses, so it will successfully print, then lie and say it doesn't, which can lead to some hilarious paper wasting. =[version 2.0.f](magicfilter-2.0.f.tar.gz)= Also broken. But probably amusing if you're looking to see how clean, precise, and broken my coding can be. =[version 2.0.e](magicfilter-2.0.e.tar.gz)= Also also broken. Old. =[version 2.0.d](magicfilter-2.0.d.tar.gz)= Really broken. Older. =[version 2.0.c](magicfilter-2.0.c.tar.gz)= Yup, you guessed it. Broken. Oldest.