Kuang-che Wu - 2009-12-02

Dear all,

I am trying build my own xchm win32 binary and fix some bugs for it.
Here is my attempt as patchset:

It is based on xchm 1.17, wx 2.90, chmlib 0.40.
These patch files, some are wx fixes, some are xchm fixes, and some are
just for me.

* Files named 0* and 1* are basic steps to build xchm using VC++2008
   express. It is eaiser than using mingw :)

* These two patches are needed to fix build
   1-buildfix-xchm: Fix issue of wxT() for msvc compiler.
   1-buildfix-xchm-wx290: fixes for wxWidgets 2.9.0

* And some other bug fixes:
   xchm-bug-minor.diff: fix xchm minor bugs
   xchm-bug-filemtime.diff: Fix incorrect file access when try to get file time.
   xchm-bug-fontdialog.diff: fix font dialog crash due to event triggered before…

* Performance fix:
   xchm-performance-tree.diff: fix performance issue for big chm file when close…

* Patches related to unicode filename:
   wx-bug-fromwchar.diff: Fix FromWChar implementation.
   wx-bug-utf8uri.diff: FileNameToURL should return utf8.
   wx-bug-invalid-path.diff: access violation in wxFileName() with invalid path
   xchm-bug-unicode-filename.diff: xchm unicode filename fix

   I have submitted the patches of wx to their issue tracking system, list
   here for your reference.
   xchm-bug-unicode-filename.diff also includes patch on chmlib's open

* The inner files of chm may also have unicode filename:
   xchm-bug-unicode-link.diff: fix for chm inner files with unicode name

* And some others:
   xchm-ui.diff: improve xchm ui

For most of them, you can see the detail from beginning description of each file.

Hope these changes could be merged into xchm.

P.S. One reason I choice wx 2.9 is because 2.8's wxString::Replace is very
slow. http://trac.wxwidgets.org/ticket/9135