diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2010-04-30 23:23:38 +0100 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2010-05-01 23:25:39 +0100 |
commit | d861519d2a3214df2b4cd2ee6d59e8772371f780 (patch) | |
tree | 12855794fac022ad9d7674b9d34fbfede7b6161e | |
parent | 5e9a7ae46b58ec8c59157b4e16c3773b1e72802b (diff) | |
download | coreutils-d861519d2a3214df2b4cd2ee6d59e8772371f780.tar.xz |
sort: use long doubles only when effective
* src/sort.c (general_numcompare): Don't use long double if strtold
is not available, as it may introduce needless overhead.
-rw-r--r-- | src/sort.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/sort.c b/src/sort.c index a81524470..54b97e22a 100644 --- a/src/sort.c +++ b/src/sort.c @@ -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) |