-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 02/18/2012 11:29 AM, Andreas Schwab wrote: > John Kearney <dethrop...@web.de> writes: > >> what I suggest will fix the UTF-8 case > > No, it won't. > >> and not affect the UTF-2 case. > > That is impossible. > > Andreas. >
Current code if (uvalue <= UCHAR_MAX) *cp = uvalue; else { temp = u32cconv (uvalue, cp); cp[temp] = '\0'; if (lenp) *lenp = temp; } Robust Code temp = u32cconv (uvalue, cp); cp[temp] = '\0'; if (lenp) *lenp = temp; Compromise solution if (uvalue <= 0x7f) *cp = uvalue; else { temp = u32cconv (uvalue, cp); cp[temp] = '\0'; if (lenp) *lenp = temp; } How can doing a direct assignment, in less cases break anything, if it does u32cconv is broken. And it does work for me, so impossible seems to be overstating it. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJPP39rAAoJEKUDtR0WmS052JIH/09at08oGR16hvj2blL4YxWJ V1Slbkh9O8pJ4DV9NOwEweIpjAxYUzRFzOEVV0tiYzeqISJ36uKnttewiP5VcRSv heS6QwOl5R3wnx0ecNkpLMo2nT054Fqd+OHSHFOgkBeAM28PVwjT+GmfFyCp1f4K hPevpejPLyxHYWaXJwy4+1XN0Wp/YatzEXr21pHgU7CPyMGYLbju4su0kNpYledj 5Zo3tT/cvoBGVysJo5AbQ8D07cG85eoARxz6erJatjKDKCUPl1kKdcikG3nGvnQc 66HdR/lJRShDh344uss6/4sw2R9LFut0QP+ChhJowQ9ZBI1uZo7/fn0gQv7gOdo= =fXLm -----END PGP SIGNATURE-----