pattern++;
else if (*pattern == '[' && ((special = *(pattern + 1)) == '.' || special == '=' || special == ':')) {
cp = (pattern += 2);
- while(cp = strchr(cp, special)) {
+ while((cp = strchr(cp, special))) {
if (*(cp + 1) == ']')
break;
cp++;
*(cp + 3) != ']')
return (RANGE_ERROR);
len = __collate_equiv_match(ec, NULL, 0, test, string, strlen(string), strmbs, &sclen, loc);
- if (len < 0)
+ if (len == (size_t)-1) {
return (RANGE_ERROR);
+ }
if (len > 0) {
ok = 1;
string += sclen;
if (c2 == EOS)
return (RANGE_ERROR);
- if (c2 == '[' && (special = *pattern) == '.' || special == '=' || special == ':') {
+ if ((c2 == '[' && (special = *pattern) == '.') || special == '=' || special == ':') {
/* no equivalence classes or character classes as end of range */
if (special == '=' || special == ':')
return (RANGE_ERROR);
cp = ++pattern;
- while(cp = strchr(cp, special)) {
+ while((cp = strchr(cp, special))) {
if (*(cp + 1) == ']')
break;
cp++;