1. in the language table 0x80 is not part of 8859-n and the range 0xa0-0xff is valid latin1. 2. don't call chartorune() first -- it is difficult to tell a bad rune from ascii/latin1/binary. deal with 4-byte utf-8. 3. added utf-(16|32)(be|le) detection (when byteorder marks are present). 4. support image bit-depths of 1, 2 and 4. 5. font file parsing now insists on newlines between entries and ignores short lines. subfonts that are split into two different images are also properly located. i wrote a seperate program chkfont that slowly checks most font parameters and takes pains to complain in a meaningful way which is included. 6. iself's automatic cpu array was redeclared "static" so that non-explicitly initialized locations would be 0. added an array for elf type (core file, relocatable, shared library, executable). less important changes 1. -h flag -- prints character histogram. this is sometimes useful to see why files lib /lib/glass are classified as binary. 2. added rustic support for detecting some dbcs character sets. although the method is crude, we should not often be fooled on real examples -- it's uncommon to have even-byte long runs of latin1 characters.