Once my brain re-engaged, I realized that the compare routines are, indeed, incorrect. _And_ my fix was wrong, too. Here's a correct, working, tested version of the comparison loop:
while ((*cptr1 != 0) && (*cptr2 != 0))
{
wint_t wch1 = towupper(*cptr1);
wint_t wch2 = towupper(*cptr2);
if (wch1 != wch2)
break;
cptr1++;
cptr2++;
}
return (int)(*cptr1 - *cptr2);
Note that Iconv390TransService also has the same bug.
--Bill
