diff options
| author | Michael Albinus | 2014-08-29 23:19:45 +0200 |
|---|---|---|
| committer | Michael Albinus | 2014-08-29 23:19:45 +0200 |
| commit | fb6cdfc0f0692ead110ecd80df52f894fca8fb50 (patch) | |
| tree | c95414bf0553b291a41eacac4091c51904264263 | |
| parent | e6a4c15ff1a2dad24eb695d0f9f1e63398aadf9f (diff) | |
| download | emacs-fb6cdfc0f0692ead110ecd80df52f894fca8fb50.tar.gz emacs-fb6cdfc0f0692ead110ecd80df52f894fca8fb50.zip | |
* sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno.
| -rw-r--r-- | src/ChangeLog | 12 | ||||
| -rw-r--r-- | src/sysdep.c | 4 |
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 @@ | |||
| 1 | 2014-08-29 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | * sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno. | ||
| 4 | |||
| 1 | 2014-08-29 Paul Eggert <eggert@cs.ucla.edu> | 5 | 2014-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 | ||
| 8 | 2014-08-29 Eli Zaretskii <eliz@gnu.org> | 12 | 2014-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 | } |