From: Paul Eggert Date: Fri, 29 Aug 2014 20:16:40 +0000 (-0700) Subject: * sysdep.c (str_collate): Do not look at errno after towlower_l. X-Git-Tag: emacs-25.0.90~2635^2~679^2~395 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7421589fc82419836e701e0cd95b1cdf0df37319;p=emacs.git * sysdep.c (str_collate): Do not look at errno after towlower_l. errno's value is not specified after towlower_l. Instead, assume that towlower_l returns its argument on failure, which is portable in practice. --- diff --git a/src/ChangeLog b/src/ChangeLog index 181a43d058f..81381168c0c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2014-08-29 Paul Eggert + + * sysdep.c (str_collate): Do not look at errno after towlower_l. + errno's value is not specified after towlower_l. Instead, assume + that towlower_l returns its argument on failure, which is portable + in practice. + 2014-08-29 Eli Zaretskii * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): Doc fix. diff --git a/src/sysdep.c b/src/sysdep.c index 52a72385f46..d36f5b29b08 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -3746,24 +3746,16 @@ str_collate (Lisp_Object s1, Lisp_Object s2, SSDATA (locale), 0); if (!loc) error ("Wrong locale: %s", strerror (errno)); - errno = 0; if (! NILP (ignore_case)) for (int i = 1; i < 3; i++) { wchar_t *p = (i == 1) ? p1 : p2; for (; *p; p++) - { - *p = towlower_l (*p, loc); - if (errno) - break; - } - if (errno) - break; + *p = towlower_l (*p, loc); } - if (! errno) - res = wcscoll_l (p1, p2, loc); + res = wcscoll_l (p1, p2, loc); err = errno; freelocale (loc); }