mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
Regenerate.
This commit is contained in:
parent
fa2c4f5619
commit
a451f14b09
14 changed files with 559 additions and 62 deletions
3
aclocal.m4
vendored
3
aclocal.m4
vendored
|
|
@ -984,4 +984,7 @@ AC_SUBST([am__tar])
|
||||||
AC_SUBST([am__untar])
|
AC_SUBST([am__untar])
|
||||||
]) # _AM_PROG_TAR
|
]) # _AM_PROG_TAR
|
||||||
|
|
||||||
|
m4_include([m4/00gnulib.m4])
|
||||||
|
m4_include([m4/c-strtod.m4])
|
||||||
|
m4_include([m4/gnulib-common.m4])
|
||||||
m4_include([m4/gnulib-comp.m4])
|
m4_include([m4/gnulib-comp.m4])
|
||||||
|
|
|
||||||
69
configure
vendored
69
configure
vendored
|
|
@ -2943,6 +2943,7 @@ fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
|
||||||
$as_echo "$MKDIR_P" >&6; }
|
$as_echo "$MKDIR_P" >&6; }
|
||||||
|
|
||||||
|
|
||||||
mkdir_p="$MKDIR_P"
|
mkdir_p="$MKDIR_P"
|
||||||
case $mkdir_p in
|
case $mkdir_p in
|
||||||
[\\/$]* | ?:[\\/]*) ;;
|
[\\/$]* | ?:[\\/]*) ;;
|
||||||
|
|
@ -5183,7 +5184,8 @@ fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Code from module dummy:
|
# Code from module ftoastr:
|
||||||
|
# Code from module intprops:
|
||||||
|
|
||||||
|
|
||||||
# On Suns, sometimes $CPP names a directory.
|
# On Suns, sometimes $CPP names a directory.
|
||||||
|
|
@ -13737,6 +13739,57 @@ fi
|
||||||
|
|
||||||
# Configure gnulib.
|
# Configure gnulib.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
LIBC_FATAL_STDERR_=1
|
||||||
|
export LIBC_FATAL_STDERR_
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strtold conforms to C99" >&5
|
||||||
|
$as_echo_n "checking whether strtold conforms to C99... " >&6; }
|
||||||
|
if ${gl_cv_func_c99_strtold+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
/* 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;
|
||||||
|
}
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return test ("1.0", NULL) != 1 || p ("1.0", NULL) != 1;
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
gl_cv_func_c99_strtold=yes
|
||||||
|
else
|
||||||
|
gl_cv_func_c99_strtold=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_c99_strtold" >&5
|
||||||
|
$as_echo "$gl_cv_func_c99_strtold" >&6; }
|
||||||
|
if test $gl_cv_func_c99_strtold = yes; then
|
||||||
|
|
||||||
|
$as_echo "#define HAVE_C99_STRTOLD 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if false; then
|
if false; then
|
||||||
GL_COND_LIBTOOL_TRUE=
|
GL_COND_LIBTOOL_TRUE=
|
||||||
GL_COND_LIBTOOL_FALSE='#'
|
GL_COND_LIBTOOL_FALSE='#'
|
||||||
|
|
@ -13754,9 +13807,14 @@ fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
gl_COMMON
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
gl_source_base='lib'
|
gl_source_base='lib'
|
||||||
# Code from module dummy:
|
# Code from module ftoastr:
|
||||||
|
|
||||||
|
# Code from module intprops:
|
||||||
# End of code from modules
|
# End of code from modules
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -13772,7 +13830,10 @@ fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
gl_COMMON
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
gl_source_base='tests'
|
gl_source_base='tests'
|
||||||
gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
|
gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
# the same distribution terms as the rest of that program.
|
# the same distribution terms as the rest of that program.
|
||||||
#
|
#
|
||||||
# Generated by gnulib-tool.
|
# Generated by gnulib-tool.
|
||||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --makefile-name=gnulib.mk --no-libtool --macro-prefix=gl --no-vc-files dummy
|
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --makefile-name=gnulib.mk --no-libtool --macro-prefix=gl --no-vc-files ftoastr
|
||||||
|
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
|
@ -49,8 +49,10 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||||
$(srcdir)/gnulib.mk
|
$(srcdir)/gnulib.mk
|
||||||
subdir = lib
|
subdir = lib
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gnulib-comp.m4 \
|
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
||||||
$(top_srcdir)/m4/getopt.m4 $(top_srcdir)/configure.in
|
$(top_srcdir)/m4/c-strtod.m4 $(top_srcdir)/m4/gnulib-common.m4 \
|
||||||
|
$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/getopt.m4 \
|
||||||
|
$(top_srcdir)/configure.in
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
|
@ -62,7 +64,8 @@ AR = ar
|
||||||
ARFLAGS = cru
|
ARFLAGS = cru
|
||||||
libgnu_a_AR = $(AR) $(ARFLAGS)
|
libgnu_a_AR = $(AR) $(ARFLAGS)
|
||||||
am__DEPENDENCIES_1 =
|
am__DEPENDENCIES_1 =
|
||||||
am_libgnu_a_OBJECTS = dummy.$(OBJEXT)
|
am_libgnu_a_OBJECTS = ftoastr.$(OBJEXT) dtoastr.$(OBJEXT) \
|
||||||
|
ldtoastr.$(OBJEXT)
|
||||||
libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
|
libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
|
||||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
am__depfiles_maybe = depfiles
|
am__depfiles_maybe = depfiles
|
||||||
|
|
@ -311,11 +314,11 @@ top_srcdir = @top_srcdir@
|
||||||
version = @version@
|
version = @version@
|
||||||
x_default_search_path = @x_default_search_path@
|
x_default_search_path = @x_default_search_path@
|
||||||
BUILT_SOURCES =
|
BUILT_SOURCES =
|
||||||
EXTRA_DIST =
|
EXTRA_DIST = intprops.h
|
||||||
MOSTLYCLEANFILES = core *.stackdump
|
MOSTLYCLEANFILES = core *.stackdump
|
||||||
noinst_LIBRARIES = libgnu.a
|
noinst_LIBRARIES = libgnu.a
|
||||||
DEFAULT_INCLUDES = -I. -I../src -I$(top_srcdir)/src
|
DEFAULT_INCLUDES = -I. -I../src -I$(top_srcdir)/src
|
||||||
libgnu_a_SOURCES = dummy.c
|
libgnu_a_SOURCES = ftoastr.h ftoastr.c dtoastr.c ldtoastr.c
|
||||||
libgnu_a_LIBADD = $(gl_LIBOBJS)
|
libgnu_a_LIBADD = $(gl_LIBOBJS)
|
||||||
libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
|
libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
|
||||||
EXTRA_libgnu_a_SOURCES =
|
EXTRA_libgnu_a_SOURCES =
|
||||||
|
|
@ -368,7 +371,9 @@ mostlyclean-compile:
|
||||||
distclean-compile:
|
distclean-compile:
|
||||||
-rm -f *.tab.c
|
-rm -f *.tab.c
|
||||||
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtoastr.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftoastr.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldtoastr.Po@am__quote@
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||||
|
|
|
||||||
2
lib/dtoastr.c
Normal file
2
lib/dtoastr.c
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#define LENGTH 2
|
||||||
|
#include "ftoastr.c"
|
||||||
42
lib/dummy.c
42
lib/dummy.c
|
|
@ -1,42 +0,0 @@
|
||||||
/* A dummy file, to prevent empty libraries from breaking builds.
|
|
||||||
Copyright (C) 2004, 2007, 2009-2011 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
/* Some systems, reportedly OpenBSD and Mac OS X, refuse to create
|
|
||||||
libraries without any object files. You might get an error like:
|
|
||||||
|
|
||||||
> ar cru .libs/libgl.a
|
|
||||||
> ar: no archive members specified
|
|
||||||
|
|
||||||
Compiling this file, and adding its object file to the library, will
|
|
||||||
prevent the library from being empty. */
|
|
||||||
|
|
||||||
/* Some systems, such as Solaris with cc 5.0, refuse to work with libraries
|
|
||||||
that don't export any symbol. You might get an error like:
|
|
||||||
|
|
||||||
> cc ... libgnu.a
|
|
||||||
> ild: (bad file) garbled symbol table in archive ../gllib/libgnu.a
|
|
||||||
|
|
||||||
Compiling this file, and adding its object file to the library, will
|
|
||||||
prevent the library from exporting no symbols. */
|
|
||||||
|
|
||||||
#ifdef __sun
|
|
||||||
/* This declaration ensures that the library will export at least 1 symbol. */
|
|
||||||
int gl_dummy_symbol;
|
|
||||||
#else
|
|
||||||
/* This declaration is solely to ensure that after preprocessing
|
|
||||||
this file is never empty. */
|
|
||||||
typedef int dummy;
|
|
||||||
#endif
|
|
||||||
136
lib/ftoastr.c
Normal file
136
lib/ftoastr.c
Normal file
|
|
@ -0,0 +1,136 @@
|
||||||
|
/* floating point to accurate string
|
||||||
|
|
||||||
|
Copyright (C) 2010-2011 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paul Eggert. */
|
||||||
|
|
||||||
|
/* This code can misbehave on some buggy or older platforms, when
|
||||||
|
operating on arguments on floating types other than 'double', or
|
||||||
|
when given unusual combinations of options. Gnulib's
|
||||||
|
snprintf-posix module works around many of these problems.
|
||||||
|
|
||||||
|
This code relies on sprintf, strtod, etc. operating accurately;
|
||||||
|
otherwise, the resulting strings could be inaccurate or too long. */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include "ftoastr.h"
|
||||||
|
|
||||||
|
#include "intprops.h"
|
||||||
|
#include <float.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#if LENGTH == 3
|
||||||
|
# define FLOAT long double
|
||||||
|
# define FLOAT_DIG LDBL_DIG
|
||||||
|
# define FLOAT_MIN LDBL_MIN
|
||||||
|
# define FLOAT_PREC_BOUND _GL_LDBL_PREC_BOUND
|
||||||
|
# define FTOASTR ldtoastr
|
||||||
|
# define STRTOF strtold
|
||||||
|
#elif LENGTH == 2
|
||||||
|
# define FLOAT double
|
||||||
|
# define FLOAT_DIG DBL_DIG
|
||||||
|
# define FLOAT_MIN DBL_MIN
|
||||||
|
# define FLOAT_PREC_BOUND _GL_DBL_PREC_BOUND
|
||||||
|
# define FTOASTR dtoastr
|
||||||
|
# define STRTOF strtod
|
||||||
|
#else
|
||||||
|
# define LENGTH 1
|
||||||
|
# define FLOAT float
|
||||||
|
# define FLOAT_DIG FLT_DIG
|
||||||
|
# define FLOAT_MIN FLT_MIN
|
||||||
|
# define FLOAT_PREC_BOUND _GL_FLT_PREC_BOUND
|
||||||
|
# define FTOASTR ftoastr
|
||||||
|
# define STRTOF strtof
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* On pre-C99 hosts, approximate strtof and strtold with strtod. This
|
||||||
|
may generate one or two extra digits, but that's better than not
|
||||||
|
working at all. Assume that strtof works if strtold does. */
|
||||||
|
#if LENGTH != 2 && ! HAVE_C99_STRTOLD
|
||||||
|
# undef STRTOF
|
||||||
|
# define STRTOF strtod
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* On hosts where it's not known that snprintf works, use sprintf to
|
||||||
|
implement the subset needed here. Typically BUFSIZE is big enough
|
||||||
|
and there's little or no performance hit. */
|
||||||
|
#if ! GNULIB_SNPRINTF
|
||||||
|
# undef snprintf
|
||||||
|
# define snprintf ftoastr_snprintf
|
||||||
|
static int
|
||||||
|
ftoastr_snprintf (char *buf, size_t bufsize, char const *format,
|
||||||
|
int width, int prec, FLOAT x)
|
||||||
|
{
|
||||||
|
char width_0_buffer[LENGTH == 1 ? FLT_BUFSIZE_BOUND
|
||||||
|
: LENGTH == 2 ? DBL_BUFSIZE_BOUND
|
||||||
|
: LDBL_BUFSIZE_BOUND];
|
||||||
|
int n = width;
|
||||||
|
if (bufsize < sizeof width_0_buffer)
|
||||||
|
{
|
||||||
|
n = sprintf (width_0_buffer, format, 0, prec, x);
|
||||||
|
if (n < 0)
|
||||||
|
return n;
|
||||||
|
if (n < width)
|
||||||
|
n = width;
|
||||||
|
}
|
||||||
|
if (n < bufsize)
|
||||||
|
n = sprintf (buf, format, width, prec, x);
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int
|
||||||
|
FTOASTR (char *buf, size_t bufsize, int flags, int width, FLOAT x)
|
||||||
|
{
|
||||||
|
/* The following method is simple but slow.
|
||||||
|
For ideas about speeding things up, please see:
|
||||||
|
|
||||||
|
Florian Loitsch, Printing floating-point numbers quickly and accurately
|
||||||
|
with integers. ACM SIGPLAN notices 46, 6 (June 2010), 233-243
|
||||||
|
<http://dx.doi.org/10.1145/1809028.1806623>; also see the
|
||||||
|
2010-03-21 draft <http://florian.loitsch.com/tmp/article.pdf>. */
|
||||||
|
|
||||||
|
char format[sizeof "%-+ 0*.*Lg"];
|
||||||
|
FLOAT abs_x = x < 0 ? -x : x;
|
||||||
|
int prec;
|
||||||
|
|
||||||
|
char *p = format;
|
||||||
|
*p++ = '%';
|
||||||
|
|
||||||
|
/* Support flags that generate output parsable by strtof. */
|
||||||
|
*p = '-'; p += (flags & FTOASTR_LEFT_JUSTIFY ) != 0;
|
||||||
|
*p = '+'; p += (flags & FTOASTR_ALWAYS_SIGNED ) != 0;
|
||||||
|
*p = ' '; p += (flags & FTOASTR_SPACE_POSITIVE) != 0;
|
||||||
|
*p = '0'; p += (flags & FTOASTR_ZERO_PAD ) != 0;
|
||||||
|
|
||||||
|
*p++ = '*';
|
||||||
|
*p++ = '.';
|
||||||
|
*p++ = '*';
|
||||||
|
*p = 'L'; p += 2 < LENGTH;
|
||||||
|
*p++ = flags & FTOASTR_UPPER_E ? 'G' : 'g';
|
||||||
|
*p = '\0';
|
||||||
|
|
||||||
|
for (prec = abs_x < FLOAT_MIN ? 1 : FLOAT_DIG; ; prec++)
|
||||||
|
{
|
||||||
|
int n = snprintf (buf, bufsize, format, width, prec, x);
|
||||||
|
if (n < 0
|
||||||
|
|| FLOAT_PREC_BOUND <= prec
|
||||||
|
|| (n < bufsize && STRTOF (buf, NULL) == x))
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
}
|
||||||
144
lib/ftoastr.h
Normal file
144
lib/ftoastr.h
Normal file
|
|
@ -0,0 +1,144 @@
|
||||||
|
/* floating point to accurate string
|
||||||
|
|
||||||
|
Copyright (C) 2010-2011 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paul Eggert. */
|
||||||
|
|
||||||
|
#ifndef _GL_FTOASTR_H
|
||||||
|
|
||||||
|
#include "intprops.h"
|
||||||
|
#include <float.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
/* Store into BUF (of size BUFSIZE) an accurate minimal-precision
|
||||||
|
string representation of a floating point number. FLAGS affect the
|
||||||
|
formatting of the number. Pad the output string with spaces as
|
||||||
|
necessary to width WIDTH bytes, in the style of printf. WIDTH must
|
||||||
|
be nonnegative. X is the floating-point number to be converted.
|
||||||
|
|
||||||
|
Return the number of bytes stored into BUF, not counting the
|
||||||
|
terminating null. However, do not overrun BUF: if BUF is too
|
||||||
|
small, return a fairly tight (but not necessarily exact) upper
|
||||||
|
bound on the value that would have been returned if BUF had been
|
||||||
|
big enough. If SIZE is zero, BUF may be a null pointer. On error
|
||||||
|
(e.g., returned value would exceed INT_MAX), return -1 and set
|
||||||
|
errno.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
char buf[DBL_BUFSIZE_BOUND];
|
||||||
|
int r = dtoastr (buf, sizeof buf, 0, 0, 0.1);
|
||||||
|
|
||||||
|
In the C locale, this sets R to 3 and stores "0.1" into BUF. */
|
||||||
|
|
||||||
|
int ftoastr (char *buf, size_t bufsize, int flags, int width, float x);
|
||||||
|
int dtoastr (char *buf, size_t bufsize, int flags, int width, double x);
|
||||||
|
int ldtoastr (char *buf, size_t bufsize, int flags, int width, long double x);
|
||||||
|
|
||||||
|
/* Flag values for ftoastr etc. These can be ORed together. */
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
/* Left justify within the width; the default is right justification. */
|
||||||
|
FTOASTR_LEFT_JUSTIFY = 1,
|
||||||
|
|
||||||
|
/* Output "+" before positive numbers; the default outputs nothing. */
|
||||||
|
FTOASTR_ALWAYS_SIGNED = 2,
|
||||||
|
|
||||||
|
/* Output " " before positive numbers; ignored if
|
||||||
|
FTOASTER_ALWAYS_SIGNED is also given. */
|
||||||
|
FTOASTR_SPACE_POSITIVE = 4,
|
||||||
|
|
||||||
|
/* Pad with zeros instead of spaces; ignored if FTOASTR_LEFT_JUSTIFY
|
||||||
|
is also given. */
|
||||||
|
FTOASTR_ZERO_PAD = 8,
|
||||||
|
|
||||||
|
/* Use 'E' instead of 'e' before the exponent. */
|
||||||
|
FTOASTR_UPPER_E = 16
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* _GL_FLT_PREC_BOUND is an upper bound on the precision needed to
|
||||||
|
represent a float value without losing information. Likewise for
|
||||||
|
_GL_DBL_PREC_BOUND and double, and _GL_LDBL_PREC_BOUND and long double. */
|
||||||
|
|
||||||
|
#if FLT_RADIX == 10 /* decimal floating point */
|
||||||
|
enum { _GL_FLT_PREC_BOUND = FLT_MANT_DIG };
|
||||||
|
enum { _GL_DBL_PREC_BOUND = DBL_MANT_DIG };
|
||||||
|
enum { _GL_LDBL_PREC_BOUND = LDBL_MANT_DIG };
|
||||||
|
#else
|
||||||
|
|
||||||
|
/* An upper bound on the number of bits needed to represent a single
|
||||||
|
digit in a floating-point fraction. */
|
||||||
|
# if FLT_RADIX == 2 /* IEEE 754 floating point, VAX floating point, etc. */
|
||||||
|
# define _GL_FLOAT_DIG_BITS_BOUND 1
|
||||||
|
# elif FLT_RADIX <= 16 /* IBM hex floating point has FLT_RADIX == 16. */
|
||||||
|
# define _GL_FLOAT_DIG_BITS_BOUND 4
|
||||||
|
# else /* no machine is this bad, but let's be complete */
|
||||||
|
# define _GL_FLOAT_DIG_BITS_BOUND (CHAR_BIT * (int) sizeof (int) - 1)
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* An upper bound on the number of decimal digits needed to represent
|
||||||
|
a floating point number accurately, assuming a fraction contains
|
||||||
|
DIG digits. For why the "+ 1" is needed, see "Binary to Decimal
|
||||||
|
Conversion" in David Goldberg's paper "What Every Computer
|
||||||
|
Scientist Should Know About Floating-Point Arithmetic"
|
||||||
|
<http://docs.sun.com/source/806-3568/ncg_goldberg.html>. */
|
||||||
|
# define _GL_FLOAT_PREC_BOUND(dig) \
|
||||||
|
(INT_BITS_STRLEN_BOUND ((dig) * _GL_FLOAT_DIG_BITS_BOUND) + 1)
|
||||||
|
|
||||||
|
enum { _GL_FLT_PREC_BOUND = _GL_FLOAT_PREC_BOUND ( FLT_MANT_DIG) };
|
||||||
|
enum { _GL_DBL_PREC_BOUND = _GL_FLOAT_PREC_BOUND ( DBL_MANT_DIG) };
|
||||||
|
enum { _GL_LDBL_PREC_BOUND = _GL_FLOAT_PREC_BOUND (LDBL_MANT_DIG) };
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Bound on the number of bytes printed for an exponent in the range
|
||||||
|
MIN..MAX, where MIN < 0 < MAX; printf always prints a sign and at
|
||||||
|
least 2 digits. Although the maximum known exponent is 4932 for
|
||||||
|
IEEE 754 binary128, support tight bounds for exponents up to a
|
||||||
|
million, just in case. */
|
||||||
|
#define _GL_FLOAT_EXPONENT_STRLEN_BOUND(min, max) \
|
||||||
|
( -100 < (min) && (max) < 100 ? 3 \
|
||||||
|
: -1000 < (min) && (max) < 1000 ? 4 \
|
||||||
|
: -10000 < (min) && (max) < 10000 ? 5 \
|
||||||
|
: -100000 < (min) && (max) < 100000 ? 6 \
|
||||||
|
: -1000000 < (min) && (max) < 1000000 ? 7 \
|
||||||
|
: INT_STRLEN_BOUND (int) /* not a tight bound */)
|
||||||
|
|
||||||
|
/* A reasonably tight bound on the length of a type-T floating value
|
||||||
|
formatted with ftoastr etc. Room is needed for sign, fraction
|
||||||
|
digits, decimal point, "e", and exponent. POINTLEN should be a
|
||||||
|
reasonably tight bound on the string length of the decimal
|
||||||
|
point. */
|
||||||
|
#define _GL_FLOAT_STRLEN_BOUND_L(t, pointlen) \
|
||||||
|
(1 + _GL_##t##_PREC_BOUND + pointlen + 1 \
|
||||||
|
+ _GL_FLOAT_EXPONENT_STRLEN_BOUND (t##_MIN_10_EXP, t##_MAX_10_EXP))
|
||||||
|
#define FLT_STRLEN_BOUND_L(pointlen) _GL_FLOAT_STRLEN_BOUND_L ( FLT, pointlen)
|
||||||
|
#define DBL_STRLEN_BOUND_L(pointlen) _GL_FLOAT_STRLEN_BOUND_L ( DBL, pointlen)
|
||||||
|
#define LDBL_STRLEN_BOUND_L(pointlen) _GL_FLOAT_STRLEN_BOUND_L (LDBL, pointlen)
|
||||||
|
|
||||||
|
/* Looser bounds that are locale-independent and are integral constant
|
||||||
|
expressions. */
|
||||||
|
#define FLT_STRLEN_BOUND FLT_STRLEN_BOUND_L (MB_LEN_MAX)
|
||||||
|
#define DBL_STRLEN_BOUND DBL_STRLEN_BOUND_L (MB_LEN_MAX)
|
||||||
|
#define LDBL_STRLEN_BOUND LDBL_STRLEN_BOUND_L (MB_LEN_MAX)
|
||||||
|
|
||||||
|
/* Looser, locale-independent bounds that include the trailing null byte. */
|
||||||
|
#define FLT_BUFSIZE_BOUND ( FLT_STRLEN_BOUND + 1)
|
||||||
|
#define DBL_BUFSIZE_BOUND ( DBL_STRLEN_BOUND + 1)
|
||||||
|
#define LDBL_BUFSIZE_BOUND (LDBL_STRLEN_BOUND + 1)
|
||||||
|
|
||||||
|
#endif /* _GL_FTOASTR_H */
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
# the same distribution terms as the rest of that program.
|
# the same distribution terms as the rest of that program.
|
||||||
#
|
#
|
||||||
# Generated by gnulib-tool.
|
# Generated by gnulib-tool.
|
||||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --makefile-name=gnulib.mk --no-libtool --macro-prefix=gl --no-vc-files dummy
|
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --makefile-name=gnulib.mk --no-libtool --macro-prefix=gl --no-vc-files ftoastr
|
||||||
|
|
||||||
|
|
||||||
MOSTLYCLEANFILES += core *.stackdump
|
MOSTLYCLEANFILES += core *.stackdump
|
||||||
|
|
@ -21,11 +21,18 @@ libgnu_a_LIBADD = $(gl_LIBOBJS)
|
||||||
libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
|
libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
|
||||||
EXTRA_libgnu_a_SOURCES =
|
EXTRA_libgnu_a_SOURCES =
|
||||||
|
|
||||||
## begin gnulib module dummy
|
## begin gnulib module ftoastr
|
||||||
|
|
||||||
libgnu_a_SOURCES += dummy.c
|
libgnu_a_SOURCES += ftoastr.h ftoastr.c dtoastr.c ldtoastr.c
|
||||||
|
|
||||||
## end gnulib module dummy
|
## end gnulib module ftoastr
|
||||||
|
|
||||||
|
## begin gnulib module intprops
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += intprops.h
|
||||||
|
|
||||||
|
## end gnulib module intprops
|
||||||
|
|
||||||
|
|
||||||
mostlyclean-local: mostlyclean-generic
|
mostlyclean-local: mostlyclean-generic
|
||||||
|
|
|
||||||
86
lib/intprops.h
Normal file
86
lib/intprops.h
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
/* intprops.h -- properties of integer types
|
||||||
|
|
||||||
|
Copyright (C) 2001-2005, 2009-2011 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Paul Eggert. */
|
||||||
|
|
||||||
|
#ifndef GL_INTPROPS_H
|
||||||
|
# define GL_INTPROPS_H
|
||||||
|
|
||||||
|
# include <limits.h>
|
||||||
|
|
||||||
|
/* The extra casts in the following macros work around compiler bugs,
|
||||||
|
e.g., in Cray C 5.0.3.0. */
|
||||||
|
|
||||||
|
/* True if the arithmetic type T is an integer type. bool counts as
|
||||||
|
an integer. */
|
||||||
|
# define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
|
||||||
|
|
||||||
|
/* True if negative values of the signed integer type T use two's
|
||||||
|
complement, ones' complement, or signed magnitude representation,
|
||||||
|
respectively. Much GNU code assumes two's complement, but some
|
||||||
|
people like to be portable to all possible C hosts. */
|
||||||
|
# define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
|
||||||
|
# define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0)
|
||||||
|
# define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1)
|
||||||
|
|
||||||
|
/* True if the arithmetic type T is signed. */
|
||||||
|
# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
|
||||||
|
|
||||||
|
/* The maximum and minimum values for the integer type T. These
|
||||||
|
macros have undefined behavior if T is signed and has padding bits.
|
||||||
|
If this is a problem for you, please let us know how to fix it for
|
||||||
|
your host. */
|
||||||
|
# define TYPE_MINIMUM(t) \
|
||||||
|
((t) (! TYPE_SIGNED (t) \
|
||||||
|
? (t) 0 \
|
||||||
|
: TYPE_SIGNED_MAGNITUDE (t) \
|
||||||
|
? ~ (t) 0 \
|
||||||
|
: ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
|
||||||
|
# define TYPE_MAXIMUM(t) \
|
||||||
|
((t) (! TYPE_SIGNED (t) \
|
||||||
|
? (t) -1 \
|
||||||
|
: ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
|
||||||
|
|
||||||
|
/* Return zero if T can be determined to be an unsigned type.
|
||||||
|
Otherwise, return 1.
|
||||||
|
When compiling with GCC, INT_STRLEN_BOUND uses this macro to obtain a
|
||||||
|
tighter bound. Otherwise, it overestimates the true bound by one byte
|
||||||
|
when applied to unsigned types of size 2, 4, 16, ... bytes.
|
||||||
|
The symbol signed_type_or_expr__ is private to this header file. */
|
||||||
|
# if __GNUC__ >= 2
|
||||||
|
# define signed_type_or_expr__(t) TYPE_SIGNED (__typeof__ (t))
|
||||||
|
# else
|
||||||
|
# define signed_type_or_expr__(t) 1
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* Bound on length of the string representing an unsigned integer
|
||||||
|
value representable in B bits. log10 (2.0) < 146/485. The
|
||||||
|
smallest value of B where this bound is not tight is 2621. */
|
||||||
|
# define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485)
|
||||||
|
|
||||||
|
/* Bound on length of the string representing an integer type or expression T.
|
||||||
|
Subtract 1 for the sign bit if T is signed, and then add 1 more for
|
||||||
|
a minus sign if needed. */
|
||||||
|
# define INT_STRLEN_BOUND(t) \
|
||||||
|
(INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) \
|
||||||
|
+ signed_type_or_expr__ (t))
|
||||||
|
|
||||||
|
/* Bound on buffer size needed to represent an integer type or expression T,
|
||||||
|
including the terminating null. */
|
||||||
|
# define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
|
||||||
|
|
||||||
|
#endif /* GL_INTPROPS_H */
|
||||||
2
lib/ldtoastr.c
Normal file
2
lib/ldtoastr.c
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#define LENGTH 3
|
||||||
|
#include "ftoastr.c"
|
||||||
59
m4/c-strtod.m4
Normal file
59
m4/c-strtod.m4
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
# c-strtod.m4 serial 12
|
||||||
|
|
||||||
|
# Copyright (C) 2004-2006, 2009-2011 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_LINK_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_LIBOBJ([c-strtod])
|
||||||
|
|
||||||
|
dnl Prerequisites of lib/c-strtod.c.
|
||||||
|
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||||
|
AC_CHECK_FUNCS([strtod_l])
|
||||||
|
|
||||||
|
AC_REQUIRE([AC_C_INLINE])
|
||||||
|
:
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([gl_C_STRTOLD],
|
||||||
|
[
|
||||||
|
AC_LIBOBJ([c-strtold])
|
||||||
|
|
||||||
|
dnl Prerequisites of lib/c-strtold.c.
|
||||||
|
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
||||||
|
AC_REQUIRE([gl_C99_STRTOLD])
|
||||||
|
AC_CHECK_FUNCS([strtold_l])
|
||||||
|
|
||||||
|
AC_REQUIRE([AC_C_INLINE])
|
||||||
|
:
|
||||||
|
])
|
||||||
|
|
@ -15,12 +15,12 @@
|
||||||
|
|
||||||
|
|
||||||
# Specification in the form of a command-line invocation:
|
# Specification in the form of a command-line invocation:
|
||||||
# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --makefile-name=gnulib.mk --no-libtool --macro-prefix=gl --no-vc-files dummy
|
# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --makefile-name=gnulib.mk --no-libtool --macro-prefix=gl --no-vc-files ftoastr
|
||||||
|
|
||||||
# Specification in the form of a few gnulib-tool.m4 macro invocations:
|
# Specification in the form of a few gnulib-tool.m4 macro invocations:
|
||||||
gl_LOCAL_DIR([])
|
gl_LOCAL_DIR([])
|
||||||
gl_MODULES([
|
gl_MODULES([
|
||||||
dummy
|
ftoastr
|
||||||
])
|
])
|
||||||
gl_AVOID([])
|
gl_AVOID([])
|
||||||
gl_SOURCE_BASE([lib])
|
gl_SOURCE_BASE([lib])
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@ AC_DEFUN([gl_EARLY],
|
||||||
m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
|
m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
|
||||||
m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
|
m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
|
||||||
AC_REQUIRE([AC_PROG_RANLIB])
|
AC_REQUIRE([AC_PROG_RANLIB])
|
||||||
# Code from module dummy:
|
# Code from module ftoastr:
|
||||||
|
# Code from module intprops:
|
||||||
])
|
])
|
||||||
|
|
||||||
# This macro should be invoked from ./configure.in, in the section
|
# This macro should be invoked from ./configure.in, in the section
|
||||||
|
|
@ -45,7 +46,9 @@ AC_DEFUN([gl_INIT],
|
||||||
m4_pushdef([gl_LIBSOURCES_DIR], [])
|
m4_pushdef([gl_LIBSOURCES_DIR], [])
|
||||||
gl_COMMON
|
gl_COMMON
|
||||||
gl_source_base='lib'
|
gl_source_base='lib'
|
||||||
# Code from module dummy:
|
# Code from module ftoastr:
|
||||||
|
AC_REQUIRE([gl_C99_STRTOLD])
|
||||||
|
# Code from module intprops:
|
||||||
# End of code from modules
|
# End of code from modules
|
||||||
m4_ifval(gl_LIBSOURCES_LIST, [
|
m4_ifval(gl_LIBSOURCES_LIST, [
|
||||||
m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ ||
|
m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ ||
|
||||||
|
|
@ -186,7 +189,12 @@ AC_DEFUN([gltests_LIBSOURCES], [
|
||||||
# This macro records the list of files which have been installed by
|
# This macro records the list of files which have been installed by
|
||||||
# gnulib-tool and may be removed by future gnulib-tool invocations.
|
# gnulib-tool and may be removed by future gnulib-tool invocations.
|
||||||
AC_DEFUN([gl_FILE_LIST], [
|
AC_DEFUN([gl_FILE_LIST], [
|
||||||
lib/dummy.c
|
lib/dtoastr.c
|
||||||
|
lib/ftoastr.c
|
||||||
|
lib/ftoastr.h
|
||||||
|
lib/intprops.h
|
||||||
|
lib/ldtoastr.c
|
||||||
m4/00gnulib.m4
|
m4/00gnulib.m4
|
||||||
|
m4/c-strtod.m4
|
||||||
m4/gnulib-common.m4
|
m4/gnulib-common.m4
|
||||||
])
|
])
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
/* Define to 1 if ALSA is available. */
|
/* Define to 1 if ALSA is available. */
|
||||||
#undef HAVE_ALSA
|
#undef HAVE_ALSA
|
||||||
|
|
||||||
|
/* Define to 1 if strtold conforms to C99. */
|
||||||
|
#undef HAVE_C99_STRTOLD
|
||||||
|
|
||||||
/* Define to 1 if you have the `cbrt' function. */
|
/* Define to 1 if you have the `cbrt' function. */
|
||||||
#undef HAVE_CBRT
|
#undef HAVE_CBRT
|
||||||
|
|
||||||
|
|
@ -1059,6 +1062,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
/* Define to empty if `const' does not conform to ANSI C. */
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
#undef const
|
#undef const
|
||||||
|
|
||||||
|
/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
|
||||||
|
the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
|
||||||
|
earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
|
||||||
|
__APPLE__ && __MACH__ test for MacOS X.
|
||||||
|
__APPLE_CC__ tests for the Apple compiler and its version.
|
||||||
|
__STDC_VERSION__ tests for the C99 mode. */
|
||||||
|
#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
|
||||||
|
# define __GNUC_STDC_INLINE__ 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define to a type if <wchar.h> does not define. */
|
/* Define to a type if <wchar.h> does not define. */
|
||||||
#undef mbstate_t
|
#undef mbstate_t
|
||||||
|
|
||||||
|
|
@ -1071,6 +1084,19 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
/* Define to any substitute for sys_siglist. */
|
/* Define to any substitute for sys_siglist. */
|
||||||
#undef sys_siglist
|
#undef sys_siglist
|
||||||
|
|
||||||
|
/* Define as a marker that can be attached to declarations that might not
|
||||||
|
be used. This helps to reduce warnings, such as from
|
||||||
|
GCC -Wunused-parameter. */
|
||||||
|
#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
|
||||||
|
# define _GL_UNUSED __attribute__ ((__unused__))
|
||||||
|
#else
|
||||||
|
# define _GL_UNUSED
|
||||||
|
#endif
|
||||||
|
/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
|
||||||
|
is a misnomer outside of parameter lists. */
|
||||||
|
#define _UNUSED_PARAMETER_ _GL_UNUSED
|
||||||
|
|
||||||
|
|
||||||
/* Define as `fork' if `vfork' does not work. */
|
/* Define as `fork' if `vfork' does not work. */
|
||||||
#undef vfork
|
#undef vfork
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue