Neale, I'd raised this before, the developers seemed unenthused about providing this API publicly; we use it internally because there is alot of shifting to and fro between utf-8 and ucs-2 on this one specific platform. And Win32 builders don't necessarily incorporate apr_xlate() (and, using the native api, it's impossible to match the iconv/apr_xlate semantics without setting up an entire COM environment and using some non-C API's.)
Certainly would be open to having this revisited if others now believe that ucs/utf is something we should support unconditionally across platforms. Bill At 04:26 PM 7/28/2005, you wrote: >hi, > >firstly apologies if i have gone about this all wrong; this is my first >contribution. > >it was mentioned in the status mail this morning (28th July) that testucs >needs to be ported to unix. i have attempted to do this. > >the testucs app tests the two functions apr_conv_utf8_to_ucs2 and >apr_conv_ucs2_to_utf8. These functions are only declared for win32. Looking at >this code there doesn't seem to be much that is win32 specific in it (in fact >it does compile unchanged on linux). So to get this test to work on unix i >just have to link this to functions into the unix shared lib. > >two ways i see to do this: > 1) a clean way: > i move the win32 arch dependant utf8 files > (include/arch/win32/apr_arch_utf8.h and misc/win32/utf8.c) to a common place > (include/apr_utf8.h and strings/apr_utf8.c (aplogies for the use of the > strings dir, but it seemed like to most appropriate. of course i can change > that)). Then update all win32 files that #include the old locations, change > the .dsp files (this i did manually so i could be wrong) and update the > test/internal/Makefile.in (to build the test) and the testucs.c file (to > reflect the include path changes) > > clean.patch that is attached does this. > > 2) a dirty way > i copied the win32 arch files to the unix arch directory. I updated the > test/internal/Makefile.in file to include the arch dependant files. The arch > directory that is included is set by the configure script. > > dirty.patch that is attached does this. > >both patches are based on version 1.1.1. > >you must ./buildconf and ./configure once applied (for both patches), since i >moved some files around. > >using both patches i have now run the testucs program on my linux box. the >testall program also reports success. the real (almost laughable) downside is >that i do not have a windows compile environment to test that i have not >broken it there. there is a distinct possibility that i have. > >i prefer the clean patch, but i don't now enough about the consequences to >comment on whether it is suitable. the dirty way would work better with >symbolic links not straight copies. > > >i hope that is what was required and that i have contributed in the correct way > >neale > >
