One can't hoist this out of the 'if', because intervening calls to
newlocale, twolower, etc. can change errno.
+2014-08-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * sysdep.c (str_collate): Clear errno just before wcscoll(_l).
+ One can't hoist this out of the 'if', because intervening calls to
+ newlocale, twolower, etc. can change errno.
+
2014-08-30 Eli Zaretskii <eliz@gnu.org>
* sysdep.c (str_collate) [__STDC_ISO_10646__]: Improve the
FETCH_STRING_CHAR_ADVANCE (*(p2+i-1), s2, i, i_byte);
*(p2+len) = 0;
- errno = 0;
-
if (STRINGP (locale))
{
locale_t loc = newlocale (LC_COLLATE_MASK | LC_CTYPE_MASK,
*p = towlower_l (*p, loc);
}
+ errno = 0;
res = wcscoll_l (p1, p2, loc);
err = errno;
freelocale (loc);
*p = towlower (*p);
}
+ errno = 0;
res = wcscoll (p1, p2);
err = errno;
}