mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-05-28 04:35:40 -04:00
Fixed compile on Tru64 5.1b (Ciro Iriarte - 1515435)
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1438 f882894a-f735-0410-b71e-b25c423dba1c
This commit is contained in:
parent
679f03fbee
commit
c46acd0f4b
7 changed files with 145 additions and 1 deletions
|
|
@ -184,3 +184,4 @@ Jason Kau
|
|||
Michael Tiernan
|
||||
Jeremy Reed
|
||||
Holger Weiss
|
||||
Cire Iriarte
|
||||
|
|
|
|||
81
lib/c-strtod.c
Normal file
81
lib/c-strtod.c
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
/* Convert string to double, using the C locale.
|
||||
|
||||
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
||||
|
||||
/* Written by Paul Eggert. */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include "c-strtod.h"
|
||||
|
||||
#include <locale.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "xalloc.h"
|
||||
|
||||
#if LONG
|
||||
# define C_STRTOD c_strtold
|
||||
# define DOUBLE long double
|
||||
# define STRTOD_L strtold_l
|
||||
#else
|
||||
# define C_STRTOD c_strtod
|
||||
# define DOUBLE double
|
||||
# define STRTOD_L strtod_l
|
||||
#endif
|
||||
|
||||
/* c_strtold falls back on strtod if strtold doesn't conform to C99. */
|
||||
#if LONG && HAVE_C99_STRTOLD
|
||||
# define STRTOD strtold
|
||||
#else
|
||||
# define STRTOD strtod
|
||||
#endif
|
||||
|
||||
DOUBLE
|
||||
C_STRTOD (char const *nptr, char **endptr)
|
||||
{
|
||||
DOUBLE r;
|
||||
|
||||
#ifdef LC_ALL_MASK
|
||||
|
||||
locale_t c_locale = newlocale (LC_ALL_MASK, "C", 0);
|
||||
r = STRTOD_L (nptr, endptr, c_locale);
|
||||
freelocale (c_locale);
|
||||
|
||||
#else
|
||||
|
||||
char *saved_locale = setlocale (LC_NUMERIC, NULL);
|
||||
|
||||
if (saved_locale)
|
||||
{
|
||||
saved_locale = xstrdup (saved_locale);
|
||||
setlocale (LC_NUMERIC, "C");
|
||||
}
|
||||
|
||||
r = STRTOD (nptr, endptr);
|
||||
|
||||
if (saved_locale)
|
||||
{
|
||||
setlocale (LC_NUMERIC, saved_locale);
|
||||
free (saved_locale);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return r;
|
||||
}
|
||||
2
lib/c-strtod.h
Normal file
2
lib/c-strtod.h
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
double c_strtod (char const *, char **);
|
||||
long double c_strtold (char const *, char **);
|
||||
2
lib/c-strtold.c
Normal file
2
lib/c-strtold.c
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
#define LONG 1
|
||||
#include "c-strtod.c"
|
||||
55
m4/c-strtod.m4
Normal file
55
m4/c-strtod.m4
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# c-strtod.m4 serial 6
|
||||
|
||||
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# Written by Paul Eggert.
|
||||
|
||||
AC_DEFUN([gl_C99_STRTOLD],
|
||||
[
|
||||
AC_CACHE_CHECK([whether strtold conforms to C99],
|
||||
[gl_cv_func_c99_strtold],
|
||||
[AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[/* On HP-UX before 11.23, strtold returns a struct instead of
|
||||
long double. Reject implementations like that, by requiring
|
||||
compatibility with the C99 prototype. */
|
||||
#include <stdlib.h>
|
||||
static long double (*p) (char const *, char **) = strtold;
|
||||
static long double
|
||||
test (char const *nptr, char **endptr)
|
||||
{
|
||||
long double r;
|
||||
r = strtold (nptr, endptr);
|
||||
return r;
|
||||
}]],
|
||||
[[return test ("1.0", NULL) != 1 || p ("1.0", NULL) != 1;]])],
|
||||
[gl_cv_func_c99_strtold=yes],
|
||||
[gl_cv_func_c99_strtold=no])])
|
||||
if test $gl_cv_func_c99_strtold = yes; then
|
||||
AC_DEFINE([HAVE_C99_STRTOLD], 1, [Define to 1 if strtold conforms to C99.])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_C_STRTOD],
|
||||
[
|
||||
AC_LIBSOURCES([c-strtod.c, c-strtod.h])
|
||||
AC_LIBOBJ([c-strtod])
|
||||
|
||||
dnl Prerequisites of lib/c-strtod.c.
|
||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||
:
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_C_STRTOLD],
|
||||
[
|
||||
AC_LIBSOURCES([c-strtold.c, c-strtod.h])
|
||||
AC_LIBOBJ([c-strtold])
|
||||
|
||||
dnl Prerequisites of lib/c-strtold.c.
|
||||
AC_REQUIRE([gl_C_STRTOD])
|
||||
AC_REQUIRE([gl_C99_STRTOLD])
|
||||
:
|
||||
])
|
||||
|
|
@ -11,6 +11,7 @@ dnl Usually in coreutils' prereq.m4, but this is a subset that we need
|
|||
AC_DEFUN([np_COREUTILS],
|
||||
[
|
||||
AC_REQUIRE([AM_STDBOOL_H])
|
||||
AC_REQUIRE([gl_C_STRTOLD])
|
||||
AC_REQUIRE([gl_GETOPT])
|
||||
AC_REQUIRE([gl_AFS])
|
||||
AC_REQUIRE([gl_EXITFAIL])
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ localedir = $(datadir)/locale
|
|||
DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
|
||||
LIBS = @LIBINTL@ @LIBS@ @SSLLIBS@
|
||||
MATHLIBS = @MATHLIBS@
|
||||
AM_CFLAGS = -Wall
|
||||
|
||||
# This is not portable. Run ". tools/devmode" to get development compile flags
|
||||
#AM_CFLAGS = -Wall
|
||||
|
||||
libexec_PROGRAMS = check_apt check_disk check_dummy check_http check_load \
|
||||
check_mrtg check_mrtgtraf check_ntp check_nwstat check_overcr check_ping \
|
||||
|
|
|
|||
Loading…
Reference in a new issue