May 17, 2014 Updated the copy of igor and .nanorc files here. June 11, 2013 Updated the port (textproc/igor) to version 1.376. The important new feature is locale support, making it possible to add non-English misspellings to local lists in /usr/local/etc/igor/spelling. Thanks to Giorgos Keramidas for his help with this. As always, the latest version is available from Glen Barber's repository: https://docscripts.glenbarber.us/tags/igor/ January 21, 2013 Updated the port (textproc/igor) to version 1.355. The version in this directory has been removed. The latest files are available directly from Glen Barber's repository: https://docscripts.glenbarber.us/tags/igor/ Thanks to FOSSLC (http://www.fosslc.org/drupal/), the BSDCan presentation on igor is here: http://www.youtube.com/watch?v=-9MLREFzdR0&list=PL4A10C737F224D0DC May 11, 2012 Added the slides used in the DevSummit presentation at BSDCan (in PDF form). The audio was also recorded, and plans are to post it to YouTube. February 10, 2012 Added a man page. January 22, 2012 Added a .nanorc syntax highlight file for nano (editors/nano) which highlights bad whitespace and long lines. Combined with igor, this makes whitespace correction much easier. There are embedded tabs in that file, so download it instead of cutting and pasting. December 21, 2011 The many rules for man pages and DocBook are a bit much to remember when months can pass between working on the various types. My mentors Glen Barber and Benedict Reuschling have been very good at catching this kind of thing, but repetitive tasks are what computers are supposed to do for us. After not finding much to do automated checking, I slapped together a Perl program called "igor" that does some of this. At present it checks all types of files for repeated words ("is is"), common spelling mistakes collected from FreeBSD documents, FreeBSD obsolete features (just "cvsup" so far), bad phrases ("the to"), and bad whitespace (blank lines with whitespace or lines with trailing whitespace). Oh, and there's a separate style check that makes some subjective suggestions. mdoc(7) documents are also tested for document date, sentences starting on a new line, and document structure (Dd, Dt, Os, Sh NAME, Nm, Nd, Sh SYNOPSIS, Sh DESCRIPTION occurring in the right order and with parameters). DocBook SGML documents are also tested for correct indentation (a terrible hack even when compared to the surrounding code), indentation whitespace, title capitalization, matching open and close tags, straggling tags, and long lines. Default is to run all tests, but specifying an individual test runs just that one. Output is in plain ASCII, or better yet, marked with ANSI color sequences that help to identify errors visually (usable with 'less -R'). igor handles compressed man pages, and shows filenames when run on multiple files. It also accepts input on stdin. Typical usage: igor -h igor -R -D ifconfig.8.gz | less -RS igor -R -D /usr/share/man/man1/*.gz | less -RS igor -R chapter.sgml | less -RS igor -R /usr/doc/en_US.ISO8859-1/books/handbook/*/chapter.sgml | less -RS igor is really more of a proof-of-concept than a finished program. There are more tests that could be done, and existing tests could be done better. Still, it's useful as-is. Maybe presenting it will spur someone to point out a smarter, better, or faster way of doing these tests. Or rewrite it entirely. The current version of igor is here: http://www.wonkity.com/~wblock/igor/ Perl 5.10 minimum, no other dependencies, no port, no warranty. Please check here for the latest version, speed and test improvements have been frequent.