2009/3/22 Robert Lunnon <b...@optusnet.com.au>: > I get this error under solaris building wine. > Any clues would be welcome (Things have probably changed a lot since I last > hacked on Wine) > > make[2]: Entering directory `/export/home/src/wine2004/wine/dlls/kernel32' > ../../tools/wrc/wrc --nostdinc -I. -I. -I../../include -I../../include > -D__WINESRC__ -D_KERNEL32_ -fokernel. res kernel.rc > Source: ¤Q¤ë a4 51 a4 eb > Unicode: 5341 6708 > Back: ¢Ì¤ë a2 cc a4 eb > nls/cht.nls:84:16: Error: String ¤Q¤ë does not convert identically to > Unicode and back in codepage 950. Try us ing a Unicode string > instead
There is a problem with converting to/from codepages in wrc on your system, but the code that does should not be system-dependent (the character data is all in libwine). The Unicode string dumped above looks correct, but the first two bytes of "Back" are wrong. wrc uses libs/wine/wctomb.c:wine_cp_wcstombs to do the conversion from UCS-16 -> cp950 and in this case I believe it will specifically use the wcstombs_dbcs function. Can you change this function to dump out *src, uni2cp_high[*src >> 8] and res inside the loop and run wrc again on the file above? Also, what compiler did you use to compile wrc and libwine? -- Rob Shearman