From 6ac7ea5027428c006ac79889ce9a2bb059450387 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 23 Aug 2006 11:31:43 +0000 Subject: r17749: more HPUX madness (This used to be commit 444e92890f08cdc0f5b84e964d1cc6a812e1073e) --- source4/lib/ldb/replace/config.m4 | 1 + source4/lib/ldb/replace/replace.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) (limited to 'source4/lib') diff --git a/source4/lib/ldb/replace/config.m4 b/source4/lib/ldb/replace/config.m4 index 794618e62d..ebc2568658 100644 --- a/source4/lib/ldb/replace/config.m4 +++ b/source4/lib/ldb/replace/config.m4 @@ -6,6 +6,7 @@ AC_CHECK_TYPE(comparison_fn_t, [AC_DEFINE(HAVE_COMPARISON_FN_T, 1,[Whether or not we have comparison_fn_t])]) AC_CHECK_FUNCS(strerror timegm strnlen) +AC_CHECK_FUNCS(strtoull __strtoull strtouq strtoll __strtoll strtoq) AC_HAVE_DECL(errno, [#include ]) AC_CHECK_HEADERS(strings.h) diff --git a/source4/lib/ldb/replace/replace.c b/source4/lib/ldb/replace/replace.c index 21d57605d0..2c2068f8f4 100644 --- a/source4/lib/ldb/replace/replace.c +++ b/source4/lib/ldb/replace/replace.c @@ -35,3 +35,35 @@ return i; } #endif + +#ifndef HAVE_STRTOLL + long long int strtoll(const char *str, char **endptr, int base) +{ +#ifdef HAVE_STRTOQ + return strtoq(str, endptr, base); +#elif defined(HAVE___STRTOLL) + return __strtoll(str, endptr, base); +#elif SIZEOF_LONG == SIZEOF_LONG_LONG + return (long long int) strtol(str, endptr, base); +#else +# error "You need a strtoll function" +#endif +} +#endif + + +#ifndef HAVE_STRTOULL + unsigned long long int strtoull(const char *str, char **endptr, int base) +{ +#ifdef HAVE_STRTOUQ + return strtouq(str, endptr, base); +#elif defined(HAVE___STRTOULL) + return __strtoull(str, endptr, base); +#elif SIZEOF_LONG == SIZEOF_LONG_LONG + return (unsigned long long int) strtoul(str, endptr, base); +#else +# error "You need a strtoull function" +#endif +} +#endif + -- cgit