diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog index f7368a44c347bd75c276ca1456b9de8c7c1ec340..706beaaa0a5cadbbcd46a47ee6a95cacc8d14516 100644 --- a/libdecnumber/ChangeLog +++ b/libdecnumber/ChangeLog @@ -1,3 +1,8 @@ +2005-12-20 Roger Sayle <roger@eyesopen.com> + + * decNumber.c (decStrEq): Cast string contents to unsigned char + instead of int before calling tolower. + 2005-12-20 Roger Sayle <roger@eyesopen.com> * decNumber.c (decStrEq): Cast operands to int before calling diff --git a/libdecnumber/decNumber.c b/libdecnumber/decNumber.c index 0625e9f2541b442ffc2875f264e3ecd6e33224bc..bc11ace87872996d2914768d3cec8f79d6a1e12d 100644 --- a/libdecnumber/decNumber.c +++ b/libdecnumber/decNumber.c @@ -5438,14 +5438,16 @@ decStrEq (const char *str1, const char *str2) { for (;; str1++, str2++) { - if (*str1 == *str2) + unsigned char u1 = (unsigned char) *str1; + unsigned char u2 = (unsigned char) *str2; + if (u1 == u2) { - if (*str1 == '\0') + if (u1 == '\0') break; } else { - if (tolower ((int) *str1) != tolower ((int) *str2)) + if (tolower (u1) != tolower (u2)) return 0; } } /* stepping */