On Wed, May 23, 2012 at 05:41:35PM +0800, Daniel Veillard wrote: > C.f. the bug Fix windows unicode build > https://bugzilla.gnome.org/show_bug.cgi?id=638650 > > and the previous discussions here: > > http://mail.gnome.org/archives/xml/2008-February/msg00094.html > > now that the release is done, can we have a final decision on this. > As I understand it, LoadLibraryW takes a wchar_t* parameter, while > internally we are using only a char * (or xmlChar *) so it makes > no sense to try to call LoadLibraryW, and instead of using the > macro LoadLibrary which can only break build, calling LoadLibraryA > seems to be the simplest. > But I'm not a Windows user, and know close to nothing to the platform > so I suggest we reopen that debate, or just agree on fixing this.
Okay after the discussions (thanks everybody !) it seems we have two choices: 1/ change the xmlmodule.h API to use xmlChar * (and hence assume UTF-8 strings), then convert to 16bit encoding and pass that to the W functions on Windows. 2/ keep the xmlmodule.h, assume and document that those entry points accept only ASCII names and use the A functions on Windows. In any case using LoadLibrary is just broken :-) I'm strongly weigting on 2/ myself for the following reasons: - library names and entry points are usually ascii to avoid a whole set of problems - on the Linux/Unix side the function dlopen and dlsym will be using user's locale and libxml2 cannot and should not make any assumption about those settings, so the only safe assumption is that those will work with ASCII and we can't guarantee behaviour outside of it. So I am tempted to take the patches using the A versions of the Windows entry point but mainly document xmlModuleOpen and xmlModuleSymbol that use of character in the given strings outside of ASCII will have undefined behaviour (optionally we could add the check in the entry points). That way the API is coherent across platforms, and we don't change the API/ABI just clarify limitation of use. Any strong dissent on doing the above :-) ? Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ dan...@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ _______________________________________________ xml mailing list, project page http://xmlsoft.org/ xml@gnome.org https://mail.gnome.org/mailman/listinfo/xml