utimens: cache whether utimensat syscall works
[pspp] / lib / argp-help.c
index a9843c0aa3b158c2477da8a1498863c432fd0e79..150a0ad28f37e681c739653eb2e32e61676d3f5e 100644 (file)
@@ -1,5 +1,5 @@
 /* Hierarchial argument parsing help output
-   Copyright (C) 1995-2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1995-2005, 2007, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -797,13 +797,11 @@ hol_entry_cmp (const struct hol_entry *entry1,
           first, but as they're not displayed, it doesn't matter where
           they are.  */
        {
-         char first1 = short1 ? short1 : long1 ? *long1 : 0;
-         char first2 = short2 ? short2 : long2 ? *long2 : 0;
-#ifdef _tolower
-         int lower_cmp = _tolower (first1) - _tolower (first2);
-#else
+         unsigned char first1 = short1 ? short1 : long1 ? *long1 : 0;
+         unsigned char first2 = short2 ? short2 : long2 ? *long2 : 0;
+         /* Use tolower, not _tolower, since only the former is
+            guaranteed to work on something already lower case.  */
          int lower_cmp = tolower (first1) - tolower (first2);
-#endif
          /* Compare ignoring case, except when the options are both the
             same letter, in which case lower-case always comes first.  */
          return lower_cmp ? lower_cmp :