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

Reply via email to