aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Albinus2014-08-29 23:19:45 +0200
committerMichael Albinus2014-08-29 23:19:45 +0200
commitfb6cdfc0f0692ead110ecd80df52f894fca8fb50 (patch)
treec95414bf0553b291a41eacac4091c51904264263
parente6a4c15ff1a2dad24eb695d0f9f1e63398aadf9f (diff)
downloademacs-fb6cdfc0f0692ead110ecd80df52f894fca8fb50.tar.gz
emacs-fb6cdfc0f0692ead110ecd80df52f894fca8fb50.zip
* sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno.
-rw-r--r--src/ChangeLog12
-rw-r--r--src/sysdep.c4
2 files changed, 11 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 81381168c0c..19e9985b082 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,9 +1,13 @@
12014-08-29 Michael Albinus <michael.albinus@gmx.de>
2
3 * sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno.
4
12014-08-29 Paul Eggert <eggert@cs.ucla.edu> 52014-08-29 Paul Eggert <eggert@cs.ucla.edu>
2 6
3 * sysdep.c (str_collate): Do not look at errno after towlower_l. 7 * sysdep.c (str_collate) [__STDC_ISO_10646__]: Do not look at
4 errno's value is not specified after towlower_l. Instead, assume 8 errno after towlower_l. errno's value is not specified after
5 that towlower_l returns its argument on failure, which is portable 9 towlower_l. Instead, assume that towlower_l returns its argument
6 in practice. 10 on failure, which is portable in practice.
7 11
82014-08-29 Eli Zaretskii <eliz@gnu.org> 122014-08-29 Eli Zaretskii <eliz@gnu.org>
9 13
diff --git a/src/sysdep.c b/src/sysdep.c
index d36f5b29b08..e1da2f87eb2 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -3740,6 +3740,8 @@ str_collate (Lisp_Object s1, Lisp_Object s2,
3740 FETCH_STRING_CHAR_ADVANCE (*(p2+i-1), s2, i, i_byte); 3740 FETCH_STRING_CHAR_ADVANCE (*(p2+i-1), s2, i, i_byte);
3741 *(p2+len) = 0; 3741 *(p2+len) = 0;
3742 3742
3743 errno = 0;
3744
3743 if (STRINGP (locale)) 3745 if (STRINGP (locale))
3744 { 3746 {
3745 locale_t loc = newlocale (LC_COLLATE_MASK | LC_CTYPE_MASK, 3747 locale_t loc = newlocale (LC_COLLATE_MASK | LC_CTYPE_MASK,
@@ -3761,7 +3763,6 @@ str_collate (Lisp_Object s1, Lisp_Object s2,
3761 } 3763 }
3762 else 3764 else
3763 { 3765 {
3764 errno = 0;
3765 if (! NILP (ignore_case)) 3766 if (! NILP (ignore_case))
3766 for (int i = 1; i < 3; i++) 3767 for (int i = 1; i < 3; i++)
3767 { 3768 {
@@ -3769,6 +3770,7 @@ str_collate (Lisp_Object s1, Lisp_Object s2,
3769 for (; *p; p++) 3770 for (; *p; p++)
3770 *p = towlower (*p); 3771 *p = towlower (*p);
3771 } 3772 }
3773
3772 res = wcscoll (p1, p2); 3774 res = wcscoll (p1, p2);
3773 err = errno; 3775 err = errno;
3774 } 3776 }