sort: use long doubles only when effective
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 30 Apr 2010 22:23:38 +0000 (23:23 +0100)
committerPádraig Brady <P@draigBrady.com>
Sat, 1 May 2010 22:25:39 +0000 (23:25 +0100)
* src/sort.c (general_numcompare): Don't use long double if strtold
is not available, as it may introduce needless overhead.

src/sort.c

index a815244..54b97e2 100644 (file)
@@ -1856,15 +1856,17 @@ general_numcompare (const char *sa, const char *sb)
      only if A and B can't be compared more cheaply/accurately.  */
 
 #if HAVE_C99_STRTOLD /* provided by c-strtold module.  */
-# define STRTOD strtold
+# define long_double long double
 #else
-# define STRTOD strtod
+# define long_double double
+# undef strtold
+# define strtold strtod
 #endif
 
   char *ea;
   char *eb;
-  long double a = STRTOD (sa, &ea);
-  long double b = STRTOD (sb, &eb);
+  long_double a = strtold (sa, &ea);
+  long_double b = strtold (sb, &eb);
 
   /* Put conversion errors at the start of the collating sequence.  */
   if (sa == ea)