xCHM is a cross-platform GUI front-end to chmlib, with borrowed bits from Pabs' chmdeco project.
Originally written for UNIX systems (Linux, *BSD, Solaris), xCHM has been since ported to Mac OS X and Windows.
xCHM can show the content tree if one is available, print pages, change font face and size, remember bookmarks, display a searchable index, and search for words in the current page and the whole book.
xCHM is under the GPL. The license text will not be reproduced here because it's too long, but I urge you to read it if you intend to use my code in your own projects. There are important implications that need to be understood when using GPL code.
I am completely unaware of any legal issues with the code. As far as I know to this date this is completely legal code.
If you know there are legal problems with this software in your country, please let me know immediately and do not install/use it.
Calls for help
If you think something is missing or could be improved, please see if an xCHM patch could solve the problem. To my mind, it would be better to have one great viewer instead of a couple hundred clones that fix something and miss something else.
Thanks to my beautiful girlfriend Anca for creating the front page xCHM logo and putting up with me.
Pabs has contributed time and knowledge to the development of xCHM. Together with Jed Wing, Pabs is the author of the most complete specification for the chm format I have seen.
wxWidgets developer Vadim Zeitlin has helped me with Mac OS X testing and patches, and contributed to the build system. I would have never known that xCHM works on Mac OS X if it wasn't for him.
Cedric Boudinet has contributed Firefox-style tab support to xCHM.
Martin Use helped test xCHM on Mac OS X and wrote a HOWTO on how to install xCHM from source on Mac OS X.
Markus Schwarzenberg helped with SunOS testing. Chanler White made binary xCHM 0.9 packages for Mac OS X and contributed code.
Thanks to all the people who tried xCHM, made packages for their favourite distros and contributed thoughts and fixes.