emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r117776: * sysdep.c (str_collate): Do not look at er


From: Paul Eggert
Subject: [Emacs-diffs] trunk r117776: * sysdep.c (str_collate): Do not look at errno after towlower_l.
Date: Fri, 29 Aug 2014 20:16:44 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117776
revision-id: address@hidden
parent: address@hidden
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Fri 2014-08-29 13:16:40 -0700
message:
  * 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.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/sysdep.c                   sysdep.c-20091113204419-o5vbwnq5f7feedwu-448
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-08-29 19:18:06 +0000
+++ b/src/ChangeLog     2014-08-29 20:16:40 +0000
@@ -1,3 +1,10 @@
+2014-08-29  Paul Eggert  <address@hidden>
+
+       * 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  <address@hidden>
 
        * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): Doc fix.

=== modified file 'src/sysdep.c'
--- a/src/sysdep.c      2014-08-29 19:18:06 +0000
+++ b/src/sysdep.c      2014-08-29 20:16:40 +0000
@@ -3746,24 +3746,16 @@
                                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);
     }


reply via email to

[Prev in Thread] Current Thread [Next in Thread]