diff options
author | Max Kellermann <max@musicpd.org> | 2018-02-09 20:27:00 +0100 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2018-02-09 22:54:22 +0100 |
commit | 0f8d223c7fcc7e61808716dbb740786b9d95a991 (patch) | |
tree | 5913e9aa1e3a90aff0778bf32a6e83161fdf09c0 /src | |
parent | 19a2885fd5174f65a17ccb20d2fc790269baea02 (diff) |
protocol/ArgParser: move strtof()/strtod() switch to util/NumberParser.hxx
Diffstat (limited to 'src')
-rw-r--r-- | src/protocol/ArgParser.cxx | 8 | ||||
-rw-r--r-- | src/util/NumberParser.hxx | 5 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/protocol/ArgParser.cxx b/src/protocol/ArgParser.cxx index 2665270e6..47fdfa405 100644 --- a/src/protocol/ArgParser.cxx +++ b/src/protocol/ArgParser.cxx @@ -21,6 +21,7 @@ #include "ArgParser.hxx" #include "Ack.hxx" #include "Chrono.hxx" +#include "util/NumberParser.hxx" #include <stdlib.h> @@ -151,12 +152,7 @@ float ParseCommandArgFloat(const char *s) { char *endptr; -#ifdef ANDROID - /* strtof() requires API level 21 */ - auto value = strtod(s, &endptr); -#else - auto value = strtof(s, &endptr); -#endif + auto value = ParseFloat(s, &endptr); if (endptr == s || *endptr != 0) throw FormatProtocolError(ACK_ERROR_ARG, "Float expected: %s", s); diff --git a/src/util/NumberParser.hxx b/src/util/NumberParser.hxx index 47e9aacbd..67d42affa 100644 --- a/src/util/NumberParser.hxx +++ b/src/util/NumberParser.hxx @@ -78,7 +78,12 @@ ParseDouble(const char *p, char **endptr=nullptr) static inline float ParseFloat(const char *p, char **endptr=nullptr) { +#if defined(__BIONIC__) && __ANDROID_API__ < 21 + /* strtof() requires API level 21 */ return (float)ParseDouble(p, endptr); +#else + return strtof(p, endptr); +#endif } #endif |