> If I could get some code pointers to the unicode solutions built into sword, > like > implementation module(s)? > example usage? > tests?? > I'd be willing to try to develop a patch.
In the SWORD source, there is a file tests/filtertest.cpp that shows how to convert from UTF-8 to UTF-16. However, it should be modified to cast to wchar_t, which is the same thing on Windows, eg: wchar_t *wcharBuf = (wchar_t *)lineBuffer.getRawData(); As far as where to start, we need to start by adding a file like the one I referenced above. The only difference is that we need to do the UTF-8 -> UTF-16 conversions as I just mentioned, rather than how they are being done. Once this file is created, then every reference to those functions in the sword source need to be replaced, eg "open" needs to be "sw_open". I should point out that on linux, no one really worries about the underlying issue (which is how to display and choose filenames that contain characters that don't exist in the system encoding), so these functions need to have #ifdef's for WIN32. On nix, they simply need to call the normal functions (open, etc). So, for example, here's the first function in pseudo-code: int sw_open(const char *path, int mode, int perms) { #ifdef WIN32 SWBuf p; p.set(path); UTF8UTF16 filter; filter.processText(p); wchar_t *wcharBuf = (wchar_t *)p.getRawData(); return _wopen(wcharBuf, mode, perms); #else return open(path, mode, perms); #endif } This code is not tested at all, and I am not a C/C++ expert by any means. But hopefully that will get you on the right path. > Also, I'm not sure how I'd most easily reproduce this issue for test purposes > on my available machines (Ubuntu and Win Vista) configured for US/English. You can test by setting the SWORD_PATH environment variable to a directory containing appropriate characters (eg, Žibřický) and then running the mgrtest test (in trunk/tests). I'm not familiar with whether these tests can be compiled easily using Visual Studio, perhaps someone else can help with that. > Is it worthwhile for me to look at the Xiphos solution, or is it so tightly > coupled with the GLib2 dependency that I'd be better off not? Perhaps it's worth it, if only to learn where all of the problem areas are. See http://gnomesword.svn.sourceforge.net/viewvc/gnomesword/branches/webkit/win32/patches/xiphos_sword.patch?revision=4285&view=markup > > BTW, I am brand new to the sword project -- only been monitoring sword-devel > for a few weeks, just got an account, pmartel60, today, haven't yet read any > orientation materials, so don't yet know anything about the development > procedures, but I'm a quick study. > > If interested, please send any pointers that might be useful. You might like the wiki, http://www.crosswire.org/wiki/Main_Page, and the doxygen documentation for SWORD, http://www.crosswire.org/~ghellings/svnclassdocs/ Hope that helps, Matthew _______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page