+1997-04-30 17:35 Ulrich Drepper <drepper@cygnus.com>
+
+ * math/libm-test.c: Implement test for exceptions.
+ Partly due to Andreas Jaeger.
+ (csin_test): New function.
+ * sysdeps/libm-i387/s_cexp.S: Raise correct exceptions.
+ * sysdeps/libm-i387/s_cexpf.S: Likewise.
+ * sysdeps/libm-i387/s_cexpl.S: Likewise.
+ * sysdeps/libm-ieee754/s_ccos.c: Likewise.
+ * sysdeps/libm-ieee754/s_ccosf.c: Likewise.
+ * sysdeps/libm-ieee754/s_ccosl.c: Likewise.
+ * sysdeps/libm-ieee754/s_ccosh.c: Likewise.
+ * sysdeps/libm-ieee754/s_ccoshf.c: Likewise.
+ * sysdeps/libm-ieee754/s_ccoshl.c: Likewise.
+ * sysdeps/libm-ieee754/s_cexp.c: Likewise.
+ * sysdeps/libm-ieee754/s_cexpf.c: Likewise.
+ * sysdeps/libm-ieee754/s_cexpl.c: Likewise.
+ * sysdeps/libm-ieee754/s_csinh.c: Likewise.
+ * sysdeps/libm-ieee754/s_csinhf.c: Likewise.
+ * sysdeps/libm-ieee754/s_csinhl.c: Likewise.
+ * sysdeps/libm-ieee754/s_ctanh.c: Likewise.
+ * sysdeps/libm-ieee754/s_ctanhf.c: Likewise.
+ * sysdeps/libm-ieee754/s_ctanhl.c: Likewise.
+
+ * sysdeps/libm-ieee754/s_ccosh.c: Correct computation.
+ * sysdeps/libm-ieee754/s_ccoshf.c: Likewise.
+ * sysdeps/libm-ieee754/s_ccoshl.c: Likewise.
+ * sysdeps/libm-ieee754/s_csinh.c: Likewise.
+ * sysdeps/libm-ieee754/s_csinhf.c: Likewise.
+ * sysdeps/libm-ieee754/s_csinhl.c: Likewise.
+
+ * sysdeps/libm-ieee754/s_csin.c: Rewrite.
+ * sysdeps/libm-ieee754/s_csinf.c: Likewise.
+ * sysdeps/libm-ieee754/s_csinl.c: Likewise.
+
+ * stdlib/random_r.c (__srandom_r): Don't use seed 0. Use 1 in this
+ case.
+
+ * sysdeps/i386/dl-machine.h (elf_machine_load_address): Use notation
+ for local label.
+
+ * time/strftime.c (add): Respect `0' padding flag.
+ Reported by Richard Stallman <rms@gnu.ai.mit.edu>.
+
+1997-04-30 15:46 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig (start-installed-name): Define here, not in csu/Makefile.
+ Use in +link macro.
+ * csu/Makefile (distribute): Add abi-note.S and abi-tag.h.
+ (start-installed-name): Don't define here.
+ When ELF generate file named by start-installed-name from start.o
+ and abi-note.o.
+ * csu/abi-note.S: New file.
+ * sysdeps/stub/abi-tag.h: New file.
+ * sysdpes/unix/sysv/linux/abi-tag.h: New file.
+ Patches by Roland McGrath <roland@gnu.ai.mit.edu>.
+
+1997-04-30 01:32 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/stdio.texi: Use @vtable where possible.
+ Add TeX version of @multitable since texi2dvi cannot handle them
+ correct in the moment.
+
+ * po/de.po: Update.
+
+1997-04-29 21:06 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig: Don't set cross-compiling based on $(BUILD_CC) != $(CC).
+ * config.make.in: Set cross-compiling from configure result.
+ * configure.in: Emit definition of `cross_compiling'.
+ Patches by Marcus G. Daniels <marcus@cathcart.sysc.pdx.edu>.
+
+1997-04-27 21:50 Philip Blundell <pjb27@cam.ac.uk>
+
+ * sysdeps/unix/sysv/linux/net/route.h (struct in6_rtmsg): Use
+ correct `int' sizes for struct members.
+
+1997-04-29 19:14 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/libm-i387/e_powf.S Generate invalid exception correctly.
+ * sysdeps/libm-i387/e_pow.S: Likewise.
+ * sysdeps/libm-i387/e_powl.S: Likewise.
+
+1997-04-23 10:08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/fenv.h: Correct typos.
+
+1997-04-28 10:04 Richard Henderson <rth@tamu.edu>
+
+ * sysdeps/unix/sysv/linux/alpha/clone.S: Save the function argument
+ in t0 rather than a4 to avoid it being clobbered.
+
+1997-04-27 23:52 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/summary.awk: Recognize @defmumblex.
+
+ * manual/signal.texi (Miscellaneous Signals): Use @deftypevrx for
+ second description header.
+
+1997-04-27 23:29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/arith.texi (Floating-Point Classes): Don't indent text,
+ makeinfo doesn't like that.
+
+1997-04-27 20:52 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * malloc/obstack.h (obstack_specify_allocation_with_arg,
+ obstack_chunkfun, obstack_freefun): Fix casts.
+
+1997-04-27 18:21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/xtract-typefun.awk: Allow names with only one character.
+
+1997-04-26 14:16 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/netinet/ip_fw.h: Use <netinet/ip_icmp.h>
+ not <netinet/icmp.h>.
+ Reported by Michael Deutschmann <ldeutsch@mail.netshop.net>.
+
+1997-04-25 12:31 Ulrich Drepper <drepper@cygnus.com>
+
+ * csu/Makefile ($(objpfx)initfini.s): Add CPPFLAGS, CFLAGS and -g0
+ to command line of compiler.
+ Patch by Marcus G. Daniels <marcus@sysc.pdx.edu>.
+
+ * sysdeps/generic/sigset.h (__sigandset, __sigorset): Fix typos.
+ Patch by Marcus G. Daniels <marcus@sysc.pdx.edu>.
+
+ * signal/signal.h (_sys_siglist, sys_siglist): Use _NSIG, not NSIG
+ in declaration.
+ Patch by Michael Widenius <monty@tcx.se>.
+
+ * time/strptime.c (strptime_internal): Fix %I format specifier
+ being off by one.
+ Patch by Mark Kettenis <kettenis@phys.uva.nl>.
+
+1997-04-24 12:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * stdlib/lcong48_r.c: Include <limits.h>.
+ * stdlib/seed48_r.c: Likewise.
+
+ * stdio-common/printf_size.c (printf_size): Correct type of
+ `units' and make robust against future changes.
+
+1997-04-23 18:58 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/libm-ieee754/s_cproj.c: Use isfinite instead of finite.
+ * sysdeps/libm-ieee754/s_cprojl.c: Likewise.
+ * sysdeps/libm-ieee754/s_cprojf.c: Likewise.
+
+1997-04-23 18:53 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/arith.texi, manual/math.texi: Use @defmumblex for
+ additional description headers.
+ * manual/xtract-typefun.awk: Recognize them.
+
+1997-04-22 15:58 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * stdio-common/printf_size.c (printf_size): Correct size of array
+ units.
+
1997-04-21 07:50 H.J. Lu <hjl@gnu.ai.mit.edu>
* libgen.h: New file.
$(tardir).tar: dist.tar subdir_dist
@echo Files listed here have names exceeding 14 chars.
- tar xfv $< -C /tmp | sed -n '/[^/]\{15,\}/p'
- tar covf $@ -C /tmp $(tardir)
- -rm -fr /tmp/$(tardir) dist.tar &
+ tar xfv $< -C $${TMPDIR-/tmp} | sed -n '/[^/]\{15,\}/p'
+ tar covf $@ -C $${TMPDIR-/tmp} $(tardir)
+ -rm -fr $${TMPDIR-/tmp}/$(tardir) dist.tar &
%.Z: %
compress -c $< > $@
asm-CPPFLAGS =
endif
+# Installed name of the startup code.
+ifneq ($(elf),yes)
+# When not using ELF, there is just one startfile, called crt0.o.
+start-installed-name = crt0.o
+else
+# In the ELF universe, crt0.o is called crt1.o, and there are
+# some additional bizarre files.
+start-installed-name = crt1.o
+have-initfini = yes
+endif
+
+
# Command for linking programs with the C library.
ifndef +link
+link = $(CC) -nostdlib -nostartfiles -o $@ \
$(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) \
- $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+prector) \
- $(filter-out $(addprefix $(csu-objpfx),start.o) $(+preinit) \
- $(link-extra-libs) $(common-objpfx)libc% $(+postinit),$^) \
+ $(addprefix $(csu-objpfx),$(start-installed-name)) \
+ $(+preinit) $(+prector) \
+ $(filter-out $(addprefix $(csu-objpfx),start.o \
+ $(start-installed-name))\
+ $(+preinit) $(link-extra-libs) \
+ $(common-objpfx)libc% $(+postinit),$^) \
$(link-extra-libs) $(link-libc) $(+postctor) $(+postinit)
endif
ifndef config-LDFLAGS
ifndef BUILD_CC
BUILD_CC = $(CC)
endif
-
-ifneq ($(BUILD_CC),$(CC))
-cross-compiling := yes
-else
-cross-compiling := no
-endif
\f
# Figure out the version numbers from version.h.
build-bounded = @bounded@
stdio = @stdio@
add-ons = @subdirs@
+cross-compiling = @cross_compiling@
# Build tools.
CC = @CC@
done
fi
+
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1350: checking how to run the C preprocessor" >&5
+echo "configure:1351: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1365 "configure"
+#line 1366 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1372: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1382 "configure"
+#line 1383 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1419: checking for $ac_word" >&5
+echo "configure:1420: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1450: checking for $ac_word" >&5
+echo "configure:1451: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1481: checking for $ac_word" >&5
+echo "configure:1482: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "bash", so it can be a program name with args.
set dummy bash; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1516: checking for $ac_word" >&5
+echo "configure:1517: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "ksh", so it can be a program name with args.
set dummy ksh; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1557: checking for $ac_word" >&5
+echo "configure:1558: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6
-echo "configure:1599: checking for signed size_t type" >&5
+echo "configure:1600: checking for signed size_t type" >&5
if eval "test \"`echo '$''{'libc_cv_signed_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6
-echo "configure:1623: checking for libc-friendly stddef.h" >&5
+echo "configure:1624: checking for libc-friendly stddef.h" >&5
if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1628 "configure"
+#line 1629 "configure"
#include "confdefs.h"
#define __need_size_t
#define __need_wchar_t
if (&size == NULL || &wchar == NULL) abort ();
; return 0; }
EOF
-if { (eval echo configure:1643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_friendly_stddef=yes
else
fi
echo $ac_n "checking whether we need to use -P to assemble .S files""... $ac_c" 1>&6
-echo "configure:1662: checking whether we need to use -P to assemble .S files" >&5
+echo "configure:1663: checking whether we need to use -P to assemble .S files" >&5
if eval "test \"`echo '$''{'libc_cv_need_minus_P'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6
-echo "configure:1685: checking for assembler global-symbol directive" >&5
+echo "configure:1686: checking for assembler global-symbol directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_global_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6
-echo "configure:1715: checking for .set assembler directive" >&5
+echo "configure:1716: checking for .set assembler directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_set_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6
-echo "configure:1749: checking for .symver assembler directive" >&5
+echo "configure:1750: checking for .symver assembler directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_symver_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo "$ac_t""$libc_cv_asm_symver_directive" 1>&6
echo $ac_n "checking for ld --version-script""... $ac_c" 1>&6
-echo "configure:1768: checking for ld --version-script" >&5
+echo "configure:1769: checking for ld --version-script" >&5
if eval "test \"`echo '$''{'libc_cv_ld_version_script_option'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
EOF
if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&5 2>&5; then
if { ac_try='${CC-cc} $CFLAGS --shared -o conftest.so conftest.o
- -Wl,--version-script,conftest.map'; { (eval echo configure:1785: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
+ -Wl,--version-script,conftest.map'; { (eval echo configure:1786: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
then
libc_cv_ld_version_script_option=yes
else
if test $elf = yes; then
echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6
-echo "configure:1815: checking for .previous assembler directive" >&5
+echo "configure:1816: checking for .previous assembler directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_previous_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
.section foo_section
.previous
EOF
- if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1824: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_asm_previous_directive=yes
else
libc_cv_asm_previous_directive=no
else
echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6
-echo "configure:1839: checking for .popsection assembler directive" >&5
+echo "configure:1840: checking for .popsection assembler directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_popsection_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
.pushsection foo_section
.popsection
EOF
- if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1847: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1848: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_asm_popsection_directive=yes
else
libc_cv_asm_popsection_directive=no
if test $elf != yes; then
echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
-echo "configure:1867: checking for .init and .fini sections" >&5
+echo "configure:1868: checking for .init and .fini sections" >&5
if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1872 "configure"
+#line 1873 "configure"
#include "confdefs.h"
int main() {
asm (".text");
; return 0; }
EOF
-if { (eval echo configure:1881: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1882: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_have_initfini=yes
else
libc_cv_asm_underscores=no
else
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
-echo "configure:1906: checking for _ prefix on C symbol names" >&5
+echo "configure:1907: checking for _ prefix on C symbol names" >&5
if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1911 "configure"
+#line 1912 "configure"
#include "confdefs.h"
asm ("_glibc_foobar:");
int main() {
glibc_foobar ();
; return 0; }
EOF
-if { (eval echo configure:1918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
libc_cv_asm_underscores=yes
else
libc_cv_asm_weakext_directive=no
else
echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6
-echo "configure:1945: checking for assembler .weak directive" >&5
+echo "configure:1946: checking for assembler .weak directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test $libc_cv_asm_weak_directive = no; then
echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6
-echo "configure:1968: checking for assembler .weakext directive" >&5
+echo "configure:1969: checking for assembler .weakext directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
-echo "configure:2005: checking for ld --no-whole-archive" >&5
+echo "configure:2006: checking for ld --no-whole-archive" >&5
if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -Wl,--no-whole-archive
- -o conftest conftest.c'; { (eval echo configure:2016: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ -o conftest conftest.c'; { (eval echo configure:2017: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_ld_no_whole_archive=yes
else
libc_cv_ld_no_whole_archive=no
echo "$ac_t""$libc_cv_ld_no_whole_archive" 1>&6
echo $ac_n "checking for gcc -fno-exceptions""... $ac_c" 1>&6
-echo "configure:2027: checking for gcc -fno-exceptions" >&5
+echo "configure:2028: checking for gcc -fno-exceptions" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_no_exceptions'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -fno-exceptions
- -o conftest conftest.c'; { (eval echo configure:2038: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ -o conftest conftest.c'; { (eval echo configure:2039: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_no_exceptions=yes
else
libc_cv_gcc_no_exceptions=no
fi
echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
-echo "configure:2090: checking OS release for uname" >&5
+echo "configure:2091: checking OS release for uname" >&5
if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
uname_release="$libc_cv_uname_release"
echo $ac_n "checking OS version for uname""... $ac_c" 1>&6
-echo "configure:2112: checking OS version for uname" >&5
+echo "configure:2113: checking OS version for uname" >&5
if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking stdio selection""... $ac_c" 1>&6
-echo "configure:2134: checking stdio selection" >&5
+echo "configure:2135: checking stdio selection" >&5
case $stdio in
libio) cat >> confdefs.h <<\EOF
s%@build_vendor@%$build_vendor%g
s%@build_os@%$build_os%g
s%@BUILD_CC@%$BUILD_CC%g
+s%@cross_compiling@%$cross_compiling%g
s%@CPP@%$CPP%g
s%@AR@%$AR%g
s%@RANLIB@%$RANLIB%g
if test $host != $build; then
AC_CHECK_PROGS(BUILD_CC, gcc cc)
fi
+AC_SUBST(cross_compiling)
AC_PROG_CPP
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(RANLIB, ranlib, :)
$(csu-dummies))
install-lib = $(start-installed-name) g$(start-installed-name) \
$(csu-dummies)
-distribute = initfini.c gmon-start.c start.c defs.awk
+distribute = initfini.c gmon-start.c start.c defs.awk abi-note.S abi-tag.h
all: # Make this the default target; it will be defined in Rules.
include ../Makeconfig
-ifneq ($(elf),yes)
-
-# When not using ELF, there is just one startfile, called crt0.o.
-start-installed-name = crt0.o
-
-else
-
-# In the ELF universe, crt0.o is called crt1.o, and there are
-# some additional bizarre files.
-start-installed-name = crt1.o
-have-initfini = yes
-
-endif
ifeq ($(have-initfini),yes)
$(CC) -c -fPIC -g0 -I$(..) -I$(common-objpfx) -DASSEMBLER $< -o $@
$(objpfx)initfini.s: initfini.c
- $(CC) -S -fPIC -finhibit-size-directive $(no-exceptions) $< -o $@
+ $(CC) $(CPPFLAGS) $(CFLAGS) -g0 -S -fPIC -finhibit-size-directive \
+ $(no-exceptions) $< -o $@
$(objpfx)crti.S: $(objpfx)initfini.s
sed -n -e '1,/@HEADER_ENDS/p' \
include ../Rules
+define link-relocatable
+$(CC) -nostdlib -nostartfiles -r -o $@ $^
+endef
+
ifndef start-installed-name-rule
+ifeq (yes,$(elf))
+# We link the ELF startfile along with a SHT_NOTE section indicating
+# the the kernel ABI the binaries linked with this library will require.
+$(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o
+ $(link-relocatable)
+else
# The startfile is installed under different names, so we just call our
# source file `start.c' and copy to the installed name after compiling.
$(objpfx)$(start-installed-name): $(objpfx)start.o
- -rm -f $@
+ rm -f $@
ln $< $@
endif
+endif
# The profiling startfile is made by linking together the normal
# startfile with gmon-start.o, which defines a constructor function
# to turn on profiling code at startup.
-$(objpfx)g$(start-installed-name): $(objpfx)start.o $(objpfx)gmon-start.o
- $(CC) -nostdlib -nostartfiles -r -o $@ $^
+$(objpfx)g$(start-installed-name): $(objpfx)$(start-installed-name) \
+ $(objpfx)gmon-start.o
+ $(link-relocatable)
# These extra files are sometimes expected by system standard linking
# procedures, but we have nothing for them to do. So compile empty files.
--- /dev/null
+/* Special .init and .fini section support.
+ Copyright (C) 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it
+ and/or modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Library General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file with other
+ programs, and to distribute those programs without any restriction
+ coming from the use of this file. (The Library General Public
+ License restrictions do apply in other respects; for example, they
+ cover modification of the file, and distribution when not linked
+ into another program.)
+
+ The GNU C Library 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 Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <sysdep.h>
+
+/* The basic layout of note sections is specified by the ELF format. */
+
+#define ELF_NOTE_BEGIN(sectname, sectflags, type, name) \
+ .section sectname, sectflags; \
+ .align ALIGNARG(2); /* Notes are 4-byte aligned. */ \
+ .long 1f - 0f; /* 32-bit word: length of name field */ \
+ .long 3f - 2f; /* 32-bit word: length of desc field */ \
+ .long (type); /* 32-bit word: vendor-defined type field */ \
+0: .asciz name; /* null-terminated string, any length: name */\
+1: .align ALIGNARG(2); /* Name data padded to 4-byte alignment. */ \
+2: /* Here follows the "note descriptor" data, whose format \
+ is not specified by ELF. The vendor name and type field \
+ indicate what sort of data is found here. */
+
+#define ELF_NOTE_END \
+3: .align ALIGNARG(2) /* Pad to 4-byte align the next note. */
+
+
+/* The linker (GNU ld 2.8 and later) recognize an allocated section whose
+ name begins with `.note' and creates a PT_NOTE program header entry
+ pointing at it.
+
+ Such a program header is the canonical way (at least in the free OS
+ community) to identify the OS environment ABI that the executable was
+ created for. The ELF note information identifies a particular OS or
+ coordinated development effort within which the ELF header's e_machine
+ value plus (for dynamically linked programs) the PT_INTERP dynamic
+ linker name and DT_NEEDED shared library names fully identify the
+ runtime environment required by an executable.
+
+ The GNU project and cooperating development efforts (including the Linux
+ community) use a vendor name string of "GNU", and a note type field with
+ value 1 for a note descriptor that indicates ABI requirements. */
+
+#include <abi-tag.h> /* OS-specific ABI tag value */
+
+ELF_NOTE_BEGIN(".note.ABI-tag", "a", 1, "GNU")
+ .long ABI_TAG
+ELF_NOTE_END
#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
_obstack_begin_1 ((h), (size), (alignment), \
- (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun), (arg))
+ (void *(*) (void *, long)) (chunkfun), \
+ (void (*) (void *, void *)) (freefun), (arg))
#define obstack_chunkfun(h, newchunkfun) \
- ((h) -> chunkfun = (struct _obstack_chunk *(*)(long)) (newchunkfun))
+ ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun))
#define obstack_freefun(h, newfreefun) \
- ((h) -> freefun = (void (*)(void *)) (newfreefun))
+ ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun))
#else
@comment math.h
@comment BSD
@deftypefun int isinf (double @var{x})
-@end deftypefun
-@deftypefun int isinff (float @var{x})
-@end deftypefun
-@deftypefun int isinfl (long double @var{x})
+@deftypefunx int isinff (float @var{x})
+@deftypefunx int isinfl (long double @var{x})
This function returns @code{-1} if @var{x} represents negative infinity,
@code{1} if @var{x} represents positive infinity, and @code{0} otherwise.
@end deftypefun
@comment math.h
@comment BSD
@deftypefun int isnan (double @var{x})
-@end deftypefun
-@deftypefun int isnanf (float @var{x})
-@end deftypefun
-@deftypefun int isnanl (long double @var{x})
+@deftypefunx int isnanf (float @var{x})
+@deftypefunx int isnanl (long double @var{x})
This function returns a nonzero value if @var{x} is a ``not a number''
value, and zero otherwise. (You can just as well use @code{@var{x} !=
@var{x}} to get the same result).
@comment math.h
@comment BSD
@deftypefun int finite (double @var{x})
-@end deftypefun
-@deftypefun int finitef (float @var{x})
-@end deftypefun
-@deftypefun int finitel (long double @var{x})
+@deftypefunx int finitef (float @var{x})
+@deftypefunx int finitel (long double @var{x})
This function returns a nonzero value if @var{x} is finite or a ``not a
number'' value, and zero otherwise.
@end deftypefun
@vtable @code
@item FP_NAN
- The floating-point number @var{x} is ``Not a Number'' (@pxref{Not a Number})
+The floating-point number @var{x} is ``Not a Number'' (@pxref{Not a Number})
@item FP_INFINITE
- The value of @var{x} is either plus or minus infinity (@pxref{Infinity})
+The value of @var{x} is either plus or minus infinity (@pxref{Infinity})
@item FP_ZERO
- The value of @var{x} is zero. In floating-point formats like @w{IEEE
- 754} where the zero value can be signed this value is also returned if
- @var{x} is minus zero.
+The value of @var{x} is zero. In floating-point formats like @w{IEEE
+754} where the zero value can be signed this value is also returned if
+@var{x} is minus zero.
@item FP_SUBNORMAL
- Some floating-point formats (such as @w{IEEE 754}) allow floating-point
- numbers to be represented in a denormalized format. This happens if the
- absolute value of the number is too small to be represented in the
- normal format. @code{FP_SUBNORMAL} is returned for such values of @var{x}.
+Some floating-point formats (such as @w{IEEE 754}) allow floating-point
+numbers to be represented in a denormalized format. This happens if the
+absolute value of the number is too small to be represented in the
+normal format. @code{FP_SUBNORMAL} is returned for such values of @var{x}.
@item FP_NORMAL
- This value is returned for all other cases which means the number is a
- plain floating-point number without special meaning.
+This value is returned for all other cases which means the number is a
+plain floating-point number without special meaning.
@end vtable
This macro is useful if more than property of a number must be
@comment complex.h
@comment ISO
@deftypefun double creal (complex double @var{z})
-@end deftypefun
-@deftypefun float crealf (complex float @var{z})
-@end deftypefun
-@deftypefun {long double} creall (complex long double @var{z})
+@deftypefunx float crealf (complex float @var{z})
+@deftypefunx {long double} creall (complex long double @var{z})
These functions return the real part of the complex number @var{z}.
@end deftypefun
@comment complex.h
@comment ISO
@deftypefun double cimag (complex double @var{z})
-@end deftypefun
-@deftypefun float cimagf (complex float @var{z})
-@end deftypefun
-@deftypefun {long double} cimagl (complex long double @var{z})
+@deftypefunx float cimagf (complex float @var{z})
+@deftypefunx {long double} cimagl (complex long double @var{z})
These functions return the imaginary part of the complex number @var{z}.
@end deftypefun
@comment complex.h
@comment ISO
@deftypefun {complex double} conj (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} conjf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} conjl (complex long double @var{z})
+@deftypefunx {complex float} conjf (complex float @var{z})
+@deftypefunx {complex long double} conjl (complex long double @var{z})
These functions return the conjugate complex value of the complex number
@var{z}.
@end deftypefun
@comment complex.h
@comment ISO
@deftypefun double carg (complex double @var{z})
-@end deftypefun
-@deftypefun float cargf (complex float @var{z})
-@end deftypefun
-@deftypefun {long double} cargl (complex long double @var{z})
+@deftypefunx float cargf (complex float @var{z})
+@deftypefunx {long double} cargl (complex long double @var{z})
These functions return argument of the complex number @var{z}.
Mathematically, the argument is the phase angle of @var{z} with a branch
@comment complex.h
@comment ISO
@deftypefun {complex double} cproj (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} cprojf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} cprojl (complex long double @var{z})
+@deftypefunx {complex float} cprojf (complex float @var{z})
+@deftypefunx {complex long double} cprojl (complex long double @var{z})
Return the projection of the complex value @var{z} on the Riemann
sphere. Values with a infinite complex part (even if the real part
is NaN) are projected to positive infinte on the real axis. If the real part is infinite, the result is equivalent to
@comment math.h
@comment ISO
@deftypefun double fabs (double @var{number})
-@end deftypefun
-@deftypefun float fabsf (float @var{number})
-@end deftypefun
-@deftypefun {long double} fabsl (long double @var{number})
+@deftypefunx float fabsf (float @var{number})
+@deftypefunx {long double} fabsl (long double @var{number})
This function returns the absolute value of the floating-point number
@var{number}.
@end deftypefun
@comment complex.h
@comment ISO
@deftypefun double cabs (complex double @var{z})
-@end deftypefun
-@deftypefun float cabsf (complex float @var{z})
-@end deftypefun
-@deftypefun {long double} cabsl (complex long double @var{z})
+@deftypefunx float cabsf (complex float @var{z})
+@deftypefunx {long double} cabsl (complex long double @var{z})
These functions return the absolute value of the complex number @var{z}.
The compiler must support complex numbers to use these functions. (See
also the function @code{hypot} in @ref{Exponents and Logarithms}.) The
@comment math.h
@comment ISO
@deftypefun double frexp (double @var{value}, int *@var{exponent})
-@end deftypefun
-@deftypefun float frexpf (float @var{value}, int *@var{exponent})
-@end deftypefun
-@deftypefun {long double} frexpl (long double @var{value}, int *@var{exponent})
+@deftypefunx float frexpf (float @var{value}, int *@var{exponent})
+@deftypefunx {long double} frexpl (long double @var{value}, int *@var{exponent})
These functions are used to split the number @var{value}
into a normalized fraction and an exponent.
@comment math.h
@comment ISO
@deftypefun double ldexp (double @var{value}, int @var{exponent})
-@end deftypefun
-@deftypefun float ldexpf (float @var{value}, int @var{exponent})
-@end deftypefun
-@deftypefun {long double} ldexpl (long double @var{value}, int @var{exponent})
+@deftypefunx float ldexpf (float @var{value}, int @var{exponent})
+@deftypefunx {long double} ldexpl (long double @var{value}, int @var{exponent})
These functions return the result of multiplying the floating-point
number @var{value} by 2 raised to the power @var{exponent}. (It can
be used to reassemble floating-point numbers that were taken apart
@comment math.h
@comment BSD
@deftypefun double scalb (double @var{value}, int @var{exponent})
-@end deftypefun
-@deftypefun float scalbf (float @var{value}, int @var{exponent})
-@end deftypefun
-@deftypefun {long double} scalbl (long double @var{value}, int @var{exponent})
+@deftypefunx float scalbf (float @var{value}, int @var{exponent})
+@deftypefunx {long double} scalbl (long double @var{value}, int @var{exponent})
The @code{scalb} function is the BSD name for @code{ldexp}.
@end deftypefun
@comment math.h
@comment BSD
@deftypefun double logb (double @var{x})
-@end deftypefun
-@deftypefun float logbf (float @var{x})
-@end deftypefun
-@deftypefun {long double} logbl (long double @var{x})
+@deftypefunx float logbf (float @var{x})
+@deftypefunx {long double} logbl (long double @var{x})
These BSD functions return the integer part of the base-2 logarithm of
@var{x}, an integer value represented in type @code{double}. This is
the highest integer power of @code{2} contained in @var{x}. The sign of
@comment math.h
@comment ISO
@deftypefun double copysign (double @var{value}, double @var{sign})
-@end deftypefun
-@deftypefun float copysignf (float @var{value}, float @var{sign})
-@end deftypefun
-@deftypefun {long double} copysignl (long double @var{value}, long double @var{sign})
+@deftypefunx float copysignf (float @var{value}, float @var{sign})
+@deftypefunx {long double} copysignl (long double @var{value}, long double @var{sign})
These functions return a value whose absolute value is the
same as that of @var{value}, and whose sign matches that of @var{sign}.
This function appears in BSD and was standardized in @w{ISO C 9X}.
@comment math.h
@comment ISO
@deftypefun double ceil (double @var{x})
-@end deftypefun
-@deftypefun float ceilf (float @var{x})
-@end deftypefun
-@deftypefun {long double} ceill (long double @var{x})
+@deftypefunx float ceilf (float @var{x})
+@deftypefunx {long double} ceill (long double @var{x})
These functions round @var{x} upwards to the nearest integer,
returning that value as a @code{double}. Thus, @code{ceil (1.5)}
is @code{2.0}.
@comment math.h
@comment ISO
@deftypefun double floor (double @var{x})
-@end deftypefun
-@deftypefun float floorf (float @var{x})
-@end deftypefun
-@deftypefun {long double} floorl (long double @var{x})
+@deftypefunx float floorf (float @var{x})
+@deftypefunx {long double} floorl (long double @var{x})
These functions round @var{x} downwards to the nearest
integer, returning that value as a @code{double}. Thus, @code{floor
(1.5)} is @code{1.0} and @code{floor (-1.5)} is @code{-2.0}.
@comment math.h
@comment ISO
@deftypefun double rint (double @var{x})
-@end deftypefun
-@deftypefun float rintf (float @var{x})
-@end deftypefun
-@deftypefun {long double} rintl (long double @var{x})
+@deftypefunx float rintf (float @var{x})
+@deftypefunx {long double} rintl (long double @var{x})
These functions round @var{x} to an integer value according to the
current rounding mode. @xref{Floating Point Parameters}, for
information about the various rounding modes. The default
@comment math.h
@comment ISO
@deftypefun double nearbyint (double @var{x})
-@end deftypefun
-@deftypefun float nearbyintf (float @var{x})
-@end deftypefun
-@deftypefun {long double} nearbyintl (long double @var{x})
+@deftypefunx float nearbyintf (float @var{x})
+@deftypefunx {long double} nearbyintl (long double @var{x})
These functions return the same value as the @code{rint} functions but
even some rounding actually takes place @code{nearbyint} does @emph{not}
raise the inexact exception.
@comment math.h
@comment ISO
@deftypefun double modf (double @var{value}, double *@var{integer-part})
-@end deftypefun
-@deftypefun float modff (flaot @var{value}, float *@var{integer-part})
-@end deftypefun
-@deftypefun {long double} modfl (long double @var{value}, long double *@var{integer-part})
+@deftypefunx float modff (flaot @var{value}, float *@var{integer-part})
+@deftypefunx {long double} modfl (long double @var{value}, long double *@var{integer-part})
These functions break the argument @var{value} into an integer part and a
fractional part (between @code{-1} and @code{1}, exclusive). Their sum
equals @var{value}. Each of the parts has the same sign as @var{value},
@comment math.h
@comment ISO
@deftypefun double fmod (double @var{numerator}, double @var{denominator})
-@end deftypefun
-@deftypefun float fmodf (float @var{numerator}, float @var{denominator})
-@end deftypefun
-@deftypefun {long double} fmodl (long double @var{numerator}, long double @var{denominator})
+@deftypefunx float fmodf (float @var{numerator}, float @var{denominator})
+@deftypefunx {long double} fmodl (long double @var{numerator}, long double @var{denominator})
These functions compute the remainder from the division of
@var{numerator} by @var{denominator}. Specifically, the return value is
@code{@var{numerator} - @w{@var{n} * @var{denominator}}}, where @var{n}
@comment math.h
@comment BSD
@deftypefun double drem (double @var{numerator}, double @var{denominator})
-@end deftypefun
-@deftypefun float dremf (float @var{numerator}, float @var{denominator})
-@end deftypefun
-@deftypefun {long double} dreml (long double @var{numerator}, long double @var{denominator})
+@deftypefunx float dremf (float @var{numerator}, float @var{denominator})
+@deftypefunx {long double} dreml (long double @var{numerator}, long double @var{denominator})
These functions are like @code{fmod} etc except that it rounds the
internal quotient @var{n} to the nearest integer instead of towards zero
to an integer. For example, @code{drem (6.5, 2.3)} returns @code{-0.4},
@setfilename libc.info
@settitle The GNU C Library
@setchapternewpage odd
-@comment %**end of header (This is for running Texinfo on a region.)
@c This tells texinfo.tex to use the real section titles in xrefs in
@c place of the node name, when no section title is explicitly given.
@set xref-automatic-section-title
-@smallbook
+@c @smallbook
+@iftex
+@afourpaper
+@end iftex
+@comment %**end of header (This is for running Texinfo on a region.)
@c sold 0.06/1.09, print run out 21may96
@set EDITION 0.07 DRAFT
@comment math.h
@comment ISO
@deftypefun double sin (double @var{x})
-@end deftypefun
-@deftypefun float sinf (float @var{x})
-@end deftypefun
-@deftypefun {long double} sinl (long double @var{x})
+@deftypefunx float sinf (float @var{x})
+@deftypefunx {long double} sinl (long double @var{x})
These functions return the sine of @var{x}, where @var{x} is given in
radians. The return value is in the range @code{-1} to @code{1}.
@end deftypefun
@comment math.h
@comment ISO
@deftypefun double cos (double @var{x})
-@end deftypefun
-@deftypefun float cosf (float @var{x})
-@end deftypefun
-@deftypefun {long double} cosl (long double @var{x})
+@deftypefunx float cosf (float @var{x})
+@deftypefunx {long double} cosl (long double @var{x})
These functions return the cosine of @var{x}, where @var{x} is given in
radians. The return value is in the range @code{-1} to @code{1}.
@end deftypefun
@comment math.h
@comment ISO
@deftypefun double tan (double @var{x})
-@end deftypefun
-@deftypefun float tanf (float @var{x})
-@end deftypefun
-@deftypefun {long double} tanl (long double @var{x})
+@deftypefunx float tanf (float @var{x})
+@deftypefunx {long double} tanl (long double @var{x})
These functions return the tangent of @var{x}, where @var{x} is given in
radians.
In many applications where @code{sin} and @code{cos} are used, the value
for the same argument of both of these functions is used at the same
time. Since the algorithm to compute these values is very similar for
-both functions there is an additional function with computes both values
+both functions there is an additional function which computes both values
at the same time.
@comment math.h
@comment GNU
@deftypefun void sincos (double @var{x}, double *@var{sinx}, double *@var{cosx})
-@end deftypefun
-@deftypefun void sincosf (float @var{x}, float *@var{sinx}, float *@var{cosx})
-@end deftypefun
-@deftypefun void sincosl (long double @var{x}, long double *@var{sinx}, long double *@var{cosx})
+@deftypefunx void sincosf (float @var{x}, float *@var{sinx}, float *@var{cosx})
+@deftypefunx void sincosl (long double @var{x}, long double *@var{sinx}, long double *@var{cosx})
These functions return the sine of @var{x} in @code{*@var{sinx}} and the
cosine of @var{x} in @code{*@var{cos}}, where @var{x} is given in
radians. Both values, @code{*@var{sinx}} and @code{*@var{cosx}}, are in
@cindex complex trigonometric functions
-The trigonometric functions are in mathematics not only on real numbers.
-They can be extended to complex numbers and the @w{ISO C 9X} standard
-introduces these variants in the standard math library.
+The trigonometric functions are in mathematics not only defined on real
+numbers. They can be extended to complex numbers and the @w{ISO C 9X}
+standard introduces these variants in the standard math library.
@comment complex.h
@comment ISO
@deftypefun {complex double} csin (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} csinf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} csinl (complex long double @var{z})
+@deftypefunx {complex float} csinf (complex float @var{z})
+@deftypefunx {complex long double} csinl (complex long double @var{z})
These functions return the complex sine of the complex value in @var{z}.
The mathematical definition of the complex sine is
-@smallexample
-sin (z) = 1/(2*i) * (exp (z*i) - exp (-z*i))
-@end smallexample
+@ifinfo
+@math{sin (z) = 1/(2*i) * (exp (z*i) - exp (-z*i))}.
+@end ifinfo
+@iftex
+@tex
+$$\sin(z) = {1\over 2i} (e^{zi} - e^{-zi})$$
+@end tex
+@end iftex
@end deftypefun
@comment complex.h
@comment ISO
@deftypefun {complex double} ccos (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} ccosf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} ccosl (complex long double @var{z})
+@deftypefunx {complex float} ccosf (complex float @var{z})
+@deftypefunx {complex long double} ccosl (complex long double @var{z})
These functions return the complex cosine of the complex value in @var{z}.
The mathematical definition of the complex cosine is
-@smallexample
-cos (z) = 1/2 * (exp (z*i) + exp (-z*i))
-@end smallexample
+@ifinfo
+@math{cos (z) = 1/2 * (exp (z*i) + exp (-z*i))}
+@end ifinfo
+@iftex
+@tex
+$$\cos(z) = {1\over 2} (e^{zi} + e^{-zi})$$
+@end tex
+@end iftex
@end deftypefun
@comment complex.h
@comment ISO
@deftypefun {complex double} ctan (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} ctanf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} ctanl (complex long double @var{z})
+@deftypefunx {complex float} ctanf (complex float @var{z})
+@deftypefunx {complex long double} ctanl (complex long double @var{z})
These functions return the complex tangent of the complex value in @var{z}.
The mathematical definition of the complex tangent is
-@smallexample
-tan (z) = 1/i * (exp (z*i) - exp (-z*i)) / (exp (z*i) + exp (-z*i))
-@end smallexample
+@ifinfo
+@math{tan (z) = 1/i * (exp (z*i) - exp (-z*i)) / (exp (z*i) + exp (-z*i))}
+@end ifinfo
+@iftex
+@tex
+$$\tan(z) = {1\over i} {e^{zi} - e^{-zi}\over e^{zi} + e^{-zi}}$$
+@end tex
+@end iftex
@end deftypefun
@comment math.h
@comment ISO
@deftypefun double asin (double @var{x})
-@end deftypefun
-@deftypefun float asinf (float @var{x})
-@end deftypefun
-@deftypefun {long double} asinl (long double @var{x})
+@deftypefunx float asinf (float @var{x})
+@deftypefunx {long double} asinl (long double @var{x})
These functions compute the arc sine of @var{x}---that is, the value whose
sine is @var{x}. The value is in units of radians. Mathematically,
there are infinitely many such values; the one actually returned is the
@comment math.h
@comment ISO
@deftypefun double acos (double @var{x})
-@end deftypefun
-@deftypefun float acosf (float @var{x})
-@end deftypefun
-@deftypefun {long double} acosl (long double @var{x})
+@deftypefunx float acosf (float @var{x})
+@deftypefunx {long double} acosl (long double @var{x})
These functions compute the arc cosine of @var{x}---that is, the value
whose cosine is @var{x}. The value is in units of radians.
Mathematically, there are infinitely many such values; the one actually
@comment math.h
@comment ISO
@deftypefun double atan (double @var{x})
-@end deftypefun
-@deftypefun float atanf (float @var{x})
-@end deftypefun
-@deftypefun {long double} atanl (long double @var{x})
+@deftypefunx float atanf (float @var{x})
+@deftypefunx {long double} atanl (long double @var{x})
These functions compute the arc tangent of @var{x}---that is, the value
whose tangent is @var{x}. The value is in units of radians.
Mathematically, there are infinitely many such values; the one actually
@comment math.h
@comment ISO
@deftypefun double atan2 (double @var{y}, double @var{x})
-@end deftypefun
-@deftypefun float atan2f (float @var{y}, float @var{x})
-@end deftypefun
-@deftypefun {long double} atan2l (long double @var{y}, long double @var{x})
+@deftypefunx float atan2f (float @var{y}, float @var{x})
+@deftypefunx {long double} atan2l (long double @var{y}, long double @var{x})
This is the two argument arc tangent function. It is similar to computing
the arc tangent of @var{y}/@var{x}, except that the signs of both arguments
are used to determine the quadrant of the result, and @var{x} is
@comment complex.h
@comment ISO
@deftypefun {complex double} casin (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} casinf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} casinl (complex long double @var{z})
+@deftypefunx {complex float} casinf (complex float @var{z})
+@deftypefunx {complex long double} casinl (complex long double @var{z})
These functions compute the complex arc sine of @var{z}---that is, the
value whose sine is @var{z}. The value is in units of radians.
@comment complex.h
@comment ISO
@deftypefun {complex double} cacos (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} cacosf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} cacosl (complex long double @var{z})
+@deftypefunx {complex float} cacosf (complex float @var{z})
+@deftypefunx {complex long double} cacosl (complex long double @var{z})
These functions compute the complex arc cosine of @var{z}---that is, the
value whose cosine is @var{z}. The value is in units of radians.
@comment complex.h
@comment ISO
@deftypefun {complex double} catan (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} catanf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} catanl (complex long double @var{z})
+@deftypefunx {complex float} catanf (complex float @var{z})
+@deftypefunx {complex long double} catanl (complex long double @var{z})
These functions compute the complex arc tangent of @var{z}---that is,
the value whose tangent is @var{z}. The value is in units of radians.
@end deftypefun
@comment math.h
@comment ISO
@deftypefun double exp (double @var{x})
-@end deftypefun
-@deftypefun float expf (float @var{x})
-@end deftypefun
-@deftypefun {long double} expl (long double @var{x})
+@deftypefunx float expf (float @var{x})
+@deftypefunx {long double} expl (long double @var{x})
These functions return the value of @code{e} (the base of natural
logarithms) raised to power @var{x}.
@comment math.h
@comment ISO
@deftypefun double exp10 (double @var{x})
-@end deftypefun
-@deftypefun float exp10f (float @var{x})
-@end deftypefun
-@deftypefun {long double} exp10l (long double @var{x})
+@deftypefunx float exp10f (float @var{x})
+@deftypefunx {long double} exp10l (long double @var{x})
These functions return the value of @code{10} raised to the power @var{x}.
Mathematically, @code{exp10 (x)} is the same as @code{exp (x * log (10))}.
@comment math.h
@comment ISO
@deftypefun double exp2 (double @var{x})
-@end deftypefun
-@deftypefun float exp2f (float @var{x})
-@end deftypefun
-@deftypefun {long double} exp2l (long double @var{x})
+@deftypefunx float exp2f (float @var{x})
+@deftypefunx {long double} exp2l (long double @var{x})
These functions return the value of @code{2} raised to the power @var{x}.
Mathematically, @code{exp2 (x)} is the same as @code{exp (x * log (2))}.
@comment math.h
@comment ISO
@deftypefun double log (double @var{x})
-@end deftypefun
-@deftypefun float logf (floatdouble @var{x})
-@end deftypefun
-@deftypefun {long double} logl (long double @var{x})
+@deftypefunx float logf (floatdouble @var{x})
+@deftypefunx {long double} logl (long double @var{x})
These functions return the natural logarithm of @var{x}. @code{exp (log
(@var{x}))} equals @var{x}, exactly in mathematics and approximately in
C.
@comment math.h
@comment ISO
@deftypefun double log10 (double @var{x})
-@end deftypefun
-@deftypefun float log10f (float @var{x})
-@end deftypefun
-@deftypefun {long double} log10l (long double @var{x})
+@deftypefunx float log10f (float @var{x})
+@deftypefunx {long double} log10l (long double @var{x})
These functions return the base-10 logarithm of @var{x}. Except for the
different base, it is similar to the @code{log} function. In fact,
@code{log10 (@var{x})} equals @code{log (@var{x}) / log (10)}.
@comment math.h
@comment ISO
@deftypefun double log2 (double @var{x})
-@end deftypefun
-@deftypefun float log2f (float @var{x})
-@end deftypefun
-@deftypefun {long double} log2l (long double @var{x})
+@deftypefunx float log2f (float @var{x})
+@deftypefunx {long double} log2l (long double @var{x})
These functions return the base-2 logarithm of @var{x}. Except for the
different base, it is similar to the @code{log} function. In fact,
@code{log2 (@var{x})} equals @code{log (@var{x}) / log (2)}.
@comment math.h
@comment ISO
@deftypefun double pow (double @var{base}, double @var{power})
-@end deftypefun
-@deftypefun float powf (float @var{base}, float @var{power})
-@end deftypefun
-@deftypefun {long double} powl (long double @var{base}, long double @var{power})
+@deftypefunx float powf (float @var{base}, float @var{power})
+@deftypefunx {long double} powl (long double @var{base}, long double @var{power})
These are general exponentiation functions, returning @var{base} raised
to @var{power}.
@comment math.h
@comment ISO
@deftypefun double sqrt (double @var{x})
-@end deftypefun
-@deftypefun float sqrtf (float @var{x})
-@end deftypefun
-@deftypefun {long double} sqrtl (long double @var{x})
+@deftypefunx float sqrtf (float @var{x})
+@deftypefunx {long double} sqrtl (long double @var{x})
These functions return the nonnegative square root of @var{x}.
The @code{sqrt} function fails, and sets @code{errno} to @code{EDOM}, if
@comment math.h
@comment BSD
@deftypefun double cbrt (double @var{x})
-@end deftypefun
-@deftypefun float cbrtf (float @var{x})
-@end deftypefun
-@deftypefun {long double} cbrtl (long double @var{x})
+@deftypefunx float cbrtf (float @var{x})
+@deftypefunx {long double} cbrtl (long double @var{x})
These functions return the cube root of @var{x}. They cannot
fail; every representable real value has a representable real cube root.
@end deftypefun
@comment math.h
@comment ISO
@deftypefun double hypot (double @var{x}, double @var{y})
-@end deftypefun
-@deftypefun float hypotf (float @var{x}, float @var{y})
-@end deftypefun
-@deftypefun {long double} hypotl (long double @var{x}, long double @var{y})
+@deftypefunx float hypotf (float @var{x}, float @var{y})
+@deftypefunx {long double} hypotl (long double @var{x}, long double @var{y})
These functions return @code{sqrt (@var{x}*@var{x} +
@var{y}*@var{y})}. (This is the length of the hypotenuse of a right
triangle with sides of length @var{x} and @var{y}, or the distance
@comment math.h
@comment ISO
@deftypefun double expm1 (double @var{x})
-@end deftypefun
-@deftypefun float expm1f (float @var{x})
-@end deftypefun
-@deftypefun {long double} expm1l (long double @var{x})
+@deftypefunx float expm1f (float @var{x})
+@deftypefunx {long double} expm1l (long double @var{x})
These functions return a value equivalent to @code{exp (@var{x}) - 1}.
It is computed in a way that is accurate even if the value of @var{x} is
near zero---a case where @code{exp (@var{x}) - 1} would be inaccurate due
@comment math.h
@comment ISO
@deftypefun double log1p (double @var{x})
-@end deftypefun
-@deftypefun float log1pf (float @var{x})
-@end deftypefun
-@deftypefun {long double} log1pl (long double @var{x})
+@deftypefunx float log1pf (float @var{x})
+@deftypefunx {long double} log1pl (long double @var{x})
This function returns a value equivalent to @w{@code{log (1 + @var{x})}}.
It is computed in a way that is accurate even if the value of @var{x} is
near zero.
@comment complex.h
@comment ISO
@deftypefun {complex double} cexp (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} cexpf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} cexpl (complex long double @var{z})
+@deftypefunx {complex float} cexpf (complex float @var{z})
+@deftypefunx {complex long double} cexpl (complex long double @var{z})
These functions return the value of @code{e} (the base of natural
logarithms) raised to power of the complex value @var{z}.
+@noindent
Mathematically this corresponds to the value
-@smallexample
-exp (z) = exp (creal (z)) * (cos (cimag (z)) + I * sin (cimag (z)))
-@end smallexample
+@ifinfo
+@math{exp (z) = exp (creal (z)) * (cos (cimag (z)) + I * sin (cimag (z)))}
+@end ifinfo
+@iftex
+@tex
+$$\exp(z) = e^z = e^{{\rm Re} z} (\cos ({\rm Im} z) + i \sin ({\rm Im} z))$$
+@end tex
+@end iftex
@end deftypefun
@comment complex.h
@comment ISO
@deftypefun {complex double} clog (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} clogf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} clogl (complex long double @var{z})
+@deftypefunx {complex float} clogf (complex float @var{z})
+@deftypefunx {complex long double} clogl (complex long double @var{z})
These functions return the natural logarithm of the complex value
@var{z}. Unlike the real value version @code{log} and its variants,
@code{clog} has no limit for the range of its argument @var{z}.
+@noindent
Mathematically this corresponds to the value
-@smallexample
-log (z) = log (cabs (z)) + I * carg (z)
-@end smallexample
+@ifinfo
+@math{log (z) = log (cabs (z)) + I * carg (z)}
+@end ifinfo
+@iftex
+@tex
+$$\log(z) = \log(|z|) + i \arg(z)$$
+@end tex
+@end iftex
@end deftypefun
@comment complex.h
@comment ISO
@deftypefun {complex double} csqrt (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} csqrtf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} csqrtl (complex long double @var{z})
+@deftypefunx {complex float} csqrtf (complex float @var{z})
+@deftypefunx {complex long double} csqrtl (complex long double @var{z})
These functions return the complex root of the argument @var{z}. Unlike
the @code{sqrt} function these functions do not have any restriction on
the value of the argument.
@comment complex.h
@comment ISO
@deftypefun {complex double} cpow (complex double @var{base}, complex double @var{power})
-@end deftypefun
-@deftypefun {complex float} cpowf (complex float @var{base}, complex float @var{power})
-@end deftypefun
-@deftypefun {complex long double} cpowl (complex long double @var{base}, complex long double @var{power})
+@deftypefunx {complex float} cpowf (complex float @var{base}, complex float @var{power})
+@deftypefunx {complex long double} cpowl (complex long double @var{base}, complex long double @var{power})
These functions return the complex value @var{BASE} raised to the power of
@var{power}. This is computed as
-@smallexample
-cpow (x, y) = cexp (y * clog (x))
-@end smallexample
+@ifinfo
+@math{cpow (x, y) = cexp (y * clog (x))}
+@end ifinfo
+@iftex
+@tex
+$${\rm cpow}(x, y) = e^{y \log(x)}$$
+@end tex
+@end iftex
@end deftypefun
@comment math.h
@comment ISO
@deftypefun double sinh (double @var{x})
-@end deftypefun
-@deftypefun float sinhf (float @var{x})
-@end deftypefun
-@deftypefun {long double} sinhl (long double @var{x})
+@deftypefunx float sinhf (float @var{x})
+@deftypefunx {long double} sinhl (long double @var{x})
These functions return the hyperbolic sine of @var{x}, defined
mathematically as @w{@code{(exp (@var{x}) - exp (-@var{x})) / 2}}. The
function fails, and sets @code{errno} to @code{ERANGE}, if the value of
@comment math.h
@comment ISO
@deftypefun double cosh (double @var{x})
-@end deftypefun
-@deftypefun float coshf (float @var{x})
-@end deftypefun
-@deftypefun {long double} coshl (long double @var{x})
+@deftypefunx float coshf (float @var{x})
+@deftypefunx {long double} coshl (long double @var{x})
These function return the hyperbolic cosine of @var{x},
defined mathematically as @w{@code{(exp (@var{x}) + exp (-@var{x})) / 2}}.
The function fails, and sets @code{errno} to @code{ERANGE}, if the value
@comment math.h
@comment ISO
@deftypefun double tanh (double @var{x})
-@end deftypefun
-@deftypefun float tanhf (float @var{x})
-@end deftypefun
-@deftypefun {long double} tanhl (long double @var{x})
+@deftypefunx float tanhf (float @var{x})
+@deftypefunx {long double} tanhl (long double @var{x})
These functions return the hyperbolic tangent of @var{x}, whose
mathematical definition is @w{@code{sinh (@var{x}) / cosh (@var{x})}}.
@end deftypefun
@comment complex.h
@comment ISO
@deftypefun {complex double} csinh (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} csinhf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} csinhl (complex long double @var{z})
+@deftypefunx {complex float} csinhf (complex float @var{z})
+@deftypefunx {complex long double} csinhl (complex long double @var{z})
These functions return the complex hyperbolic sine of @var{z}, defined
mathematically as @w{@code{(exp (@var{z}) - exp (-@var{z})) / 2}}. The
function fails, and sets @code{errno} to @code{ERANGE}, if the value of
@comment complex.h
@comment ISO
@deftypefun {complex double} ccosh (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} ccoshf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} ccoshl (complex long double @var{z})
+@deftypefunx {complex float} ccoshf (complex float @var{z})
+@deftypefunx {complex long double} ccoshl (complex long double @var{z})
These functions return the complex hyperbolic cosine of @var{z}, defined
mathematically as @w{@code{(exp (@var{z}) + exp (-@var{z})) / 2}}. The
function fails, and sets @code{errno} to @code{ERANGE}, if the value of
@comment complex.h
@comment ISO
@deftypefun {complex double} ctanh (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} ctanhf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} ctanhl (complex long double @var{z})
+@deftypefunx {complex float} ctanhf (complex float @var{z})
+@deftypefunx {complex long double} ctanhl (complex long double @var{z})
These functions return the complex hyperbolic tangent of @var{z}, whose
mathematical definition is @w{@code{csinh (@var{z}) / ccosh (@var{z})}}.
@end deftypefun
@comment math.h
@comment ISO
@deftypefun double asinh (double @var{x})
-@end deftypefun
-@deftypefun float asinhf (float @var{x})
-@end deftypefun
-@deftypefun {long double} asinhl (long double @var{x})
+@deftypefunx float asinhf (float @var{x})
+@deftypefunx {long double} asinhl (long double @var{x})
These functions return the inverse hyperbolic sine of @var{x}---the
value whose hyperbolic sine is @var{x}.
@end deftypefun
@comment math.h
@comment ISO
@deftypefun double acosh (double @var{x})
-@end deftypefun
-@deftypefun float acoshf (float @var{x})
-@end deftypefun
-@deftypefun {long double} acoshl (long double @var{x})
+@deftypefunx float acoshf (float @var{x})
+@deftypefunx {long double} acoshl (long double @var{x})
These functions return the inverse hyperbolic cosine of @var{x}---the
value whose hyperbolic cosine is @var{x}. If @var{x} is less than
@code{1}, @code{acosh} returns @code{HUGE_VAL}.
@comment math.h
@comment ISO
@deftypefun double atanh (double @var{x})
-@end deftypefun
-@deftypefun float atanhf (float @var{x})
-@end deftypefun
-@deftypefun {long double} atanhl (long double @var{x})
+@deftypefunx float atanhf (float @var{x})
+@deftypefunx {long double} atanhl (long double @var{x})
These functions return the inverse hyperbolic tangent of @var{x}---the
value whose hyperbolic tangent is @var{x}. If the absolute value of
@var{x} is greater than or equal to @code{1}, @code{atanh} returns
@comment complex.h
@comment ISO
@deftypefun {complex double} casinh (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} casinhf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} casinhl (complex long double @var{z})
+@deftypefunx {complex float} casinhf (complex float @var{z})
+@deftypefunx {complex long double} casinhl (complex long double @var{z})
These functions return the inverse complex hyperbolic sine of
@var{z}---the value whose complex hyperbolic sine is @var{z}.
@end deftypefun
@comment complex.h
@comment ISO
@deftypefun {complex double} cacosh (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} cacoshf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} cacoshl (complex long double @var{z})
+@deftypefunx {complex float} cacoshf (complex float @var{z})
+@deftypefunx {complex long double} cacoshl (complex long double @var{z})
These functions return the inverse complex hyperbolic cosine of
@var{z}---the value whose complex hyperbolic cosine is @var{z}. Unlike
the real valued function @code{acosh} there is not limit for the range
@comment complex.h
@comment ISO
@deftypefun {complex double} catanh (complex double @var{z})
-@end deftypefun
-@deftypefun {complex float} catanhf (complex float @var{z})
-@end deftypefun
-@deftypefun {complex long double} catanhl (complex long double @var{z})
+@deftypefunx {complex float} catanhf (complex float @var{z})
+@deftypefunx {complex long double} catanhl (complex long double @var{z})
These functions return the inverse complex hyperbolic tangent of
@var{z}---the value whose complex hyperbolic tangent is @var{z}. Unlike
the real valued function @code{atanh} there is not limit for the range
@comment signal.h
@comment POSIX.1
@deftypevr Macro int SIGUSR1
-@end deftypevr
@comment signal.h
@comment POSIX.1
-@deftypevr Macro int SIGUSR2
+@deftypevrx Macro int SIGUSR2
@cindex user signals
The @code{SIGUSR1} and @code{SIGUSR2} signals are set aside for you to
use any way you want. They're useful for simple interprocess
Here are symbolic constants that represent the basic types; they stand
for integer values.
-@table @code
+@vtable @code
@comment printf.h
@comment GNU
@item PA_INT
-@vindex PA_INT
This specifies that the base type is @code{int}.
@comment printf.h
@comment GNU
@item PA_CHAR
-@vindex PA_CHAR
This specifies that the base type is @code{int}, cast to @code{char}.
@comment printf.h
@comment GNU
@item PA_STRING
-@vindex PA_STRING
This specifies that the base type is @code{char *}, a null-terminated string.
@comment printf.h
@comment GNU
@item PA_POINTER
-@vindex PA_POINTER
This specifies that the base type is @code{void *}, an arbitrary pointer.
@comment printf.h
@comment GNU
@item PA_FLOAT
-@vindex PA_FLOAT
This specifies that the base type is @code{float}.
@comment printf.h
@comment GNU
@item PA_DOUBLE
-@vindex PA_DOUBLE
This specifies that the base type is @code{double}.
@comment printf.h
@comment GNU
@item PA_LAST
-@vindex PA_LAST
You can define additional base types for your own programs as offsets
from @code{PA_LAST}. For example, if you have data types @samp{foo}
and @samp{bar} with their own specialized @code{printf} conversions,
#define PA_FOO PA_LAST
#define PA_BAR (PA_LAST + 1)
@end smallexample
-@end table
+@end vtable
Here are the flag bits that modify a basic type. They are combined with
the code for the basic type using inclusive-or.
-@table @code
+@vtable @code
@comment printf.h
@comment GNU
@item PA_FLAG_PTR
-@vindex PA_FLAG_PTR
If this bit is set, it indicates that the encoded type is a pointer to
the base type, rather than an immediate value.
For example, @samp{PA_INT|PA_FLAG_PTR} represents the type @samp{int *}.
@comment printf.h
@comment GNU
@item PA_FLAG_SHORT
-@vindex PA_FLAG_SHORT
If this bit is set, it indicates that the base type is modified with
@code{short}. (This corresponds to the @samp{h} type modifier.)
@comment printf.h
@comment GNU
@item PA_FLAG_LONG
-@vindex PA_FLAG_LONG
If this bit is set, it indicates that the base type is modified with
@code{long}. (This corresponds to the @samp{l} type modifier.)
@comment printf.h
@comment GNU
@item PA_FLAG_LONG_LONG
-@vindex PA_FLAG_LONG_LONG
If this bit is set, it indicates that the base type is modified with
@code{long long}. (This corresponds to the @samp{L} type modifier.)
@comment printf.h
@comment GNU
@item PA_FLAG_LONG_DOUBLE
-@vindex PA_FLAG_LONG_DOUBLE
This is a synonym for @code{PA_FLAG_LONG_LONG}, used by convention with
a base type of @code{PA_DOUBLE} to indicate a type of @code{long double}.
-@end table
+@end vtable
@ifinfo
For an example of using these facilities, see @ref{Example of Parsing}.
The postfix tag corresponds to bytes, kilobytes, megabytes, gigabytes,
etc. The full table is:
-@multitable {' '} {2^10 (1024)} {zetta} {Upper} {10^24 (1000)}
+@ifinfo
+@multitable @hsep @vsep {' '} {2^10 (1024)} {zetta} {Upper} {10^24 (1000)}
@item low @tab Multiplier @tab From @tab Upper @tab Multiplier
@item ' ' @tab 1 @tab @tab ' ' @tab 1
@item k @tab 2^10 (1024) @tab kilo @tab K @tab 10^3 (1000)
@item z @tab 2^70 @tab zetta @tab Z @tab 10^21
@item y @tab 2^80 @tab yotta @tab Y @tab 10^24
@end multitable
+@end ifinfo
+@iftex
+@tex
+\hbox to\hsize{\hfil\vbox{\offinterlineskip
+\hrule
+\halign{\strut#& \vrule#\tabskip=1em plus2em& {\tt#}\hfil& \vrule#& #\hfil& \vrule#& #\hfil& \vrule#& {\tt#}\hfil& \vrule#& #\hfil& \vrule#\tabskip=0pt\cr
+\noalign{\hrule}
+\omit&height2pt&\omit&&\omit&&\omit&&\omit&&\omit&\cr
+&& \omit low && Multiplier && From && \omit Upper && Multiplier &\cr
+\omit&height2pt&\omit&&\omit&&\omit&&\omit&&\omit&\cr
+\noalign{\hrule}
+&& {\tt\char32} && 1 && && {\tt\char32} && 1 &\cr
+&& k && $2^{10} = 1024$ && kilo && K && $10^3 = 1000$ &\cr
+&& m && $2^{20}$ && mega && M && $10^6$ &\cr
+&& g && $2^{30}$ && giga && G && $10^9$ &\cr
+&& t && $2^{40}$ && tera && T && $10^{12}$ &\cr
+&& p && $2^{50}$ && peta && P && $10^{15}$ &\cr
+&& e && $2^{60}$ && exa && E && $10^{18}$ &\cr
+&& z && $2^{70}$ && zetta && Z && $10^{21}$ &\cr
+&& y && $2^{80}$ && yotta && Y && $10^{24}$ &\cr
+\noalign{\hrule}}}\hfil}
+@end tex
+@end iftex
The default precision is 3, i.e., 1024 is printed with a lower-case
format character as if it were @code{%.3fk} and will yield @code{1.000k}.
BEGIN { header = 0;
nameword["@defun"]=1
+nameword["@defunx"]=1
nameword["@defmac"]=1
+nameword["@defmacx"]=1
nameword["@defspec"]=1
+nameword["@defspecx"]=1
nameword["@defvar"]=1
+nameword["@defvarx"]=1
nameword["@defopt"]=1
+nameword["@defoptx"]=1
nameword["@deffn"]=2
+nameword["@deffnx"]=2
nameword["@defvr"]=2
+nameword["@defvrx"]=2
nameword["@deftp"]=2
+nameword["@deftpx"]=2
nameword["@deftypefun"]=2
+nameword["@deftypefunx"]=2
nameword["@deftypevar"]=2
+nameword["@deftypevarx"]=2
nameword["@deftypefn"]=3
+nameword["@deftypefnx"]=3
nameword["@deftypevr"]=3
+nameword["@deftypevrx"]=3
firstword["@defun"]=1
+firstword["@defunx"]=1
firstword["@defmac"]=1
+firstword["@defmacx"]=1
firstword["@defspec"]=1
+firstword["@defspecx"]=1
firstword["@defvar"]=1
+firstword["@defvarx"]=1
firstword["@defopt"]=1
+firstword["@defoptx"]=1
firstword["@deffn"]=2
+firstword["@deffnx"]=2
firstword["@defvr"]=2
+firstword["@defvrx"]=2
firstword["@deftp"]=2
+firstword["@deftpx"]=2
firstword["@deftypefun"]=1
+firstword["@deftypefunx"]=1
firstword["@deftypevar"]=1
+firstword["@deftypevarx"]=1
firstword["@deftypefn"]=2
+firstword["@deftypefnx"]=2
firstword["@deftypevr"]=2
+firstword["@deftypevrx"]=2
nameword["@item"]=1
firstword["@item"]=1
nameword["@itemx"]=1
%% TeX macros to handle Texinfo files.
-%% $Id: texinfo.tex,v 2.196 1997/01/04 19:24:13 karl Exp $
+%% $Id: texinfo.tex,v 2.197 1997/04/30 15:34:30 drepper Exp $
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93,
% 94, 95, 96, 97 Free Software Foundation, Inc.
% This automatically updates the version number based on RCS.
\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision: 2.196 $
+\deftexinfoversion$Revision: 2.197 $
\message{Loading texinfo package [Version \texinfoversion]:}
% If in a .fmt file, print the version number
\showboxbreadth\maxdimen\showboxdepth\maxdimen
}%
-%---------------------Begin change-----------------------
+% For @cropmarks command.
+% Do @cropmarks to get crop marks.
+%
+\newif\ifcropmarks
+\let\cropmarks = \cropmarkstrue
%
-%%%% For @cropmarks command.
-% Dimensions to add cropmarks at corners Added by P. A. MacKay, 12 Nov. 1986
+% Dimensions to add cropmarks at corners.
+% Added by P. A. MacKay, 12 Nov. 1986
%
\newdimen\cornerlong \newdimen\cornerthick
-\newdimen \topandbottommargin
-\newdimen \outerhsize \newdimen \outervsize
+\newdimen\topandbottommargin
+\newdimen\outerhsize \newdimen\outervsize
\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
\outerhsize=7in
%\outervsize=9.5in
% Alternative @smallbook page size is 9.25in
\outervsize=9.25in
\topandbottommargin=.75in
-%
-%---------------------End change-----------------------
% Main output routine.
\chardef\PAGE = 255
\output = {\onepageout{\pagecontents\PAGE}}
-\newbox\headlinebox \newbox\footlinebox
+\newbox\headlinebox
+\newbox\footlinebox
% \onepageout takes a vbox as an argument. Note that \pagecontents
% does insertions, but you have to call it yourself.
\def\onepageout#1{%
- \hoffset=\normaloffset
+ \ifcropmarks
+ \hoffset = 0pt
+ \else
+ \hoffset = \normaloffset
+ \fi
+ %
\ifodd\pageno \advance\hoffset by \bindingoffset
\else \advance\hoffset by -\bindingoffset\fi
%
\normalturnoffactive % \ in index entries must not stay \, e.g., if
% the page break happens to be in the middle of an example.
\shipout\vbox{%
+ \ifcropmarks
+ \vbox to \outervsize\bgroup
+ \hsize = \outerhsize
+ \vbox{\line{\ewtop\hfill\ewtop}}%
+ \nointerlineskip
+ \line{%
+ \vbox{\moveleft\cornerthick\nstop}%
+ \hfill
+ \vbox{\moveright\cornerthick\nstop}%
+ }%
+ \vskip\topandbottommargin
+ \fi
+ %
\unvbox\headlinebox
\pagebody{#1}%
\unvbox\footlinebox
+ %
+ \ifcropmarks
+ \vskip\topandbottommargin plus1fill minus1fill
+ \boxmaxdepth = \cornerthick
+ \line{%
+ \vbox{\moveleft\cornerthick\nsbot}%
+ \hfill
+ \vbox{\moveright\cornerthick\nsbot}%
+ }%
+ \nointerlineskip
+ \vbox{\line{\ewbot\hfill\ewbot}}%
+ \egroup % \vbox from first cropmarks clause
+ \fi
}%
}%
\advancepageno
\ifnum\outputpenalty>-20000 \else\dosupereject\fi
}
-%%%% For @cropmarks command %%%%
-
-% Here is a modification of the main output routine for Near East Publications
-% This provides right-angle cropmarks at all four corners.
-% The contents of the page are centerlined into the cropmarks,
-% and any desired binding offset is added as an \hskip on either
-% site of the centerlined box. (P. A. MacKay, 12 November, 1986)
-%
-\def\croppageout#1{\hoffset=0pt % make sure this doesn't mess things up
-{\escapechar=`\\\relax % makes sure backslash is used in output files.
- \shipout
- \vbox to \outervsize{\hsize=\outerhsize
- \vbox{\line{\ewtop\hfill\ewtop}}
- \nointerlineskip
- \line{\vbox{\moveleft\cornerthick\nstop}
- \hfill
- \vbox{\moveright\cornerthick\nstop}}
- \vskip \topandbottommargin
- \centerline{\ifodd\pageno\hskip\bindingoffset\fi
- \vbox{
- {\let\hsize=\pagewidth \makeheadline}
- \pagebody{#1}
- {\let\hsize=\pagewidth \makefootline}}
- \ifodd\pageno\else\hskip\bindingoffset\fi}
- \vskip \topandbottommargin plus1fill minus1fill
- \boxmaxdepth\cornerthick
- \line{\vbox{\moveleft\cornerthick\nsbot}
- \hfill
- \vbox{\moveright\cornerthick\nsbot}}
- \nointerlineskip
- \vbox{\line{\ewbot\hfill\ewbot}}
- }}
- \advancepageno
- \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
-%
-% Do @cropmarks to get crop marks
-\def\cropmarks{\let\onepageout=\croppageout }
-
\newinsert\margin \dimen\margin=\maxdimen
\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
\def\r##1{\realbackslash r {##1}}%
\def\i##1{\realbackslash i {##1}}%
\def\b##1{\realbackslash b {##1}}%
+\def\sc##1{\realbackslash sc {##1}}%
\def\cite##1{\realbackslash cite {##1}}%
\def\key##1{\realbackslash key {##1}}%
\def\file##1{\realbackslash file {##1}}%
% because we don't want its macros evaluated now.
\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
{\chapternofonts%
-\edef\temp{{\realbackslash chapentry {#1}{\the\chapno}{\noexpand\folio}}}%
+\toks0 = {#1}%
+\edef\temp{{\realbackslash chapentry{\the\toks0}{\the\chapno}{\noexpand\folio}}}%
\escapechar=`\\%
\write \contentsfile \temp %
\donoderef %
\gdef\thischaptername{#1}%
\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
{\chapternofonts%
-\edef\temp{{\realbackslash chapentry
- {#1}{\putwordAppendix{} \appendixletter}{\noexpand\folio}}}%
+\toks0 = {#1}%
+\edef\temp{{\realbackslash chapentry{\the\toks0}%
+ {\putwordAppendix{} \appendixletter}{\noexpand\folio}}}%
\escapechar=`\\%
\write \contentsfile \temp %
\appendixnoderef %
\unnumbchapmacro {#1}%
\gdef\thischapter{#1}\gdef\thissection{#1}%
{\chapternofonts%
-\edef\temp{{\realbackslash unnumbchapentry {#1}{\noexpand\folio}}}%
+\toks0 = {#1}%
+\edef\temp{{\realbackslash unnumbchapentry{\the\toks0}{\noexpand\folio}}}%
\escapechar=`\\%
\write \contentsfile \temp %
\unnumbnoderef %
\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
{\chapternofonts%
+\toks0 = {#1}%
\edef\temp{{\realbackslash secentry %
-{#1}{\the\chapno}{\the\secno}{\noexpand\folio}}}%
+{\the\toks0}{\the\chapno}{\the\secno}{\noexpand\folio}}}%
\escapechar=`\\%
\write \contentsfile \temp %
\donoderef %
\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
{\chapternofonts%
+\toks0 = {#1}%
\edef\temp{{\realbackslash secentry %
-{#1}{\appendixletter}{\the\secno}{\noexpand\folio}}}%
+{\the\toks0}{\appendixletter}{\the\secno}{\noexpand\folio}}}%
\escapechar=`\\%
\write \contentsfile \temp %
\appendixnoderef %
\def\unnumberedseczzz #1{\seccheck{unnumberedsec}%
\plainsecheading {#1}\gdef\thissection{#1}%
{\chapternofonts%
-\edef\temp{{\realbackslash unnumbsecentry{#1}{\noexpand\folio}}}%
+\toks0 = {#1}%
+\edef\temp{{\realbackslash unnumbsecentry{\the\toks0}{\noexpand\folio}}}%
\escapechar=`\\%
\write \contentsfile \temp %
\unnumbnoderef %
\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
{\chapternofonts%
+\toks0 = {#1}%
\edef\temp{{\realbackslash subsecentry %
-{#1}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
+{\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
\escapechar=`\\%
\write \contentsfile \temp %
\donoderef %
\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
{\chapternofonts%
+\toks0 = {#1}%
\edef\temp{{\realbackslash subsecentry %
-{#1}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
+{\the\toks0}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
\escapechar=`\\%
\write \contentsfile \temp %
\appendixnoderef %
\def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}%
\plainsubsecheading {#1}\gdef\thissection{#1}%
{\chapternofonts%
-\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}%
+\toks0 = {#1}%
+\edef\temp{{\realbackslash unnumbsubsecentry{\the\toks0}{\noexpand\folio}}}%
\escapechar=`\\%
\write \contentsfile \temp %
\unnumbnoderef %
\subsubsecheading {#1}
{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
{\chapternofonts%
-\edef\temp{{\realbackslash subsubsecentry %
- {#1}
+\toks0 = {#1}%
+\edef\temp{{\realbackslash subsubsecentry{\the\toks0}
{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}
{\noexpand\folio}}}%
\escapechar=`\\%
\subsubsecheading {#1}
{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
{\chapternofonts%
-\edef\temp{{\realbackslash subsubsecentry{#1}%
+\toks0 = {#1}%
+\edef\temp{{\realbackslash subsubsecentry{\the\toks0}%
{\appendixletter}
{\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}%
\escapechar=`\\%
\def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}%
\plainsubsubsecheading {#1}\gdef\thissection{#1}%
{\chapternofonts%
-\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}%
+\toks0 = {#1}%
+\edef\temp{{\realbackslash unnumbsubsubsecentry{\the\toks0}{\noexpand\folio}}}%
\escapechar=`\\%
\write \contentsfile \temp %
\unnumbnoderef %
/^@deftypefun/ {
printf ("* %s: (libc)%s.\n",
- gensub (/@deftypefun +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]+).*/, "\\2", 1),
+ gensub (/@deftypefunx? +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]*).*/, "\\2", 1),
last_node);
}
/^@deftypevr/ {
printf ("* %s: (libc)%s.\n",
- gensub (/@deftypevr +([^{ ]+|\{[^}]+\}) +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]+).*/, "\\3", 1),
+ gensub (/@deftypevrx? +([^{ ]+|\{[^}]+\}) +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]*).*/, "\\3", 1),
last_node);
}
/^@deftypefn/ {
printf ("* %s: (libc)%s.\n",
- gensub (/@deftypefn +([^{ ]+|\{[^}]+\}) +[^{ ]*(\{[^}]+\})? +([[:alpha:]_][[:alnum:]_]+).*/, "\\3", 1),
+ gensub (/@deftypefnx? +([^{ ]+|\{[^}]+\}) +[^{ ]*(\{[^}]+\})? +([[:alpha:]_][[:alnum:]_]*).*/, "\\3", 1),
last_node);
}
#ifndef _FENV_H
-#define __FENV_H 1
+#define _FENV_H 1
#include <features.h>
/* Get the architecture dependend definitions. The following definitions
The following macros are defined iff the implementation supports this
kind of exception.
- FE_INEXACT inxeact result
+ FE_INEXACT inexact result
FE_DIVBYZERO devision by zero
FE_UNDERFLOW result not representable due to underflow
FE_OVERFLOW result not representable due to overflow
extern int fegetround __P ((void));
/* Establish the rounding direction represented by ROUND. */
-extern int fesetround __P ((int __round));
+extern int fesetround __P ((int __rounding_direction));
/* Floating-point environment. */
#include <complex.h>
#include <math.h>
#include <float.h>
+#include <fenv.h>
#include <errno.h>
#include <stdlib.h>
#define PRINT 1
#define NO_PRINT 0
-#define TEST_EXCEPTION(test) do {} while (0);
-/* As long as no exception code is available prevent warnings. */
-#define UNUSED __attribute__ ((unused))
static int noErrors;
if ((x <= min_value) || (x >= max_value) || !isfinite (x))
x = (max_value - min_value) / 2 + min_value;
+ /* Make sure the RNG has no influence on the exceptions. */
+ feclearexcept (FE_ALL_EXCEPT);
+
return x;
}
}
+/* Test whether a given exception was raised. */
+static void
+test_single_exception (const char *test_name,
+ short int exception,
+ short int exc_flag,
+ fexcept_t fe_flag,
+ const char *flag_name)
+{
+ if (exception & exc_flag)
+ {
+ if (fetestexcept (fe_flag))
+ {
+ if (verbose > 2)
+ printf ("Pass: %s:\nException \"%s\" set\n", test_name, flag_name);
+ }
+ else
+ {
+ if (verbose)
+ printf ("Fail: %s:\nException \"%s\" not set\n",
+ test_name, flag_name);
+ ++noErrors;
+ }
+ }
+ else
+ {
+ if (fetestexcept (fe_flag))
+ {
+ if (verbose)
+ printf ("Fail: %s:\nException \"%s\" set\n",
+ test_name, flag_name);
+ ++noErrors;
+ }
+ else
+ {
+ if (verbose > 2)
+ printf ("Pass: %s:\nException \"%s\" not set\n",
+ test_name, flag_name);
+ }
+ }
+}
+
+
+/* Test whether exception given by EXCEPTION are raised. */
+static void
+test_not_exception (const char *test_name, short int exception)
+{
+#ifdef FE_DIVBYZERO
+ if ((exception & FE_DIVBYZERO) == 0)
+ test_single_exception (test_name, exception,
+ DIVIDE_BY_ZERO_EXCEPTION, FE_DIVBYZERO,
+ "Divide by zero");
+#endif
+#ifdef FE_INVALID
+ if ((exception & FE_INVALID) == 0)
+ test_single_exception (test_name, exception, INVALID_EXCEPTION, FE_INVALID,
+ "Invalid operation");
+#endif
+ feclearexcept (FE_ALL_EXCEPT);
+}
+
+
+/* Test whether exceptions given by EXCEPTION are raised. */
+static void
+test_exceptions (const char *test_name, short int exception)
+{
+#ifdef FE_DIVBYZERO
+ test_single_exception (test_name, exception,
+ DIVIDE_BY_ZERO_EXCEPTION, FE_DIVBYZERO,
+ "Divide by zero");
+#endif
+#ifdef FE_INVALID
+ test_single_exception (test_name, exception, INVALID_EXCEPTION, FE_INVALID,
+ "Invalid operation");
+#endif
+ feclearexcept (FE_ALL_EXCEPT);
+}
+
+
/* Test if two floating point numbers are equal. */
static int
check_equal (MATHTYPE computed, MATHTYPE supplied, MATHTYPE eps, MATHTYPE * diff)
MATHTYPE diff;
int result;
+ test_exceptions (test_name, NO_EXCEPTION);
result = check_equal (computed, expected, 0, &diff);
output_result (test_name, result,
computed, expected, diff, PRINT, PRINT);
MATHTYPE diff;
int result;
+ test_exceptions (test_name, NO_EXCEPTION);
result = check_equal (computed, expected, 0, &diff);
output_result_ext (test_name, result,
computed, expected, diff, parameter, PRINT, PRINT);
}
+static void
+check_exc (const char *test_name, MATHTYPE computed, MATHTYPE expected,
+ short exception)
+{
+ MATHTYPE diff;
+ int result;
+
+ test_exceptions (test_name, exception);
+ result = check_equal (computed, expected, 0, &diff);
+ output_result (test_name, result,
+ computed, expected, diff, PRINT, PRINT);
+}
+
+
static void
check_eps (const char *test_name, MATHTYPE computed, MATHTYPE expected,
MATHTYPE epsilon)
MATHTYPE diff;
int result;
+ test_exceptions (test_name, NO_EXCEPTION);
result = check_equal (computed, expected, epsilon, &diff);
output_result (test_name, result,
computed, expected, diff, PRINT, PRINT);
static void
check_bool (const char *test_name, int computed)
{
+ test_exceptions (test_name, NO_EXCEPTION);
output_result_bool (test_name, computed);
}
long int diff = computed - expected;
int result = diff == 0;
+ test_exceptions (test_name, NO_EXCEPTION);
+
if (result)
{
if (verbose > 2)
long long int diff = computed - expected;
int result = diff == 0;
+ test_exceptions (test_name, NO_EXCEPTION);
+
if (result)
{
if (verbose > 2)
static void
check_isnan (const char *test_name, MATHTYPE computed)
{
+ test_exceptions (test_name, NO_EXCEPTION);
output_isvalue (test_name, isnan (computed), computed);
}
static void
check_isnan_exc (const char *test_name, MATHTYPE computed,
- short exception UNUSED)
+ short exception)
{
+ test_exceptions (test_name, exception);
+ output_isvalue (test_name, isnan (computed), computed);
+}
+
+
+static void
+check_isnan_maybe_exc (const char *test_name, MATHTYPE computed,
+ short exception)
+{
+ test_not_exception (test_name, exception);
output_isvalue (test_name, isnan (computed), computed);
}
check_isnan_ext (const char *test_name, MATHTYPE computed,
MATHTYPE parameter)
{
+ test_exceptions (test_name, NO_EXCEPTION);
output_isvalue_ext (test_name, isnan (computed), computed, parameter);
}
static void
check_isinfp (const char *test_name, MATHTYPE computed)
{
+ test_exceptions (test_name, NO_EXCEPTION);
output_isvalue (test_name, (ISINF (computed) == +1), computed);
}
check_isinfp_ext (const char *test_name, MATHTYPE computed,
MATHTYPE parameter)
{
+ test_exceptions (test_name, NO_EXCEPTION);
output_isvalue_ext (test_name, (ISINF (computed) == +1), computed, parameter);
}
/* Tests if computed is +Inf */
static void
check_isinfp_exc (const char *test_name, MATHTYPE computed,
- int exception UNUSED)
+ int exception)
{
+ test_exceptions (test_name, exception);
output_isvalue (test_name, (ISINF (computed) == +1), computed);
}
static void
check_isinfn (const char *test_name, MATHTYPE computed)
{
+ test_exceptions (test_name, NO_EXCEPTION);
output_isvalue (test_name, (ISINF (computed) == -1), computed);
}
check_isinfn_ext (const char *test_name, MATHTYPE computed,
MATHTYPE parameter)
{
+ test_exceptions (test_name, NO_EXCEPTION);
output_isvalue_ext (test_name, (ISINF (computed) == -1), computed, parameter);
}
/* Tests if computed is -Inf */
static void
check_isinfn_exc (const char *test_name, MATHTYPE computed,
- int exception UNUSED)
+ int exception)
{
+ test_exceptions (test_name, exception);
output_isvalue (test_name, (ISINF (computed) == -1), computed);
}
check ("acos (1) == 0", FUNC(acos) (1), 0);
x = random_greater (1);
- check_isnan_exc ("acos (x) == NaN + invalid exception for |x| > 1",
+ check_isnan_exc ("acos (x) == NaN plus invalid exception for |x| > 1",
FUNC(acos) (x),
INVALID_EXCEPTION);
}
check ("asin (0) == 0", FUNC(asin) (0), 0);
x = random_greater (1);
- check_isnan_exc ("asin x == NaN + invalid exception for |x| > 1",
+ check_isnan_exc ("asin x == NaN plus invalid exception for |x| > 1",
FUNC(asin) (x),
INVALID_EXCEPTION);
}
static void
log_test (void)
{
- check_isinfn_exc ("log (+0) == -inf", FUNC(log) (0),
- DIVIDE_BY_ZERO_EXCEPTION);
- check_isinfn_exc ("log (-0) == -inf", FUNC(log) (minus_zero),
- DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfn_exc ("log (+0) == -inf plus divide-by-zero exception",
+ FUNC(log) (0), DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfn_exc ("log (-0) == -inf plus divide-by-zero exception",
+ FUNC(log) (minus_zero), DIVIDE_BY_ZERO_EXCEPTION);
check ("log (1) == 0", FUNC(log) (1), 0);
- check_isnan_exc ("log (x) == NaN plus divide-by-zero exception if x < 0",
+ check_isnan_exc ("log (x) == NaN plus invalid exception if x < 0",
FUNC(log) (-1), INVALID_EXCEPTION);
check_isinfp ("log (+inf) == +inf", FUNC(log) (plus_infty));
static void
log10_test (void)
{
- check_isinfn_exc ("log10 (+0) == -inf", FUNC(log10) (0),
- DIVIDE_BY_ZERO_EXCEPTION);
- check_isinfn_exc ("log10 (-0) == -inf", FUNC(log10) (minus_zero),
- DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfn_exc ("log10 (+0) == -inf plus divide-by-zero exception",
+ FUNC(log10) (0), DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfn_exc ("log10 (-0) == -inf plus divide-by-zero exception",
+ FUNC(log10) (minus_zero), DIVIDE_BY_ZERO_EXCEPTION);
check ("log10 (1) == +0", FUNC(log10) (1), 0);
- check_isnan_exc ("log10 (x) == NaN plus divide-by-zero exception if x < 0",
+ check_isnan_exc ("log10 (x) == NaN plus invalid exception if x < 0",
FUNC(log10) (-1), INVALID_EXCEPTION);
check_isinfp ("log10 (+inf) == +inf", FUNC(log10) (plus_infty));
check ("log1p (+0) == +0", FUNC(log1p) (0), 0);
check ("log1p (-0) == -0", FUNC(log1p) (minus_zero), minus_zero);
- check_isinfn_exc ("log1p (-1) == -inf", FUNC(log1p) (-1),
- DIVIDE_BY_ZERO_EXCEPTION);
- check_isnan_exc ("log1p (x) == NaN plus divide-by-zero exception if x < -1",
+ check_isinfn_exc ("log1p (-1) == -inf plus divide-by-zero exception",
+ FUNC(log1p) (-1), DIVIDE_BY_ZERO_EXCEPTION);
+ check_isnan_exc ("log1p (x) == NaN plus invalid exception if x < -1",
FUNC(log1p) (-2), INVALID_EXCEPTION);
check_isinfp ("log1p (+inf) == +inf", FUNC(log1p) (plus_infty));
static void
log2_test (void)
{
- check_isinfn_exc ("log2 (+0) == -inf", FUNC(log2) (0),
- DIVIDE_BY_ZERO_EXCEPTION);
- check_isinfn_exc ("log2 (-0) == -inf", FUNC(log2) (minus_zero),
- DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfn_exc ("log2 (+0) == -inf plus divide-by-zero exception",
+ FUNC(log2) (0), DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfn_exc ("log2 (-0) == -inf plus divide-by-zero exception",
+ FUNC(log2) (minus_zero), DIVIDE_BY_ZERO_EXCEPTION);
check ("log2 (1) == +0", FUNC(log2) (1), 0);
- check_isnan_exc ("log2 (x) == NaN plus divide-by-zero exception if x < 0",
+ check_isnan_exc ("log2 (x) == NaN plus invalid exception if x < 0",
FUNC(log2) (-1), INVALID_EXCEPTION);
check_isinfp ("log2 (+inf) == +inf", FUNC(log2) (plus_infty));
x = random_greater (0.0);
check_isnan_ext ("pow (x, NaN) == NaN", FUNC(pow) (x, nan_value), x);
- check_isnan_exc ("pow (+1, +inf) == NaN", FUNC(pow) (1, plus_infty),
- INVALID_EXCEPTION);
- check_isnan_exc ("pow (-1, +inf) == NaN", FUNC(pow) (-1, plus_infty),
- INVALID_EXCEPTION);
- check_isnan_exc ("pow (+1, -inf) == NaN", FUNC(pow) (1, minus_infty),
- INVALID_EXCEPTION);
- check_isnan_exc ("pow (-1, -inf) == NaN", FUNC(pow) (-1, minus_infty),
- INVALID_EXCEPTION);
-
- check_isnan_exc ("pow (-0.1, 1.1) == NaN", FUNC(pow) (-0.1, 1.1),
- INVALID_EXCEPTION);
- check_isnan_exc ("pow (-0.1, -1.1) == NaN", FUNC(pow) (-0.1, -1.1),
- INVALID_EXCEPTION);
- check_isnan_exc ("pow (-10.1, 1.1) == NaN", FUNC(pow) (-10.1, 1.1),
- INVALID_EXCEPTION);
- check_isnan_exc ("pow (-10.1, -1.1) == NaN", FUNC(pow) (-10.1, -1.1),
- INVALID_EXCEPTION);
-
- check_isinfp_exc ("pow (+0, -1) == +inf", FUNC(pow) (0, -1),
- DIVIDE_BY_ZERO_EXCEPTION);
- check_isinfp_exc ("pow (+0, -11) == +inf", FUNC(pow) (0, -11),
- DIVIDE_BY_ZERO_EXCEPTION);
- check_isinfn_exc ("pow (-0, -1) == -inf", FUNC(pow) (minus_zero, -1),
- DIVIDE_BY_ZERO_EXCEPTION);
- check_isinfn_exc ("pow (-0, -11) == -inf", FUNC(pow) (minus_zero, -11),
- DIVIDE_BY_ZERO_EXCEPTION);
-
- check_isinfp_exc ("pow (+0, -2) == +inf", FUNC(pow) (0, -2),
- DIVIDE_BY_ZERO_EXCEPTION);
- check_isinfp_exc ("pow (+0, -11.1) == +inf", FUNC(pow) (0, -11.1),
- DIVIDE_BY_ZERO_EXCEPTION);
- check_isinfp_exc ("pow (-0, -2) == +inf", FUNC(pow) (minus_zero, -2),
- DIVIDE_BY_ZERO_EXCEPTION);
- check_isinfp_exc ("pow (-0, -11.1) == +inf", FUNC(pow) (minus_zero, -11.1),
- DIVIDE_BY_ZERO_EXCEPTION);
+ check_isnan_exc ("pow (+1, +inf) == NaN plus invalid exception",
+ FUNC(pow) (1, plus_infty), INVALID_EXCEPTION);
+ check_isnan_exc ("pow (-1, +inf) == NaN plus invalid exception",
+ FUNC(pow) (-1, plus_infty), INVALID_EXCEPTION);
+ check_isnan_exc ("pow (+1, -inf) == NaN plus invalid exception",
+ FUNC(pow) (1, minus_infty), INVALID_EXCEPTION);
+ check_isnan_exc ("pow (-1, -inf) == NaN plus invalid exception",
+ FUNC(pow) (-1, minus_infty), INVALID_EXCEPTION);
+
+ check_isnan_exc ("pow (-0.1, 1.1) == NaN plus invalid exception",
+ FUNC(pow) (-0.1, 1.1), INVALID_EXCEPTION);
+ check_isnan_exc ("pow (-0.1, -1.1) == NaN plus invalid exception",
+ FUNC(pow) (-0.1, -1.1), INVALID_EXCEPTION);
+ check_isnan_exc ("pow (-10.1, 1.1) == NaN plus invalid exception",
+ FUNC(pow) (-10.1, 1.1), INVALID_EXCEPTION);
+ check_isnan_exc ("pow (-10.1, -1.1) == NaN plus invalid exception",
+ FUNC(pow) (-10.1, -1.1), INVALID_EXCEPTION);
+
+ check_isinfp_exc ("pow (+0, -1) == +inf plus divide-by-zero exception",
+ FUNC(pow) (0, -1), DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfp_exc ("pow (+0, -11) == +inf plus divide-by-zero exception",
+ FUNC(pow) (0, -11), DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfn_exc ("pow (-0, -1) == -inf plus divide-by-zero exception",
+ FUNC(pow) (minus_zero, -1), DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfn_exc ("pow (-0, -11) == -inf plus divide-by-zero exception",
+ FUNC(pow) (minus_zero, -11), DIVIDE_BY_ZERO_EXCEPTION);
+
+ check_isinfp_exc ("pow (+0, -2) == +inf plus divide-by-zero exception",
+ FUNC(pow) (0, -2), DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfp_exc ("pow (+0, -11.1) == +inf plus divide-by-zero exception",
+ FUNC(pow) (0, -11.1), DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfp_exc ("pow (-0, -2) == +inf plus divide-by-zero exception",
+ FUNC(pow) (minus_zero, -2), DIVIDE_BY_ZERO_EXCEPTION);
+ check_isinfp_exc ("pow (-0, -11.1) == +inf plus divide-by-zero exception",
+ FUNC(pow) (minus_zero, -11.1), DIVIDE_BY_ZERO_EXCEPTION);
check ("pow (+0, 1) == +0", FUNC(pow) (0, 1), 0);
check ("pow (+0, 11) == +0", FUNC(pow) (0, 11), 0);
check ("real(cexp(-inf - 0i)) = 0", __real__ result, 0);
check ("imag(cexp(-inf - 0i)) = -0", __imag__ result, minus_zero);
+ result = FUNC(cexp) (BUILD_COMPLEX (0.0, plus_infty));
+ check_isnan_exc ("real(cexp(0 + i inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(0 + i inf)) = NaN plus invalid exception",
+ __imag__ result);
+ result = FUNC(cexp) (BUILD_COMPLEX (minus_zero, plus_infty));
+ check_isnan_exc ("real(cexp(-0 + i inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(-0 + i inf)) = NaN plus invalid exception",
+ __imag__ result);
+ result = FUNC(cexp) (BUILD_COMPLEX (0.0, minus_infty));
+ check_isnan_exc ("real(cexp(0 - i inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(0 - i inf)) = NaN plus invalid exception",
+ __imag__ result);
+ result = FUNC(cexp) (BUILD_COMPLEX (minus_zero, minus_infty));
+ check_isnan_exc ("real(cexp(-0 - i inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(-0 - i inf)) = NaN plus invalid exception",
+ __imag__ result);
+
result = FUNC(cexp) (BUILD_COMPLEX (100.0, plus_infty));
- check_isnan ("real(cexp(x + i inf)) = NaN", __real__ result);
- check_isnan ("imag(cexp(x + i inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(cexp(100.0 + i inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(100.0 + i inf)) = NaN plus invalid exception",
+ __imag__ result);
+ result = FUNC(cexp) (BUILD_COMPLEX (-100.0, plus_infty));
+ check_isnan_exc ("real(cexp(-100.0 + i inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(-100.0 + i inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(cexp) (BUILD_COMPLEX (100.0, minus_infty));
- check_isnan ("real(cexp(x - i inf)) = NaN", __real__ result);
- check_isnan ("imag(cexp(x - i inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(cexp(100.0 - i inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(100.0 - i inf)) = NaN plus invalid exception",
+ __imag__ result);
+ result = FUNC(cexp) (BUILD_COMPLEX (-100.0, minus_infty));
+ check_isnan_exc ("real(cexp(-100.0 - i inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(-100.0 - i inf)) = NaN", __imag__ result);
result = FUNC(cexp) (BUILD_COMPLEX (minus_infty, 2.0));
check ("real(cexp(-inf + 2.0i)) = -0", __real__ result, minus_zero);
check_isinfn ("imag(cexp(+inf + 4.0i)) = -inf", __imag__ result);
result = FUNC(cexp) (BUILD_COMPLEX (plus_infty, plus_infty));
- check_isinfp ("real(cexp(+inf + i inf)) = +inf", __real__ result);
- check_isnan ("imag(cexp(+inf + i inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(cexp(+inf + i inf)) = +inf plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(+inf + i inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(cexp) (BUILD_COMPLEX (plus_infty, minus_infty));
- check_isinfp ("real(cexp(+inf - i inf)) = +inf", __real__ result);
- check_isnan ("imag(cexp(+inf - i inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(cexp(+inf - i inf)) = +inf plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(+inf - i inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(cexp) (BUILD_COMPLEX (minus_infty, plus_infty));
check ("real(cexp(-inf + i inf)) = 0", __real__ result, 0);
check_isinfp ("real(cexp(+inf + i NaN)) = +inf", __real__ result);
check_isnan ("imag(cexp(+inf + i NaN)) = NaN", __imag__ result);
+ result = FUNC(cexp) (BUILD_COMPLEX (nan_value, 0.0));
+ check_isnan_maybe_exc ("real(cexp(NaN + i0)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(NaN + i0)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(cexp) (BUILD_COMPLEX (nan_value, 1.0));
- check_isnan ("real(cexp(NaN + 1i)) = NaN", __real__ result);
- check_isnan ("imag(cexp(NaN + 1i)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(cexp(NaN + 1i)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(NaN + 1i)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(cexp) (BUILD_COMPLEX (nan_value, plus_infty));
- check_isnan ("real(cexp(NaN + i inf)) = NaN", __real__ result);
- check_isnan ("imag(cexp(NaN + i inf)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(cexp(NaN + i inf)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(NaN + i inf)) = NaN plus maybe invalid exception",
+ __imag__ result);
+
+ result = FUNC(cexp) (BUILD_COMPLEX (0, nan_value));
+ check_isnan_maybe_exc ("real(cexp(0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
+ result = FUNC(cexp) (BUILD_COMPLEX (1, nan_value));
+ check_isnan_maybe_exc ("real(cexp(1 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cexp(1 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
+
result = FUNC(cexp) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(cexp(NaN + i NaN)) = NaN", __real__ result);
check_isnan ("imag(cexp(NaN + i NaN)) = NaN", __imag__ result);
+}
- result = FUNC(cexp) (BUILD_COMPLEX (0, nan_value));
- check_isnan ("real(cexp(0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(cexp(0 + i NaN)) = NaN", __imag__ result);
- result = FUNC(cexp) (BUILD_COMPLEX (1, nan_value));
- check_isnan ("real(cexp(1 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(cexp(1 + i NaN)) = NaN", __imag__ result);
+
+static void
+csin_test (void)
+{
+ __complex__ MATHTYPE result;
+
+ result = FUNC(csin) (BUILD_COMPLEX (0.0, 0.0));
+ check ("real(csin(0 + 0i)) = 0", __real__ result, 0);
+ check ("imag(csin(0 + 0i)) = 0", __imag__ result, 0);
+ result = FUNC(csin) (BUILD_COMPLEX (minus_zero, 0.0));
+ check ("real(csin(-0 + 0i)) = -0", __real__ result, minus_zero);
+ check ("imag(csin(-0 + 0i)) = 0", __imag__ result, 0);
+ result = FUNC(csin) (BUILD_COMPLEX (0.0, minus_zero));
+ check ("real(csin(0 - 0i)) = 0", __real__ result, 0);
+ check ("imag(csin(0 - 0i)) = -0", __imag__ result, minus_zero);
+ result = FUNC(csin) (BUILD_COMPLEX (minus_zero, minus_zero));
+ check ("real(csin(-0 - 0i)) = -0", __real__ result, minus_zero);
+ check ("imag(csin(-0 - 0i)) = -0", __imag__ result, minus_zero);
+
+ result = FUNC(csin) (BUILD_COMPLEX (0.0, plus_infty));
+ check ("real(csin(0 + i Inf)) = 0", __real__ result, 0);
+ check_isinfp ("imag(csin(0 + i Inf)) = +Inf", __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (minus_zero, plus_infty));
+ check ("real(csin(-0 + i Inf)) = -0", __real__ result, minus_zero);
+ check_isinfp ("imag(csin(-0 + i Inf)) = +Inf", __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (0.0, minus_infty));
+ check ("real(csin(0 - i Inf)) = 0", __real__ result, 0);
+ check_isinfn ("imag(csin(0 - i Inf)) = -Inf", __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (minus_zero, minus_infty));
+ check ("real(csin(-0 - i Inf)) = -0", __real__ result, minus_zero);
+ check_isinfn("imag(csin(-0 - i Inf)) = -Inf", __imag__ result);
+
+ result = FUNC(csin) (BUILD_COMPLEX (plus_infty, 0.0));
+ check_isnan_exc ("real(csin(+Inf + 0i)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(csin(+Inf + 0i)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0);
+ result = FUNC(csin) (BUILD_COMPLEX (minus_infty, 0.0));
+ check_isnan_exc ("real(csin(-Inf + 0i)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(csin(-Inf + 0i)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0);
+ result = FUNC(csin) (BUILD_COMPLEX (plus_infty, minus_zero));
+ check_isnan_exc ("real(csin(+Inf - 0i)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(csin(+Inf - 0i)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0.0);
+ result = FUNC(csin) (BUILD_COMPLEX (minus_infty, minus_zero));
+ check_isnan_exc ("real(csin(-Inf - 0i)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(csin(-Inf - 0i)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0.0);
+
+ result = FUNC(csin) (BUILD_COMPLEX (plus_infty, plus_infty));
+ check_isnan_exc ("real(csin(+Inf + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isinfp ("imag(csin(+Inf + i Inf)) = +-Inf plus invalid exception",
+ FUNC(fabs) (__imag__ result));
+ result = FUNC(csin) (BUILD_COMPLEX (minus_infty, plus_infty));
+ check_isnan_exc ("real(csin(-Inf + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isinfp ("imag(csin(-Inf + i Inf)) = +-Inf plus invalid exception",
+ FUNC(fabs) (__imag__ result));
+ result = FUNC(csin) (BUILD_COMPLEX (plus_infty, minus_infty));
+ check_isnan_exc ("real(csin(Inf - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isinfp ("imag(csin(Inf - i Inf)) = +-Inf plus invalid exception",
+ FUNC(fabs) (__imag__ result));
+ result = FUNC(csin) (BUILD_COMPLEX (minus_infty, minus_infty));
+ check_isnan_exc ("real(csin(-Inf - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isinfp ("imag(csin(-Inf - i Inf)) = +-Inf plus invalid exception",
+ FUNC(fabs) (__imag__ result));
+
+ result = FUNC(csin) (BUILD_COMPLEX (plus_infty, 6.75));
+ check_isnan_exc ("real(csin(+Inf + i 6.75)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csin(+Inf + i6.75)) = NaN plus invalid exception",
+ __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (plus_infty, -6.75));
+ check_isnan_exc ("real(csin(+Inf - i 6.75)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csin(+Inf - i6.75)) = NaN plus invalid exception",
+ __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (minus_infty, 6.75));
+ check_isnan_exc ("real(csin(-Inf + i6.75)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csin(-Inf + i6.75)) = NaN plus invalid exception",
+ __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (minus_infty, -6.75));
+ check_isnan_exc ("real(csin(-Inf - i6.75)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csin(-Inf - i6.75)) = NaN plus invalid exception",
+ __imag__ result);
+
+ result = FUNC(csin) (BUILD_COMPLEX (4.625, plus_infty));
+ check_isinfn ("real(csin(4.625 + i Inf)) = -Inf", __real__ result);
+ check_isinfn ("imag(csin(4.625 + i Inf)) = -Inf", __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (4.625, minus_infty));
+ check_isinfn ("real(csin(4.625 - i Inf)) = -Inf", __real__ result);
+ check_isinfp ("imag(csin(4.625 - i Inf)) = +Inf", __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (-4.625, plus_infty));
+ check_isinfp ("real(csin(-4.625 + i Inf)) = +Inf", __real__ result);
+ check_isinfn ("imag(csin(-4.625 + i Inf)) = -Inf", __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (-4.625, minus_infty));
+ check_isinfp ("real(csin(-4.625 - i Inf)) = +Inf", __real__ result);
+ check_isinfp ("imag(csin(-4.625 - i Inf)) = +Inf", __imag__ result);
+
+ result = FUNC(csin) (BUILD_COMPLEX (nan_value, 0.0));
+ check_isnan ("real(csin(NaN + i0)) = NaN", __real__ result);
+ check ("imag(csin(NaN + i0)) = +-0", FUNC(fabs) (__imag__ result), 0);
+ result = FUNC(csin) (BUILD_COMPLEX (nan_value, minus_zero));
+ check_isnan ("real(csin(NaN - i0)) = NaN", __real__ result);
+ check ("imag(csin(NaN - i0)) = +-0", FUNC(fabs) (__imag__ result), 0);
+
+ result = FUNC(csin) (BUILD_COMPLEX (nan_value, plus_infty));
+ check_isnan ("real(csin(NaN + i Inf)) = NaN", __real__ result);
+ check_isinfp ("imag(csin(NaN + i Inf)) = +-Inf",
+ FUNC(fabs) (__imag__ result));
+ result = FUNC(csin) (BUILD_COMPLEX (nan_value, minus_infty));
+ check_isnan ("real(csin(NaN - i Inf)) = NaN", __real__ result);
+ check_isinfp ("real(csin(NaN - i Inf)) = +-Inf",
+ FUNC(fabs) (__imag__ result));
+
+ result = FUNC(csin) (BUILD_COMPLEX (nan_value, 9.0));
+ check_isnan_maybe_exc ("real(csin(NaN + i9.0)) = NaN plus maybeinvalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csin(NaN + i9.0)) = NaN plus maybeinvalid exception",
+ __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (nan_value, -9.0));
+ check_isnan_maybe_exc ("real(csin(NaN - i9.0)) = NaN plus maybeinvalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csin(NaN - i9.0)) = NaN plus maybeinvalid exception",
+ __imag__ result);
+
+ result = FUNC(csin) (BUILD_COMPLEX (0.0, nan_value));
+ check ("real(csin(0 + i NaN))", __real__ result, 0.0);
+ check_isnan ("imag(csin(0 + i NaN)) = NaN", __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (minus_zero, nan_value));
+ check ("real(csin(-0 + i NaN)) = -0", __real__ result, minus_zero);
+ check_isnan ("imag(csin(-0 + NaN)) = NaN", __imag__ result);
+
+ result = FUNC(csin) (BUILD_COMPLEX (10.0, nan_value));
+ check_isnan_maybe_exc ("real(csin(10 + i NaN)) = NaN plus maybeinvalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csin(10 + i NaN)) = NaN plus maybeinvalid exception",
+ __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (nan_value, -10.0));
+ check_isnan_maybe_exc ("real(csin(-10 + i NaN)) = NaN plus maybeinvalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csin(-10 + i NaN)) = NaN plus maybeinvalid exception",
+ __imag__ result);
+
+ result = FUNC(csin) (BUILD_COMPLEX (plus_infty, nan_value));
+ check_isnan ("real(csin(+Inf + i NaN)) = NaN", __real__ result);
+ check_isnan ("imag(csin(+Inf + i NaN)) = NaN", __imag__ result);
+ result = FUNC(csin) (BUILD_COMPLEX (minus_infty, nan_value));
+ check_isnan ("real(csin(-Inf + i NaN)) = NaN", __real__ result);
+ check_isnan ("imag(csin(-Inf + i NaN)) = NaN", __imag__ result);
+
+ result = FUNC(csin) (BUILD_COMPLEX (nan_value, nan_value));
+ check_isnan ("real(csin(NaN + i NaN)) = NaN", __real__ result);
+ check_isnan ("imag(csin(NaN + i NaN)) = NaN", __imag__ result);
}
check ("imag(csinh(-0 - 0i)) = -0", __imag__ result, minus_zero);
result = FUNC(csinh) (BUILD_COMPLEX (0.0, plus_infty));
- check ("real(csinh(0 + i Inf)) = +-0", FUNC(fabs) (__real__ result), 0);
- check_isnan ("imag(csinh(0 + i Inf)) = NaN", __imag__ result);
+ check_exc ("real(csinh(0 + i Inf)) = +-0 plus invalid exception",
+ FUNC(fabs) (__real__ result), 0, FE_INVALID);
+ check_isnan ("imag(csinh(0 + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (minus_zero, plus_infty));
- check ("real(csinh(-0 + i Inf)) = +-0", FUNC(fabs) (__real__ result), 0);
- check_isnan ("imag(csinh(-0 + i Inf)) = NaN", __imag__ result);
+ check_exc ("real(csinh(-0 + i Inf)) = +-0 plus invalid exception",
+ FUNC(fabs) (__real__ result), 0, FE_INVALID);
+ check_isnan ("imag(csinh(-0 + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (0.0, minus_infty));
- check ("real(csinh(0 - i Inf)) = +-0", FUNC(fabs) (__real__ result), 0);
- check_isnan ("imag(csinh(0 - i Inf)) = NaN", __imag__ result);
+ check_exc ("real(csinh(0 - i Inf)) = +-0 plus invalid exception",
+ FUNC(fabs) (__real__ result), 0, FE_INVALID);
+ check_isnan ("imag(csinh(0 - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (minus_zero, minus_infty));
- check ("real(csinh(-0 - i Inf)) = +-0", FUNC(fabs) (__real__ result), 0);
- check_isnan ("imag(csinh(-0 - i Inf)) = NaN", __imag__ result);
+ check_exc ("real(csinh(-0 - i Inf)) = +-0 plus invalid exception",
+ FUNC(fabs) (__real__ result), 0, FE_INVALID);
+ check_isnan ("imag(csinh(-0 - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (plus_infty, 0.0));
check_isinfp ("real(csinh(+Inf + 0i)) = +Inf", __real__ result);
check ("imag(csinh(-Inf - 0i)) = -0", __imag__ result, minus_zero);
result = FUNC(csinh) (BUILD_COMPLEX (plus_infty, plus_infty));
- check_isinfp ("real(csinh(+Inf + i Inf)) = +-Inf",
- FUNC(fabs) (__real__ result));
- check_isnan ("imag(csinh(+Inf + i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(csinh(+Inf + i Inf)) = +-Inf plus invalid exception",
+ FUNC(fabs) (__real__ result), FE_INVALID);
+ check_isnan ("imag(csinh(+Inf + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (minus_infty, plus_infty));
- check_isinfp ("real(csinh(-Inf + i Inf)) = +-Inf",
- FUNC(fabs) (__real__ result));
- check_isnan ("imag(csinh(-Inf + i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(csinh(-Inf + i Inf)) = +-Inf plus invalid exception",
+ FUNC(fabs) (__real__ result), FE_INVALID);
+ check_isnan ("imag(csinh(-Inf + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (plus_infty, minus_infty));
- check_isinfp ("real(csinh(Inf - i Inf)) = +-Inf",
- FUNC(fabs) (__real__ result));
- check_isnan ("imag(csinh(Inf - i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(csinh(Inf - i Inf)) = +-Inf plus invalid exception",
+ FUNC(fabs) (__real__ result), FE_INVALID);
+ check_isnan ("imag(csinh(Inf - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (minus_infty, minus_infty));
- check_isinfp ("real(csinh(-Inf - i Inf)) = +-Inf",
- FUNC(fabs) (__real__ result));
- check_isnan ("imag(csinh(-Inf - i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(csinh(-Inf - i Inf)) = +-Inf plus invalid exception",
+ FUNC(fabs) (__real__ result), FE_INVALID);
+ check_isnan ("imag(csinh(-Inf - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (plus_infty, 4.625));
check_isinfn ("real(csinh(+Inf + i4.625)) = -Inf", __real__ result);
check_isinfp ("imag(csinh(-Inf - i4.625)) = +Inf", __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (6.75, plus_infty));
- check_isnan ("real(csinh(6.75 + i Inf)) = NaN", __real__ result);
- check_isnan ("imag(csinh(6.75 + i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(csinh(6.75 + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csinh(6.75 + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (-6.75, plus_infty));
- check_isnan ("real(csinh(-6.75 + i Inf)) = NaN", __real__ result);
- check_isnan ("imag(csinh(-6.75 + i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(csinh(-6.75 + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csinh(-6.75 + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (6.75, minus_infty));
- check_isnan ("real(csinh(6.75 - i Inf)) = NaN", __real__ result);
- check_isnan ("imag(csinh(6.75 - i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(csinh(6.75 - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csinh(6.75 - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (-6.75, minus_infty));
- check_isnan ("real(csinh(-6.75 - i Inf)) = NaN", __real__ result);
- check_isnan ("imag(csinh(-6.75 - i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(csinh(-6.75 - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csinh(-6.75 - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (0.0, nan_value));
check ("real(csinh(0 + i NaN)) = +-0", FUNC(fabs) (__real__ result), 0);
check_isnan ("imag(csinh(-Inf + i NaN)) = NaN", __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (9.0, nan_value));
- check_isnan ("real(csinh(9.0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(csinh(9.0 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csinh(9.0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csinh(9.0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (-9.0, nan_value));
- check_isnan ("real(csinh(-9.0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(csinh(-9.0 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csinh(-9.0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csinh(-9.0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (nan_value, 0.0));
check_isnan ("real(csinh(NaN + i0)) = NaN", __real__ result);
check ("imag(csinh(NaN - i0)) = -0", __imag__ result, minus_zero);
result = FUNC(csinh) (BUILD_COMPLEX (nan_value, 10.0));
- check_isnan ("real(csinh(NaN + i10)) = NaN", __real__ result);
- check_isnan ("imag(csinh(NaN + i10)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csinh(NaN + i10)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csinh(NaN + i10)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (nan_value, -10.0));
- check_isnan ("real(csinh(NaN - i10)) = NaN", __real__ result);
- check_isnan ("imag(csinh(NaN - i10)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csinh(NaN - i10)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csinh(NaN - i10)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csinh) (BUILD_COMPLEX (nan_value, plus_infty));
check_isnan ("real(csinh(NaN + i Inf)) = NaN", __real__ result);
check ("imag(ccos(-0 - 0i)) = -0", __imag__ result, minus_zero);
result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, 0.0));
- check_isnan ("real(ccos(+Inf + i0)) = NaN", __real__ result);
- check ("imag(ccos(Inf + i0)) = +-0", FUNC(fabs) (__imag__ result), 0);
+ check_isnan_exc ("real(ccos(+Inf + i0)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(ccos(Inf + i0)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0);
result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, minus_zero));
- check_isnan ("real(ccos(Inf - i0)) = NaN", __real__ result);
- check ("imag(ccos(Inf - i0)) = +-0", FUNC(fabs) (__imag__ result), 0);
+ check_isnan_exc ("real(ccos(Inf - i0)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(ccos(Inf - i0)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0);
result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, 0.0));
- check_isnan ("real(ccos(-Inf + i0)) = NaN", __real__ result);
- check ("imag(ccos(-Inf + i0)) = +-0", FUNC(fabs) (__imag__ result), 0);
+ check_isnan_exc ("real(ccos(-Inf + i0)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(ccos(-Inf + i0)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0);
result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, minus_zero));
- check_isnan ("real(ccos(-Inf - i0)) = NaN", __real__ result);
- check ("imag(ccos(-Inf - i0)) = +-0", FUNC(fabs) (__imag__ result), 0);
+ check_isnan_exc ("real(ccos(-Inf - i0)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(ccos(-Inf - i0)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0);
result = FUNC(ccos) (BUILD_COMPLEX (0.0, plus_infty));
check_isinfp ("real(ccos(0 + i Inf)) = +Inf", __real__ result);
check ("imag(ccos(-0 - i Inf)) = -0", __imag__ result, minus_zero);
result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, plus_infty));
- check_isinfp ("real(ccos(+Inf + i Inf)) = +Inf", __real__ result);
- check_isnan ("imag(ccos(+Inf + i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(ccos(+Inf + i Inf)) = +Inf plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(+Inf + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, plus_infty));
- check_isinfp ("real(ccos(-Inf + i Inf)) = +Inf", __real__ result);
- check_isnan ("imag(ccos(-Inf + i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(ccos(-Inf + i Inf)) = +Inf plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(-Inf + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, minus_infty));
- check_isinfp ("real(ccos(Inf - i Inf)) = +Inf", __real__ result);
- check_isnan ("imag(ccos(Inf - i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(ccos(Inf - i Inf)) = +Inf plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(Inf - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, minus_infty));
- check_isinfp ("real(ccos(-Inf - i Inf)) = +Inf", __real__ result);
- check_isnan ("imag(ccos(-Inf - i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(ccos(-Inf - i Inf)) = +Inf plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(-Inf - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (4.625, plus_infty));
check_isinfn ("real(ccos(4.625 + i Inf)) = -Inf", __real__ result);
check_isinfp ("imag(ccos(-4.625 - i Inf)) = +Inf", __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, 6.75));
- check_isnan ("real(ccos(+Inf + i6.75)) = NaN", __real__ result);
- check_isnan ("imag(ccos(+Inf + i6.75)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ccos(+Inf + i6.75)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(+Inf + i6.75)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, -6.75));
- check_isnan ("real(ccos(+Inf - i6.75)) = NaN", __real__ result);
- check_isnan ("imag(ccos(+Inf - i6.75)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ccos(+Inf - i6.75)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(+Inf - i6.75)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, 6.75));
- check_isnan ("real(ccos(-Inf + i6.75)) = NaN", __real__ result);
- check_isnan ("imag(ccos(-Inf + i6.75)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ccos(-Inf + i6.75)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(-Inf + i6.75)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, -6.75));
- check_isnan ("real(ccos(-Inf - i6.75)) = NaN", __real__ result);
- check_isnan ("imag(ccos(-Inf - i6.75)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ccos(-Inf - i6.75)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(-Inf - i6.75)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (nan_value, 0.0));
check_isnan ("real(ccos(NaN + i0)) = NaN", __real__ result);
check_isnan ("imag(ccos(NaN - i Inf)) = NaN", __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (nan_value, 9.0));
- check_isnan ("real(ccos(NaN + i9.0)) = NaN", __real__ result);
- check_isnan ("imag(ccos(NaN + i9.0)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccos(NaN + i9.0)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(NaN + i9.0)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (nan_value, -9.0));
- check_isnan ("real(ccos(NaN - i9.0)) = NaN", __real__ result);
- check_isnan ("imag(ccos(NaN - i9.0)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccos(NaN - i9.0)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(NaN - i9.0)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (0.0, nan_value));
check_isnan ("real(ccos(0 + i NaN)) = NaN", __real__ result);
check ("imag(ccos(-0 + i NaN)) = +-0", FUNC(fabs) (__imag__ result), 0.0);
result = FUNC(ccos) (BUILD_COMPLEX (10.0, nan_value));
- check_isnan ("real(ccos(10 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(ccos(10 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccos(10 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(10 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (-10.0, nan_value));
- check_isnan ("real(ccos(-10 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(ccos(-10 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccos(-10 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(-10 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, nan_value));
- check_isnan ("real(ccos(+Inf + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(ccos(+Inf + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccos(+Inf + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(+Inf + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, nan_value));
- check_isnan ("real(ccos(-Inf + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(ccos(-Inf + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccos(-Inf + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccos(-Inf + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccos) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(ccos(NaN + i NaN)) = NaN", __real__ result);
check ("imag(ccosh(-0 - 0i)) = -0", __imag__ result, minus_zero);
result = FUNC(ccosh) (BUILD_COMPLEX (0.0, plus_infty));
- check_isnan ("real(ccosh(0 + i Inf)) = NaN", __real__ result);
- check ("imag(ccosh(0 + i Inf)) = +-0", FUNC(fabs) (__imag__ result), 0);
+ check_isnan_exc ("real(ccosh(0 + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(ccosh(0 + i Inf)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0);
result = FUNC(ccosh) (BUILD_COMPLEX (minus_zero, plus_infty));
- check_isnan ("real(ccosh(-0 + i Inf)) = NaN", __real__ result);
- check ("imag(ccosh(-0 + i Inf)) = +-0", FUNC(fabs) (__imag__ result), 0);
+ check_isnan_exc ("real(ccosh(-0 + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(ccosh(-0 + i Inf)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0);
result = FUNC(ccosh) (BUILD_COMPLEX (0.0, minus_infty));
- check_isnan ("real(ccosh(0 - i Inf)) = NaN", __real__ result);
- check ("imag(ccosh(0 - i Inf)) = +-0", FUNC(fabs) (__imag__ result), 0);
+ check_isnan_exc ("real(ccosh(0 - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(ccosh(0 - i Inf)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0);
result = FUNC(ccosh) (BUILD_COMPLEX (minus_zero, minus_infty));
- check_isnan ("real(ccosh(-0 - i Inf)) = NaN", __real__ result);
- check ("imag(ccosh(-0 - i Inf)) = +-0", FUNC(fabs) (__imag__ result), 0);
+ check_isnan_exc ("real(ccosh(-0 - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check ("imag(ccosh(-0 - i Inf)) = +-0 plus invalid exception",
+ FUNC(fabs) (__imag__ result), 0);
result = FUNC(ccosh) (BUILD_COMPLEX (plus_infty, 0.0));
check_isinfp ("real(ccosh(+Inf + 0i)) = +Inf", __real__ result);
check ("imag(ccosh(-Inf - 0i)) = -0", __imag__ result, minus_zero);
result = FUNC(ccosh) (BUILD_COMPLEX (plus_infty, plus_infty));
- check_isinfp ("real(ccosh(+Inf + i Inf)) = +Inf", __real__ result);
- check_isnan ("imag(ccosh(+Inf + i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(ccosh(+Inf + i Inf)) = +Inf plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(+Inf + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (minus_infty, plus_infty));
- check_isinfp ("real(ccosh(-Inf + i Inf)) = +Inf", __real__ result);
- check_isnan ("imag(ccosh(-Inf + i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(ccosh(-Inf + i Inf)) = +Inf plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(-Inf + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (plus_infty, minus_infty));
- check_isinfp ("real(ccosh(Inf - i Inf)) = +Inf", __real__ result);
- check_isnan ("imag(ccosh(Inf - i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(ccosh(Inf - i Inf)) = +Inf plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(Inf - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (minus_infty, minus_infty));
- check_isinfp ("real(ccosh(-Inf - i Inf)) = +Inf", __real__ result);
- check_isnan ("imag(ccosh(-Inf - i Inf)) = NaN", __imag__ result);
+ check_isinfp_exc ("real(ccosh(-Inf - i Inf)) = +Inf plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(-Inf - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (plus_infty, 4.625));
check_isinfn ("real(ccosh(+Inf + i4.625)) = -Inf", __real__ result);
check_isinfp ("imag(ccosh(-Inf - i4.625)) = +Inf", __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (6.75, plus_infty));
- check_isnan ("real(ccosh(6.75 + i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ccosh(6.75 + i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ccosh(6.75 + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(6.75 + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (-6.75, plus_infty));
- check_isnan ("real(ccosh(-6.75 + i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ccosh(-6.75 + i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ccosh(-6.75 + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(-6.75 + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (6.75, minus_infty));
- check_isnan ("real(ccosh(6.75 - i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ccosh(6.75 - i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ccosh(6.75 - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(6.75 - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (-6.75, minus_infty));
- check_isnan ("real(ccosh(-6.75 - i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ccosh(-6.75 - i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ccosh(-6.75 - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(-6.75 - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (0.0, nan_value));
check_isnan ("real(ccosh(0 + i NaN)) = NaN", __real__ result);
check_isnan ("imag(ccosh(-Inf + i NaN)) = NaN", __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (9.0, nan_value));
- check_isnan ("real(ccosh(9.0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(ccosh(9.0 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccosh(9.0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(9.0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (-9.0, nan_value));
- check_isnan ("real(ccosh(-9.0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(ccosh(-9.0 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccosh(-9.0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(-9.0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, 0.0));
check_isnan ("real(ccosh(NaN + i0)) = NaN", __real__ result);
check ("imag(ccosh(NaN - i0)) = +-0", FUNC(fabs) (__imag__ result), 0.0);
result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, 10.0));
- check_isnan ("real(ccosh(NaN + i10)) = NaN", __real__ result);
- check_isnan ("imag(ccosh(NaN + i10)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccosh(NaN + i10)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(NaN + i10)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, -10.0));
- check_isnan ("real(ccosh(NaN - i10)) = NaN", __real__ result);
- check_isnan ("imag(ccosh(NaN - i10)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccosh(NaN - i10)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(NaN - i10)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, plus_infty));
- check_isnan ("real(ccosh(NaN + i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ccosh(NaN + i Inf)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccosh(NaN + i Inf)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(NaN + i Inf)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, minus_infty));
- check_isnan ("real(ccosh(NaN - i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ccosh(NaN - i Inf)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ccosh(NaN - i Inf)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ccosh(NaN - i Inf)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(ccosh(NaN + i NaN)) = NaN", __real__ result);
check_isinfp ("imag(cacos(NaN - i Inf)) = +Inf", __imag__ result);
result = FUNC(cacos) (BUILD_COMPLEX (10.5, nan_value));
- check_isnan ("real(cacos(10.5 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(cacos(10.5 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(cacos(10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cacos(10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(cacos) (BUILD_COMPLEX (-10.5, nan_value));
- check_isnan ("real(cacos(-10.5 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(cacos(-10.5 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(cacos(-10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cacos(-10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(cacos) (BUILD_COMPLEX (nan_value, 0.75));
- check_isnan ("real(cacos(NaN + i0.75)) = NaN", __real__ result);
- check_isnan ("imag(cacos(NaN + i0.75)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(cacos(NaN + i0.75)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cacos(NaN + i0.75)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(cacos) (BUILD_COMPLEX (-10.5, nan_value));
- check_isnan ("real(cacos(NaN - i0.75)) = NaN", __real__ result);
- check_isnan ("imag(cacos(NaN - i0.75)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(cacos(NaN - i0.75)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cacos(NaN - i0.75)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(cacos) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(cacos(NaN + i NaN)) = NaN", __real__ result);
check_isnan ("imag(cacosh(NaN - i Inf)) = NaN", __imag__ result);
result = FUNC(cacosh) (BUILD_COMPLEX (10.5, nan_value));
- check_isnan ("real(cacosh(10.5 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(cacosh(10.5 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(cacosh(10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cacosh(10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(cacosh) (BUILD_COMPLEX (-10.5, nan_value));
- check_isnan ("real(cacosh(-10.5 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(cacosh(-10.5 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(cacosh(-10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cacosh(-10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(cacosh) (BUILD_COMPLEX (nan_value, 0.75));
- check_isnan ("real(cacosh(NaN + i0.75)) = NaN", __real__ result);
- check_isnan ("imag(cacosh(NaN + i0.75)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(cacosh(NaN + i0.75)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cacosh(NaN + i0.75)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(cacosh) (BUILD_COMPLEX (-10.5, nan_value));
- check_isnan ("real(cacosh(NaN - i0.75)) = NaN", __real__ result);
- check_isnan ("imag(cacosh(NaN - i0.75)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(cacosh(NaN - i0.75)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(cacosh(NaN - i0.75)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(cacosh) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(cacosh(NaN + i NaN)) = NaN", __real__ result);
FUNC(fabs) (__imag__ result));
result = FUNC(casin) (BUILD_COMPLEX (nan_value, 10.5));
- check_isnan ("real(casin(NaN + i10.5)) = NaN", __real__ result);
- check_isnan ("imag(casin(NaN + i10.5)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(casin(NaN + i10.5)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(casin(NaN + i10.5)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(casin) (BUILD_COMPLEX (nan_value, -10.5));
- check_isnan ("real(casin(NaN - i10.5)) = NaN", __real__ result);
- check_isnan ("imag(casin(NaN - i10.5)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(casin(NaN - i10.5)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(casin(NaN - i10.5)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(casin) (BUILD_COMPLEX (0.75, nan_value));
- check_isnan ("real(casin(0.75 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(casin(0.75 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(casin(0.75 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(casin(0.75 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(casin) (BUILD_COMPLEX (-0.75, nan_value));
- check_isnan ("real(casin(-0.75 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(casin(-0.75 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(casin(-0.75 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(casin(-0.75 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(casin) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(casin(NaN + i NaN)) = NaN", __real__ result);
check_isnan ("imag(casinh(NaN - i Inf)) = NaN", __imag__ result);
result = FUNC(casinh) (BUILD_COMPLEX (10.5, nan_value));
- check_isnan ("real(casinh(10.5 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(casinh(10.5 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(casinh(10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(casinh(10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(casinh) (BUILD_COMPLEX (-10.5, nan_value));
- check_isnan ("real(casinh(-10.5 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(casinh(-10.5 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(casinh(-10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(casinh(-10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(casinh) (BUILD_COMPLEX (nan_value, 0.75));
- check_isnan ("real(casinh(NaN + i0.75)) = NaN", __real__ result);
- check_isnan ("imag(casinh(NaN + i0.75)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(casinh(NaN + i0.75)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(casinh(NaN + i0.75)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(casinh) (BUILD_COMPLEX (-0.75, nan_value));
- check_isnan ("real(casinh(NaN - i0.75)) = NaN", __real__ result);
- check_isnan ("imag(casinh(NaN - i0.75)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(casinh(NaN - i0.75)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(casinh(NaN - i0.75)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(casinh) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(casinh(NaN + i NaN)) = NaN", __real__ result);
check ("imag(catan(-Inf + i NaN)) = +-0", FUNC(fabs) (__imag__ result), 0);
result = FUNC(catan) (BUILD_COMPLEX (nan_value, 10.5));
- check_isnan ("real(catan(NaN + i10.5)) = NaN", __real__ result);
- check_isnan ("imag(catan(NaN + i10.5)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(catan(NaN + i10.5)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(catan(NaN + i10.5)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(catan) (BUILD_COMPLEX (nan_value, -10.5));
- check_isnan ("real(catan(NaN - i10.5)) = NaN", __real__ result);
- check_isnan ("imag(catan(NaN - i10.5)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(catan(NaN - i10.5)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(catan(NaN - i10.5)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(catan) (BUILD_COMPLEX (0.75, nan_value));
- check_isnan ("real(catan(0.75 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(catan(0.75 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(catan(0.75 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(catan(0.75 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(catan) (BUILD_COMPLEX (-0.75, nan_value));
- check_isnan ("real(catan(-0.75 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(catan(-0.75 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(catan(-0.75 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(catan(-0.75 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(catan) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(catan(NaN + i NaN)) = NaN", __real__ result);
check ("imag(catanh(NaN - i Inf)) = -pi/2", __imag__ result, -M_PI_2);
result = FUNC(catanh) (BUILD_COMPLEX (10.5, nan_value));
- check_isnan ("real(catanh(10.5 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(catanh(10.5 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(catanh(10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(catanh(10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(catanh) (BUILD_COMPLEX (-10.5, nan_value));
- check_isnan ("real(catanh(-10.5 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(catanh(-10.5 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(catanh(-10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(catanh(-10.5 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(catanh) (BUILD_COMPLEX (nan_value, 0.75));
- check_isnan ("real(catanh(NaN + i0.75)) = NaN", __real__ result);
- check_isnan ("imag(catanh(NaN + i0.75)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(catanh(NaN + i0.75)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(catanh(NaN + i0.75)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(catanh) (BUILD_COMPLEX (nan_value, -0.75));
- check_isnan ("real(catanh(NaN - i0.75)) = NaN", __real__ result);
- check_isnan ("imag(catanh(NaN - i0.75)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(catanh(NaN - i0.75)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(catanh(NaN - i0.75)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(catanh) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(catanh(NaN + i NaN)) = NaN", __real__ result);
check ("imag(ctanh(-Inf - i1)) = -0", __imag__ result, minus_zero);
result = FUNC(ctanh) (BUILD_COMPLEX (0, plus_infty));
- check_isnan ("real(ctanh(0 + i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(0 + i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ctanh(0 + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(0 + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (2, plus_infty));
- check_isnan ("real(ctanh(2 + i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(2 + i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ctanh(2 + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(2 + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (0, minus_infty));
- check_isnan ("real(ctanh(0 - i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(0 - i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ctanh(0 - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(0 - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (2, minus_infty));
- check_isnan ("real(ctanh(2 - i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(2 - i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ctanh(2 - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(2 - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, plus_infty));
- check_isnan ("real(ctanh(-0 + i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(-0 + i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ctanh(-0 + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(-0 + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (-2, plus_infty));
- check_isnan ("real(ctanh(-2 + i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(-2 + i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ctanh(-2 + i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(-2 + i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, minus_infty));
- check_isnan ("real(ctanh(-0 - i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(-0 - i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ctanh(-0 - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(-0 - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (-2, minus_infty));
- check_isnan ("real(ctanh(-2 - i Inf)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(-2 - i Inf)) = NaN", __imag__ result);
+ check_isnan_exc ("real(ctanh(-2 - i Inf)) = NaN plus invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(-2 - i Inf)) = NaN plus invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (plus_infty, nan_value));
check ("real(ctanh(+Inf + i NaN)) = 1", __real__ result, 1);
check ("imag(ctanh(NaN - i0)) = -0", __imag__ result, minus_zero);
result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, 0.5));
- check_isnan ("real(ctanh(NaN + i0.5)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(NaN + i0.5)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ctanh(NaN + i0.5)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(NaN + i0.5)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, -4.5));
- check_isnan ("real(ctanh(NaN - i4.5)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(NaN - i4.5)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ctanh(NaN - i4.5)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(NaN - i4.5)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (0, nan_value));
- check_isnan ("real(ctanh(0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(0 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ctanh(0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (5, nan_value));
- check_isnan ("real(ctanh(5 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(5 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ctanh(5 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(5 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, nan_value));
- check_isnan ("real(ctanh(-0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(-0 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ctanh(-0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(-0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (-0.25, nan_value));
- check_isnan ("real(ctanh(-0.25 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(ctanh(-0.25 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(ctanh(-0.25 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(ctanh(-0.25 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(ctanh(NaN + i NaN)) = NaN", __real__ result);
__complex__ MATHTYPE result;
result = FUNC(clog) (BUILD_COMPLEX (minus_zero, 0));
- check_isinfn ("real(clog(-0 + i0)) = -Inf", __real__ result);
- check ("imag(clog(-0 + i0)) = pi", __imag__ result, M_PI);
+ check_isinfn_exc ("real(clog(-0 + i0)) = -Inf plus divide-by-zero exception",
+ __real__ result, DIVIDE_BY_ZERO_EXCEPTION);
+ check ("imag(clog(-0 + i0)) = pi plus divide-by-zero exception",
+ __imag__ result, M_PI);
result = FUNC(clog) (BUILD_COMPLEX (minus_zero, minus_zero));
- check_isinfn ("real(clog(-0 - i0)) = -Inf", __real__ result);
- check ("imag(clog(-0 - i0)) = -pi", __imag__ result, -M_PI);
+ check_isinfn_exc ("real(clog(-0 - i0)) = -Inf plus divide-by-zero exception",
+ __real__ result, DIVIDE_BY_ZERO_EXCEPTION);
+ check ("imag(clog(-0 - i0)) = -pi plus divide-by-zero exception",
+ __imag__ result, -M_PI);
result = FUNC(clog) (BUILD_COMPLEX (0, 0));
- check_isinfn ("real(clog(0 + i0)) = -Inf", __real__ result);
- check ("imag(clog(0 + i0)) = 0", __imag__ result, 0);
+ check_isinfn_exc ("real(clog(0 + i0)) = -Inf plus divide-by-zero exception",
+ __real__ result, DIVIDE_BY_ZERO_EXCEPTION);
+ check ("imag(clog(0 + i0)) = 0 plus divide-by-zero exception",
+ __imag__ result, 0);
result = FUNC(clog) (BUILD_COMPLEX (0, minus_zero));
- check_isinfn ("real(clog(0 - i0)) = -Inf", __real__ result);
- check ("imag(clog(0 - i0)) = -0", __imag__ result, minus_zero);
+ check_isinfn_exc ("real(clog(0 - i0)) = -Inf plus divide-by-zero exception",
+ __real__ result, DIVIDE_BY_ZERO_EXCEPTION);
+ check ("imag(clog(0 - i0)) = -0 plus divide-by-zero exception",
+ __imag__ result, minus_zero);
result = FUNC(clog) (BUILD_COMPLEX (minus_infty, plus_infty));
check_isinfp ("real(clog(-Inf + i Inf)) = +Inf", __real__ result);
check_isnan ("imag(clog(NaN - i Inf)) = NaN", __imag__ result);
result = FUNC(clog) (BUILD_COMPLEX (0, nan_value));
- check_isnan ("real(clog(0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(clog(0 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(clog(0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(clog(0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(clog) (BUILD_COMPLEX (3, nan_value));
- check_isnan ("real(clog(3 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(clog(3 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(clog(3 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(clog(3 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(clog) (BUILD_COMPLEX (minus_zero, nan_value));
- check_isnan ("real(clog(-0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(clog(-0 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(clog(-0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(clog(-0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(clog) (BUILD_COMPLEX (-3, nan_value));
- check_isnan ("real(clog(-3 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(clog(-3 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(clog(-3 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(clog(-3 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(clog) (BUILD_COMPLEX (nan_value, 0));
- check_isnan ("real(clog(NaN + i0)) = NaN", __real__ result);
- check_isnan ("imag(clog(NaN + i0)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(clog(NaN + i0)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(clog(NaN + i0)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(clog) (BUILD_COMPLEX (nan_value, 5));
- check_isnan ("real(clog(NaN + i5)) = NaN", __real__ result);
- check_isnan ("imag(clog(NaN + i5)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(clog(NaN + i5)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(clog(NaN + i5)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(clog) (BUILD_COMPLEX (nan_value, minus_zero));
- check_isnan ("real(clog(NaN - i0)) = NaN", __real__ result);
- check_isnan ("imag(clog(NaN - i0)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(clog(NaN - i0)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(clog(NaN - i0)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(clog) (BUILD_COMPLEX (nan_value, -5));
- check_isnan ("real(clog(NaN - i5)) = NaN", __real__ result);
- check_isnan ("imag(clog(NaN - i5)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(clog(NaN - i5)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(clog(NaN - i5)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(clog) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(clog(NaN + i NaN)) = NaN", __real__ result);
check_isnan ("imag(csqrt(+Inf + i NaN)) = NaN", __imag__ result);
result = FUNC(csqrt) (BUILD_COMPLEX (0, nan_value));
- check_isnan ("real(csqrt(0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(csqrt(0 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csqrt(0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csqrt(0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csqrt) (BUILD_COMPLEX (1, nan_value));
- check_isnan ("real(csqrt(1 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(csqrt(1 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csqrt(1 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csqrt(1 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csqrt) (BUILD_COMPLEX (minus_zero, nan_value));
- check_isnan ("real(csqrt(-0 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(csqrt(-0 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csqrt(-0 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csqrt(-0 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csqrt) (BUILD_COMPLEX (-1, nan_value));
- check_isnan ("real(csqrt(-1 + i NaN)) = NaN", __real__ result);
- check_isnan ("imag(csqrt(-1 + i NaN)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csqrt(-1 + i NaN)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csqrt(-1 + i NaN)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csqrt) (BUILD_COMPLEX (nan_value, 0));
- check_isnan ("real(csqrt(NaN + i0)) = NaN", __real__ result);
- check_isnan ("imag(csqrt(NaN + i0)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csqrt(NaN + i0)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csqrt(NaN + i0)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csqrt) (BUILD_COMPLEX (nan_value, 8));
- check_isnan ("real(csqrt(NaN + i8)) = NaN", __real__ result);
- check_isnan ("imag(csqrt(NaN + i8)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csqrt(NaN + i8)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csqrt(NaN + i8)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csqrt) (BUILD_COMPLEX (nan_value, minus_zero));
- check_isnan ("real(csqrt(NaN - i0)) = NaN", __real__ result);
- check_isnan ("imag(csqrt(NaN - i0)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csqrt(NaN - i0)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csqrt(NaN - i0)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csqrt) (BUILD_COMPLEX (nan_value, -8));
- check_isnan ("real(csqrt(NaN - i8)) = NaN", __real__ result);
- check_isnan ("imag(csqrt(NaN - i8)) = NaN", __imag__ result);
+ check_isnan_maybe_exc ("real(csqrt(NaN - i8)) = NaN plus maybe invalid exception",
+ __real__ result, FE_INVALID);
+ check_isnan ("imag(csqrt(NaN - i8)) = NaN plus maybe invalid exception",
+ __imag__ result);
result = FUNC(csqrt) (BUILD_COMPLEX (nan_value, nan_value));
check_isnan ("real(csqrt(NaN + i NaN)) = NaN", __real__ result);
(void) &NaN_var;
(void) &Inf_var;
+ /* Clear all exceptions. The previous computations raised exceptions. */
+ feclearexcept (FE_ALL_EXCEPT);
+
check_isinfp ("isinf (inf) == +1", Inf_var);
check_isinfn ("isinf (-inf) == -1", -Inf_var);
check_bool ("!isinf (1)", !(FUNC(isinf) (one_var)));
(void) &plus_infty;
(void) &minus_infty;
+ /* Clear all exceptions. From now on we must not get random exceptions. */
+ feclearexcept (FE_ALL_EXCEPT);
+
/* Test to make sure we start correctly. */
fpstack_test ("end *init*");
}
remquo_test ();
#endif
cexp_test ();
+ csin_test ();
csinh_test ();
ccos_test ();
ccosh_test ();
printf ("\n%d errors occured.\n", noErrors);
exit (1);
}
- printf ("\n All tests passed sucessfully.\n");
+ printf ("\n All tests passed successfully.\n");
exit (0);
}
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU libc 1.98\n"
-"POT-Creation-Date: 1996-12-03 13:50+0100\n"
-"PO-Revision-Date: 1997-01-01 17:42 MET\n"
+"Project-Id-Version: GNU libc 2.0.3\n"
+"POT-Creation-Date: 1997-03-30 19:08+0200\n"
+"PO-Revision-Date: 1997-04-27 21:16 MET DST\n"
"Last-Translator: Jochen Hein <jochen.hein@delphi.central.de>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
#: sunrpc/rpcinfo.c:610
msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
-msgstr " rpcinfo [ -n Port-Nummer ] -t Rechner Programm-Nummer [Versions-Nummer]\n"
+msgstr ""
+" rpcinfo [ -n Port-Nummer ] -t Rechner Programm-Nummer "
+"[Versions-Nummer]\n"
#: sunrpc/rpcinfo.c:517
msgid " program vers proto port\n"
-msgstr " program vers proto port\n"
+msgstr " Program Vers Proto Port\n"
-#: time/zic.c:424
+#: time/zic.c:419
#, c-format
msgid " (rule from \"%s\", line %d)"
msgstr " (Regel aus Datei »%s«, Zeile %d)"
-#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1234
+#: locale/programs/ld-collate.c:363 locale/programs/ld-ctype.c:1242
msgid " done\n"
-msgstr " Fertig\n"
+msgstr " fertig\n"
-#: time/zic.c:421
+#: time/zic.c:416
#, c-format
msgid "\"%s\", line %d: %s"
msgstr "»%s«, Zeile %d: %s"
-#: time/zic.c:945
+#: time/zic.c:943
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
-msgstr "»Zone %s«-Zeile und die Option -l schliessen sich aus"
+msgstr "»Zone %s«-Zeile und die Option »-l« schliessen sich aus"
-#: time/zic.c:953
+#: time/zic.c:951
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
-msgstr "»Zone %s«-Zeile und die Option -p schliessen sich aus"
+msgstr "»Zone %s«-Zeile und die Option »-p« schliessen sich aus"
-#: time/zic.c:758
+#: time/zic.c:754
#, c-format
msgid "%s in ruleless zone"
msgstr "%s in einer regellosen Zone"
msgid "%s%sUnknown signal %d\n"
msgstr "%s%sUnbekanntes Signal %d\n"
-#: time/zic.c:2139
+# Ob diese Ãœbersetzung so korrekt ist? - jh
+#: time/zic.c:2172
#, c-format
msgid "%s: %d did not sign extend correctly\n"
msgstr "%s: %d Das Vorzeichen der extended-Zahl ist nicht korrekt\n"
msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
msgstr "%s: »<mb_cur_max>« muß größer als »<mb_cur_min>« sein\n"
-#: time/zic.c:1430
+#: time/zic.c:1443
#, c-format
msgid "%s: Can't create %s: %s\n"
msgstr "%s: Kann »%s« nicht erzeugen: %s\n"
-#: time/zic.c:2118
+#: time/zic.c:2150
#, c-format
msgid "%s: Can't create directory %s: %s\n"
msgstr "%s: Kann das Verzeichnis »%s« nicht erzeugen: %s\n"
-#: time/zic.c:612
+#: time/zic.c:608
#, c-format
msgid "%s: Can't link from %s to %s: %s\n"
msgstr "%s: Kann nicht von »%s« nach »%s« linken: %s\n"
-#: time/zic.c:783
+#: time/zic.c:780
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Kann die Datei »%s« nicht öffnen: %s\n"
-#: time/zic.c:851
+#: time/zic.c:1433
+#, c-format
+msgid "%s: Can't remove %s: %s\n"
+msgstr "%s: Kann »%s« nicht löschen: %s\n"
+
+#: time/zic.c:849
#, c-format
msgid "%s: Error closing %s: %s\n"
msgstr "%s: Fehler beim Schliessen der Datei »%s«: %s\n"
-#: time/zic.c:845
+#: time/zic.c:842
#, c-format
msgid "%s: Error reading %s\n"
msgstr "%s: Fehler beim Lesen der Datei »%s«\n"
-#: time/zic.c:1494
+#: time/zic.c:1507
#, c-format
msgid "%s: Error writing %s\n"
msgstr "%s: Fehler beim Schreiben der Datei »%s«\n"
-#: time/zdump.c:258
+#: time/zdump.c:266
#, c-format
msgid "%s: Error writing standard output "
msgstr "%s: Fehler beim Schreiben auf die Standardausgabe "
-#: time/zic.c:830
+#: time/zic.c:827
#, c-format
msgid "%s: Leap line in non leap seconds file %s\n"
msgstr "%s: Schalt-Zeile in einer nicht-Schalt-Sekunden-Datei »%s«\n"
-#: time/zic.c:362
+#: time/zic.c:357
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Kein Hauptspeicher mehr verfügbar: %s\n"
-#: time/zic.c:527
+#: time/zic.c:522
#, c-format
msgid "%s: More than one -L option specified\n"
-msgstr "%s: Mehr als eine -L Option angegeben\n"
+msgstr "%s: Mehr als eine »-L« Option angegeben\n"
-#: time/zic.c:487
+#: time/zic.c:482
#, c-format
msgid "%s: More than one -d option specified\n"
-msgstr "%s: Mehr als eine -d Option angegeben\n"
+msgstr "%s: Mehr als eine »-d« Option angegeben\n"
-#: time/zic.c:497
+#: time/zic.c:492
#, c-format
msgid "%s: More than one -l option specified\n"
-msgstr "%s: Mehr als eine -l Option angegeben\n"
+msgstr "%s: Mehr als eine »-l« Option angegeben\n"
-#: time/zic.c:507
+#: time/zic.c:502
#, c-format
msgid "%s: More than one -p option specified\n"
-msgstr "%s: Mehr als eine -p Option angegeben\n"
+msgstr "%s: Mehr als eine »-p« Option angegeben\n"
-#: time/zic.c:517
+#: time/zic.c:512
#, c-format
msgid "%s: More than one -y option specified\n"
-msgstr "%s: Mehr als eine -y Option angegeben\n"
+msgstr "%s: Mehr als eine »-y« Option angegeben\n"
-#: time/zic.c:1845
+#: time/zic.c:1872
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: Das Kommando war »%s«, das Ergebnis war %d\n"
-#: locale/programs/charmap.c:593 locale/programs/locfile.c:878
+#: locale/programs/charmap.c:593 locale/programs/locfile.c:900
#, c-format
msgid "%s: error in state machine"
msgstr "%s: Fehler im (intern verwendeten) endlichen Automaten"
-#: posix/getopt.c:687
+#: posix/getopt.c:783
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: Die Option ist nicht erlaubt -- »%c«\n"
-#: posix/getopt.c:690
+#: posix/getopt.c:786
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: Ungültige option -- »%c«\n"
-#: posix/getopt.c:611
+#: posix/getopt.c:707
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: Die Option »%c%s« erlaubt keine Argumente\n"
+msgstr "%s: Die Option »%c%s« erlaubt kein Argument\n"
-#: posix/getopt.c:582
+#: posix/getopt.c:678
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: Die Option »%s« ist nicht eindeutig\n"
-#: posix/getopt.c:628 posix/getopt.c:801
+#: posix/getopt.c:724 posix/getopt.c:897
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: Die Option »%s« erfordert ein Argument\n"
-#: posix/getopt.c:606
+#: posix/getopt.c:702
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: Die Option »--%s« erlaubt kein Argument\n"
-#: posix/getopt.c:786
+#: posix/getopt.c:881
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: Die Option »-W %s« erlaubt keine Argumente\n"
+msgstr "%s: Die Option »-W %s« erlaubt kein Argument\n"
-#: posix/getopt.c:767
+#: posix/getopt.c:863
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
msgstr "%s: Die Option »-W %s« ist nicht eindeutig\n"
-#: posix/getopt.c:721 posix/getopt.c:850
+#: posix/getopt.c:816 posix/getopt.c:946
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: Diese Option benötigt ein Argument -- »%c«\n"
-#: time/zic.c:837 time/zic.c:1248 time/zic.c:1268
+#: time/zic.c:834 time/zic.c:1246 time/zic.c:1266
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
-msgstr "%s: Panik: ungültiger l_value %d\n"
+msgstr "%s: Panik: ungültiger »l_value« %d\n"
#: locale/programs/charmap.c:600
#, c-format
msgid "%s: premature end of file"
msgstr "%s: Unerwartetes Ende der Datei"
-#: posix/getopt.c:661
+#: posix/getopt.c:757
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: Unbekannte Option »%c%s«\n"
-#: posix/getopt.c:657
+#: posix/getopt.c:753
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: Unbekannte Option »--%s«\n"
-#: time/zic.c:446
+#: time/zic.c:441
#, c-format
msgid ""
-"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n"
+"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d "
+"directory ]\n"
"\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
msgstr ""
-"%s: Syntax ist %s [ -s ] [ -v ] [ -l Lokale-Zeit ] [ -p Posix-Regeln ] [ -d Verzeichnis ]\n"
+"%s: Syntax ist %s [ -s ] [ -v ] [ -l Lokale-Zeit ] [ -p Posix-Regeln ] [ -d "
+"Verzeichnis ]\n"
"\t[ -L Schaltsekunden ] [ -y Jahrestyp ] [ Dateiname ... ]\n"
-#: time/zdump.c:165
+#: time/zdump.c:174
#, c-format
msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"
-msgstr "%s: Syntax %s [ -v ] [ -c cutoff ] Zonen-Name ...\n"
+msgstr "%s: Syntax: %s [ -v ] [ -c cutoff ] Zonen-Name ...\n"
#: sunrpc/clnt_perr.c:125
#, c-format
msgid "(unknown)"
msgstr "Unbekanntes Signal"
-#: catgets/gencat.c:253
+#: catgets/gencat.c:254
msgid "*standard input*"
msgstr "*Standard-Eingabe*"
#: stdio-common/../sysdeps/gnu/errlist.c:766
msgid ".lib section in a.out corrupted"
-msgstr "».lib«-Sektion in der a.out-Datei ist beschädigt"
+msgstr "».lib«-Sektion in der »a.out«-Datei ist beschädigt"
-#: inet/rcmd.c:358
+#: inet/rcmd.c:363
msgid ".rhosts fstat failed"
msgstr "Fehler beim Holen des Status der Datei ».rhosts«"
-#: inet/rcmd.c:354
+#: inet/rcmd.c:359
msgid ".rhosts lstat failed"
msgstr "Fehler beim Holen des Link-Status von ».rhosts«"
-#: inet/rcmd.c:356
+#: inet/rcmd.c:361
msgid ".rhosts not regular file"
msgstr "».rhosts« ist keine reguläre Datei"
-#: inet/rcmd.c:362
+#: inet/rcmd.c:367
msgid ".rhosts writeable by other than owner"
-msgstr "».rhosts« ist auch für andere Benutzer als den Dateieigentümer beschreibbar"
+msgstr ""
+"».rhosts« ist auch für andere Benutzer als den Dateieigentümer beschreibbar"
#: sunrpc/clnt_perr.c:112 sunrpc/clnt_perr.c:133
#, c-format
msgid "; why = "
msgstr "; Ursache = "
-#: locale/programs/ld-ctype.c:326
+#: locale/programs/ld-ctype.c:331
#, c-format
msgid "<SP> character must not be in class `%s'"
msgstr "Das Zeichen »<SP>« darf nicht in der Klasse »%s« enthalten sein"
-#: locale/programs/ld-ctype.c:317
+#: locale/programs/ld-ctype.c:321
#, c-format
msgid "<SP> character not in class `%s'"
msgstr "Das Zeichen »<SP>« ist nicht in der Klasse »%s« enthalten"
msgid "?"
msgstr "?"
+#: sysdeps/unix/sysv/linux/siglist.h:27
+msgid "Aborted"
+msgstr "Abgebrochen"
+
#: stdio-common/../sysdeps/gnu/errlist.c:762
msgid "Accessing a corrupted shared library"
msgstr "Zugriff auf eine fehlerhafte oder defekte Shared-Library"
msgid "Address family not supported by protocol"
msgstr "Die Adress-Familie wird von der Protokoll-Familie nicht unterstützt"
+# Diese Ãœbersetzung macht eigentlich keinen Sinn - jh
#: stdio-common/../sysdeps/gnu/errlist.c:730
msgid "Advertise error"
msgstr "Fehler bei der Werbung"
+#: stdio-common/../sysdeps/unix/siglist.c:43
+#: sysdeps/unix/sysv/linux/siglist.h:33
msgid "Alarm clock"
msgstr "Der Wecker klingelt"
msgid "Bad message"
msgstr "Ungültige Nachricht"
+#: stdio-common/../sysdeps/unix/siglist.c:41
+#: sysdeps/unix/sysv/linux/siglist.h:56
+msgid "Bad system call"
+msgstr "Ungültiger Betriebssystemaufruf"
+
#. TRANS A file that isn't a block special file was given in a situation that
#. TRANS requires one. For example, trying to mount an ordinary file as a file
#. TRANS system in Unix gives this error.
msgid "Block device required"
msgstr "Es ist ein Block-Device notwendig"
-#: sunrpc/pmap_rmt.c:337
+#: sunrpc/pmap_rmt.c:338
msgid "Broadcast select problem"
msgstr "Select-Problem beim Broadcast"
#. TRANS or blocked. Thus, your program will never actually see @code{EPIPE}
#. TRANS unless it has handled or blocked @code{SIGPIPE}.
#: stdio-common/../sysdeps/gnu/errlist.c:222
+#: stdio-common/../sysdeps/unix/siglist.c:42
+#: sysdeps/unix/sysv/linux/siglist.h:32
msgid "Broken pipe"
msgstr "Datenübergabe unterbrochen (broken pipe)"
+# Ungültige Adressierung? - jh
+#: stdio-common/../sysdeps/unix/siglist.c:39
+#: sysdeps/unix/sysv/linux/siglist.h:30
msgid "Bus error"
msgstr "Bus-Zugriffsfehler"
+#: sysdeps/unix/sysv/linux/siglist.h:43
msgid "CPU time limit exceeded"
msgstr "Rechenzeitbegrenzung überschritten"
msgid "Can not access a needed shared library"
msgstr "Auf eine benötigte Shared-Library kann nicht zugegriffen werden"
-#: nis/ypclnt.c:637
+#: nis/ypclnt.c:695
msgid "Can't bind to server which serves this domain"
msgstr "Kein Server für diese NIS-Domain gefunden"
-#: nis/ypclnt.c:649
+#: nis/ypclnt.c:707
msgid "Can't communicate with portmapper"
msgstr "Keine Kommunikation mit dem Portmapper möglich"
-#: nis/ypclnt.c:651
+#: nis/ypclnt.c:709
msgid "Can't communicate with ypbind"
msgstr "Keine Kommunikation mit »ypbind« möglich"
-#: nis/ypclnt.c:653
+#: nis/ypclnt.c:711
msgid "Can't communicate with ypserv"
msgstr "Keine Kommunikation mit »ypserv« möglich"
msgid "Cannot exec a shared library directly"
msgstr "Eine Shared-Library kann nicht direkt ausgeführt werden"
-#: sunrpc/pmap_rmt.c:349
+#: sunrpc/pmap_rmt.c:350
msgid "Cannot receive reply to broadcast"
msgstr "Kann die Antwort auf den Broadcast nicht empfangen"
msgid "Channel number out of range"
msgstr "Das numerische Ergebnis ist außerhalb des gültigen Bereiches"
+#: stdio-common/../sysdeps/unix/siglist.c:49
+#: sysdeps/unix/sysv/linux/siglist.h:39
msgid "Child exited"
msgstr "Der Kind-Prozeß ist beendet"
#: stdio-common/../sysdeps/gnu/errlist.c:738
msgid "Communication error on send"
-msgstr "Fehler bei der Authentifizierung"
+msgstr "Kommunikationsfehler beim Senden"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
#: stdio-common/../sysdeps/gnu/errlist.c:601
msgid "Computer bought the farm"
msgstr "Der Computer hat den Bauernhof erworben"
-#: locale/programs/ld-ctype.c:1197
+#: locale/programs/ld-ctype.c:1204
msgid "Computing table size for character classes might take a while..."
-msgstr "Berechnung der Größe der Zeichentabelle: Dies kann einige Zeit dauern"
+msgstr ""
+"Berechnung der Größe der Tabelle der Zeichenklassen: Dies kann einige Zeit "
+"dauern..."
-#: locale/programs/ld-collate.c:327
+#: locale/programs/ld-collate.c:329
msgid "Computing table size for collation information might take a while..."
-msgstr "Berechnung der Größe der Zeichentabelle: Dies kann einige Zeit dauern"
+msgstr ""
+"Berechnung der Größe der Tabelle der Sortierinformationen: Dies kann einige "
+"Zeit dauern..."
#. TRANS A remote host refused to allow the network connection (typically because
#. TRANS it is not running the requested service).
#. TRANS the timeout period.
#: stdio-common/../sysdeps/gnu/errlist.c:433
msgid "Connection timed out"
-msgstr "Die Wartezeit beim Verbindungsaufbau ist abgelaufen"
+msgstr "Die Wartezeit für die Verbindung ist abgelaufen"
+#: stdio-common/../sysdeps/unix/siglist.c:48
+#: sysdeps/unix/sysv/linux/siglist.h:38
msgid "Continued"
msgstr "Fortgesetzt"
#: catgets/gencat.c:169 db/makedb.c:120 locale/programs/locale.c:187
-#: locale/programs/localedef.c:177
+#: locale/programs/localedef.c:180
#, c-format
msgid ""
"Copyright (C) %s Free Software Foundation, Inc.\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
"Copyright © %s Free Software Foundation, Inc.\n"
-"Dies ist freie Software; in den Quellen befinden sich die Lizenzbedingungen.\n"
+"Dies ist freie Software; in den Quellen befinden sich die "
+"Lizenzbedingungen.\n"
"Es gibt KEINERLEI Garantie; nicht einmal für die TAUGLICHKEIT oder\n"
"VERWENDBARKEIT FÃœR EINEN ANGEGEBENEN ZWECK.\n"
-#: nis/ypclnt.c:663
+#: stdio-common/../sysdeps/unix/siglist.c:53
+msgid "Cputime limit exceeded"
+msgstr "Rechenzeitbegrenzung überschritten"
+
+#: nis/ypclnt.c:721
msgid "Database is busy"
msgstr "Die Databank ist belegt"
#: stdio-common/../sysdeps/gnu/errlist.c:638
msgid "Device not a stream"
-msgstr "Das Gerät ist nicht konfiguriert"
+msgstr "Das Gerät ist kein Stream"
#. TRANS No such device or address. The system tried to use the device
#. TRANS represented by a file you specified, and it couldn't find the device.
#. TRANS mounted filesystem, you get this error.
#: stdio-common/../sysdeps/gnu/errlist.c:116
msgid "Device or resource busy"
-msgstr "Das Gerät ist bereits belegt"
+msgstr "Das Gerät oder die Resource ist belegt"
#. TRANS Directory not empty, where an empty directory was expected. Typically,
#. TRANS this error occurs when you are trying to delete a directory.
msgid "Disc quota exceeded"
msgstr "Der zugewiesene Plattenplatz (Quota) ist überschritten"
-#: nis/ypclnt.c:709
+#: nis/ypclnt.c:767
msgid "Domain not bound"
-msgstr "Die Domain wurde nicht gefunden"
+msgstr "Die Domain wurde nicht zugewiesen"
+
+#: stdio-common/../sysdeps/unix/siglist.c:36
+#: sysdeps/unix/sysv/linux/siglist.h:53
+msgid "EMT trap"
+msgstr "EMT-Trap"
#: sunrpc/clnt_perr.c:254
#, c-format
msgid "Exec format error"
msgstr "Fehler im Format der Programmdatei"
-#: locale/programs/localedef.c:213
+#: locale/programs/localedef.c:216
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
-msgstr "Fataler Fehler: Das System definiert das Symbol »_POSIX2_LOCALEDEF« nicht"
+msgstr ""
+"Fataler Fehler: Das System definiert das Symbol »_POSIX2_LOCALEDEF« nicht"
#: sunrpc/clnt_perr.c:290
msgid "Failed (unspecified error)"
msgid "File name too long"
msgstr "Der Dateiname ist zu lang"
+#: sysdeps/unix/sysv/linux/siglist.h:44
msgid "File size limit exceeded"
-msgstr "Die maximale Länge eines Dateinamens ist überschritten"
+msgstr "Die maximale Dateigröße ist überschritten"
#. TRANS File too big; the size of a file would be larger than allowed by the system.
#: stdio-common/../sysdeps/gnu/errlist.c:190
msgid "File too large"
msgstr "Die Datei ist zu groß"
+#: stdio-common/../sysdeps/unix/siglist.c:54
+msgid "Filesize limit exceeded"
+msgstr "Die maximale Dateigröße ist überschritten"
+
+#: stdio-common/../sysdeps/unix/siglist.c:37
+#: sysdeps/unix/sysv/linux/siglist.h:28
msgid "Floating point exception"
msgstr "Gleitkomma-Ausnahme"
msgid "Gratuitous error"
msgstr "Irgendein Fehler"
+#: stdio-common/../sysdeps/unix/siglist.c:30
+#: sysdeps/unix/sysv/linux/siglist.h:22
msgid "Hangup"
msgstr "Aufgelegt"
msgid "Host name lookup failure"
msgstr "Fehler beim Auflösen des Hostnamens"
+#: stdio-common/../sysdeps/unix/siglist.c:52
+#: sysdeps/unix/sysv/linux/siglist.h:42
msgid "I/O possible"
msgstr "Ein-/Ausgabe ist möglich"
+#: stdio-common/../sysdeps/unix/siglist.c:35
msgid "IOT trap"
msgstr "Ein-/Ausgabe-Trap (IOT)"
msgid "Identifier removed"
msgstr "Bezeichner wurde entfernt"
+#: sysdeps/unix/sysv/linux/siglist.h:25
msgid "Illegal Instruction"
msgstr "Ungültiger Maschinenbefehl"
+#: stdio-common/../sysdeps/unix/siglist.c:33
+msgid "Illegal instruction"
+msgstr "Ungültiger Maschinenbefehl"
+
#. TRANS Invalid seek operation (such as on a pipe).
#: stdio-common/../sysdeps/gnu/errlist.c:201
msgid "Illegal seek"
msgid "Inappropriate operation for background process"
msgstr "Unpassende Operation für den Hintergrundprozeß"
+#: sysdeps/unix/sysv/linux/siglist.h:62
+msgid "Information request"
+msgstr "Informationsanfrage"
+
#. TRANS Input/output error; usually used for physical read or write errors.
#: stdio-common/../sysdeps/gnu/errlist.c:40
msgid "Input/output error"
msgstr "Eingabe-/Ausgabe-Fehler"
-#: nis/ypclnt.c:643
+#: nis/ypclnt.c:701
msgid "Internal NIS error"
msgstr "Interner NIS-Fehler"
-#: nis/ypclnt.c:707
+#: nis/ypclnt.c:765
msgid "Internal ypbind error"
msgstr "Interner Fehler in »ypbind«"
+#: stdio-common/../sysdeps/unix/siglist.c:31
+#: sysdeps/unix/sysv/linux/siglist.h:23
msgid "Interrupt"
msgstr "Unterbrechung"
-#. TRANS Interrupted function call; an asynchronous signal occured and prevented
+#. TRANS Interrupted function call; an asynchronous signal occurred and prevented
#. TRANS completion of the call. When this happens, you should try the call
#. TRANS again.
#. TRANS
#. TRANS Primitives}.
#: stdio-common/../sysdeps/gnu/errlist.c:35
msgid "Interrupted system call"
-msgstr "Unterbrechung während Betriebssystemaufruf"
+msgstr "Unterbrechung während des Betriebssystemaufrufs"
#: stdio-common/../sysdeps/gnu/errlist.c:654
msgid "Interrupted system call should be restarted"
-msgstr "Unterbrechung während Betriebssystemaufruf"
+msgstr "Der unterbrochene Betriebssystemaufruf sollte neu gestartet werden"
#. TRANS Invalid argument. This is used to indicate various kinds of problems
#. TRANS with passing the wrong argument to a library function.
msgid "Invalid argument"
msgstr "Das Argument ist ungültig"
-#: posix/regex.c:946
+#: posix/regex.c:960
msgid "Invalid back reference"
msgstr "Ungültiger Verweis zurück"
-#: posix/regex.c:944
+#: posix/regex.c:958
msgid "Invalid character class name"
msgstr "Ungültiger Name für eine Zeichenklasse"
msgid "Invalid client verifier"
msgstr "Ungültige Überprüfung des Clients"
-#: posix/regex.c:943
+#: posix/regex.c:957
msgid "Invalid collation character"
msgstr "Ungültiges Sortierzeichen"
-#: posix/regex.c:950
+#: posix/regex.c:964
msgid "Invalid content of \\{\\}"
msgstr "Ungültiger Inhalt von »\\{\\}«"
#: stdio-common/../sysdeps/gnu/errlist.c:690
msgid "Invalid exchange"
-msgstr "Das Ende des angegebenen Intervalls ist nicht gültig"
+msgstr "Ungültiger Austausch"
#. TRANS While decoding a multibyte character the function came along an invalid
#. TRANS or an incomplete sequence of bytes or the given wide character is invalid.
#: stdio-common/../sysdeps/gnu/errlist.c:567
msgid "Invalid or incomplete multibyte or wide character"
-msgstr "Ungültiges Sortierzeichen"
+msgstr "Ungültiges oder unvollständiges Multi-Byte oder Wide-Zeichen"
-#: posix/regex.c:953
+#: posix/regex.c:967
msgid "Invalid preceding regular expression"
msgstr "Der vorherige reguläre Ausdruck ist nicht korrekt."
-#: posix/regex.c:951
+#: posix/regex.c:965
msgid "Invalid range end"
msgstr "Das Ende des angegebenen Intervalls ist nicht gültig"
-#: posix/regex.c:942
+#: posix/regex.c:956
msgid "Invalid regular expression"
msgstr "Ungültiger regulärer Ausdruck"
#: stdio-common/../sysdeps/gnu/errlist.c:706
msgid "Invalid request code"
-msgstr "Das Argument ist ungültig"
+msgstr "Ungültiger Aufruf-Code"
#: stdio-common/../sysdeps/gnu/errlist.c:694
msgid "Invalid request descriptor"
-msgstr "Ungültiger Datei-Deskriptor"
+msgstr "Ungültiger Aufruf-Deskriptor"
#: sunrpc/clnt_perr.c:288
msgid "Invalid server verifier"
#: stdio-common/../sysdeps/gnu/errlist.c:710
msgid "Invalid slot"
-msgstr "Das Argument ist ungültig"
+msgstr "Ungültiger Slot"
#. TRANS File is a directory; you cannot open a directory for writing,
#. TRANS or create or remove hard links to it.
#: stdio-common/../sysdeps/gnu/errlist.c:794
msgid "Is a named type file"
-msgstr "Ist eine 'named type file'"
+msgstr "Ist eine »named type file«"
+#: stdio-common/../sysdeps/unix/siglist.c:38
+#: sysdeps/unix/sysv/linux/siglist.h:29
msgid "Killed"
msgstr "Getötet"
#: stdio-common/../sysdeps/gnu/errlist.c:662
msgid "Level 2 not synchronized"
-msgstr "Das Gerät ist nicht konfiguriert"
+msgstr "Level 2 ist nicht synchronisiert"
#: stdio-common/../sysdeps/gnu/errlist.c:666
msgid "Level 3 halted"
#: stdio-common/../sysdeps/gnu/errlist.c:674
msgid "Link number out of range"
-msgstr "Das numerische Ergebnis ist außerhalb des gültigen Bereiches"
+msgstr "Die Link-Nummer ist außerhalb des gültigen Bereiches"
-#: nis/ypclnt.c:655
+#: nis/ypclnt.c:713
msgid "Local domain name not set"
msgstr "Der lokale Domain-Name ist nicht eingetragen"
-#: nis/ypclnt.c:645
+#: nis/ypclnt.c:703
msgid "Local resource allocation failure"
msgstr "Lokaler Fehler bei der Resourcen-Beschaffung"
msgid "Machine is not on the network"
msgstr "Die Maschine ist nicht an das Netzwerk angeschlossen"
-#: posix/regex.c:952
+#: posix/regex.c:966
msgid "Memory exhausted"
msgstr "Kein Hauptspeicher mehr verfügbar"
#: stdio-common/../sysdeps/gnu/errlist.c:618
msgid "Multihop attempted"
-msgstr "Ein 'Multihop' wurde versucht"
+msgstr "Ein »Multihop« wurde versucht"
-#: nis/ypclnt.c:659
+#: nis/ypclnt.c:717
msgid "NIS client/server version mismatch - can't supply service"
-msgstr "NIS Client/Server Versionen passen nicht zusammen - kein Service möglich"
+msgstr ""
+"NIS Client/Server Versionen passen nicht zusammen - kein Service möglich"
-#: nis/ypclnt.c:657
+#: nis/ypclnt.c:715
msgid "NIS map data base is bad"
msgstr "Die Datenbank mit der NIS-Map ist ungültig"
#. TRANS to manipulate.
#: stdio-common/../sysdeps/gnu/errlist.c:77
msgid "No child processes"
-msgstr "Kein Kind-Prozeß"
+msgstr "Keine Kind-Prozesse"
#: stdio-common/../sysdeps/gnu/errlist.c:622
msgid "No data available"
-msgstr "Keine Sperren verfügbar"
+msgstr "Keine Daten verfügbar"
#. TRANS No locks available. This is used by the file locking facilities; see
#. TRANS @ref{File Locks}. This error is never generated by the GNU system, but
msgid "No locks available"
msgstr "Keine Sperren verfügbar"
-#: posix/regex.c:941
+#: posix/regex.c:955
msgid "No match"
msgstr "Keine Ãœbereinstimmung gefunden"
msgid "No message of desired type"
msgstr "Keine Nachricht des gewünschten Typs"
-#: nis/ypclnt.c:647
+#: nis/ypclnt.c:705
msgid "No more records in map database"
msgstr "Keine weiteren Sätze in der Map-Datenbank"
-#: posix/regex.c:5204
+#: posix/regex.c:5324
msgid "No previous regular expression"
msgstr "Es wurde bisher noch kein regulärer Ausdruck definiert"
msgid "No such file or directory"
msgstr "Datei oder Verzeichnis nicht gefunden"
-#: nis/ypclnt.c:641
+#: nis/ypclnt.c:699
msgid "No such key in map"
msgstr "Kein passender Schlüssel in der Map"
-#: nis/ypclnt.c:639
+#: nis/ypclnt.c:697
msgid "No such map in server's domain"
msgstr "Keine passende Map in der Domain des Servers"
#: stdio-common/../sysdeps/gnu/errlist.c:786
msgid "Not a XENIX named type file"
-msgstr "Keine XENIX 'named type' Datei"
+msgstr "Keine XENIX »named type« Datei"
#. TRANS A file that isn't a directory was specified when a directory is required.
#: stdio-common/../sysdeps/gnu/errlist.c:140
msgid "Object is remote"
msgstr "Das Objekt ist remote"
-#: time/zic.c:1939
+#: time/zic.c:1966
msgid "Odd number of quotation marks"
msgstr "Ungerade Anzahl von Anführungszeichen"
#. TRANS particular sort of device.
#: stdio-common/../sysdeps/gnu/errlist.c:135
msgid "Operation not supported by device"
-msgstr "Die Operation wird von dem Gerät nicht unterstützt"
+msgstr "Die Operation wird von diesem Gerät nicht unterstützt"
#. TRANS An operation that cannot complete immediately was initiated on an object
#. TRANS that has non-blocking mode selected. Some functions that must always
msgstr "Das Zusatzpacket ist nicht installiert"
#. TRANS Permission denied; the file permissions do not allow the attempted operation.
-#: nis/ypclnt.c:661 stdio-common/../sysdeps/gnu/errlist.c:96
+#: nis/ypclnt.c:719 stdio-common/../sysdeps/gnu/errlist.c:96
msgid "Permission denied"
msgstr "Keine Berechtigung"
+#: sysdeps/unix/sysv/linux/siglist.h:64
msgid "Power failure"
msgstr "Fehler in der Stromversorgung"
-#: posix/regex.c:954
+#: posix/regex.c:968
msgid "Premature end of regular expression"
msgstr "Unerwartetes Ende des regulären Ausdruckes"
+#: stdio-common/../sysdeps/unix/siglist.c:56
+#: sysdeps/unix/sysv/linux/siglist.h:46
msgid "Profiling timer expired"
msgstr "Zeitnehmer zur Laufzeitbestimmung ist abgelaufen"
#: stdio-common/../sysdeps/gnu/errlist.c:646
msgid "Protocol error"
-msgstr "Fehler des Präprozessors"
+msgstr "Protokoll-Fehler"
#. TRANS The socket communications protocol family you requested is not supported.
#: stdio-common/../sysdeps/gnu/errlist.c:343
msgid "Protocol wrong type for socket"
msgstr "Das Protokoll paßt nicht zu dem Socket"
+#: stdio-common/../sysdeps/unix/siglist.c:32
+#: sysdeps/unix/sysv/linux/siglist.h:24
msgid "Quit"
msgstr "Verlassen"
msgid "RPC bad procedure for program"
msgstr "RPC: ungültige Prozedur für das Programm"
-#: nis/ypclnt.c:635
+#: nis/ypclnt.c:693
msgid "RPC failure on NIS operation"
-msgstr "RPC Fehler bei einer NIS-Operation"
+msgstr "RPC: Fehler bei einer NIS-Operation"
#. TRANS ???
#: stdio-common/../sysdeps/gnu/errlist.c:517
#. TRANS ???
#: stdio-common/../sysdeps/gnu/errlist.c:522
msgid "RPC program version wrong"
-msgstr "RPC: Programm-Version nicht passend"
+msgstr "RPC: Die Programm-Version ist falsch"
#. TRANS ???
#: stdio-common/../sysdeps/gnu/errlist.c:507
msgid "Read-only file system"
msgstr "Das Dateisystem ist nur lesbar"
-#: posix/regex.c:955
+#: posix/regex.c:969
msgid "Regular expression too big"
msgstr "Der reguläre Ausdruck ist zu groß"
#: stdio-common/../sysdeps/gnu/errlist.c:798
msgid "Remote I/O error"
-msgstr "RPC: Ein-/Ausgabe-Fehler des entfernten Systems"
+msgstr "Ein-/Ausgabe-Fehler des entfernten Systems"
#: stdio-common/../sysdeps/gnu/errlist.c:754
msgid "Remote address changed"
msgstr "Das Paßwort löschen oder die Datei für andere nicht lesbar anlegen."
#: catgets/gencat.c:224 db/makedb.c:227 locale/programs/locale.c:257
-#: locale/programs/localedef.c:408
-msgid "Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
-msgstr "Fehler bitte an <bug-glibc@prep.ai.mit.edu> melden.\n"
+#: locale/programs/localedef.c:412
+msgid "Report bugs using the `glibcbug' script to <bugs@gnu.ai.mit.edu>.\n"
+msgstr "Fehler bitte mit dem »glibcbug«-Skript an <bug-glibc@prep.ai.mit.edu> melden.\n"
-#: nis/ypclnt.c:633
+#: nis/ypclnt.c:691
msgid "Request arguments bad"
msgstr "Die Request-Argumente sind ungültig"
#: resolv/herror.c:73
msgid "Resolver Error 0 (no error)"
-msgstr "Fehler des Resolvers 0 (Kein Fehler)"
+msgstr "Fehler 0 des Resolvers (Kein Fehler)"
#: resolv/herror.c:117
msgid "Resolver internal error"
msgid "Resource deadlock avoided"
msgstr "Verklemmung beim Zugriff auf eine Resource vermieden"
+#: stdio-common/../sysdeps/unix/siglist.c:58
+msgid "Resource lost"
+msgstr "Die Resource ist verlorengegangen"
+
#. TRANS Resource temporarily unavailable; the call might work if you try again
#. TRANS later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN};
#. TRANS they are always the same in the GNU C library.
#. TRANS @end itemize
#: stdio-common/../sysdeps/gnu/errlist.c:267
msgid "Resource temporarily unavailable"
-msgstr "Das Programm ist zur Zeit nicht verfügbar"
+msgstr "Die Resource ist zur Zeit nicht verfügbar"
+#: stdio-common/../sysdeps/unix/siglist.c:40
+#: sysdeps/unix/sysv/linux/siglist.h:31
msgid "Segmentation fault"
msgstr "Speicherzugriffsfehler"
msgid "Server rejected verifier"
msgstr "Der Server hat die Überprüfung zurückgewiesen"
+#: stdio-common/../sysdeps/unix/siglist.c:29
+msgid "Signal 0"
+msgstr "Signal 0"
+
#. TRANS A file that isn't a socket was specified when a socket is required.
#: stdio-common/../sysdeps/gnu/errlist.c:299
msgid "Socket operation on non-socket"
msgid "Srmount error"
msgstr "»Srmount«-Fehler"
+#: sysdeps/unix/sysv/linux/siglist.h:59
+msgid "Stack fault"
+msgstr "Stack-Fehler"
+
#. TRANS Stale NFS file handle. This indicates an internal confusion in the NFS
#. TRANS system which is due to file system rearrangements on the server host.
#. TRANS Repairing this condition usually requires unmounting and remounting
#. TRANS the NFS file system on the local host.
#: stdio-common/../sysdeps/gnu/errlist.c:494
msgid "Stale NFS file handle"
-msgstr "Ungültige NFS-Dateizugriffsnummer"
+msgstr "Veraltete NFS-Dateizugriffsnummer"
+#: stdio-common/../sysdeps/unix/siglist.c:47
+#: sysdeps/unix/sysv/linux/siglist.h:37
msgid "Stopped"
msgstr "Angehalten"
+#: stdio-common/../sysdeps/unix/siglist.c:46
+#: sysdeps/unix/sysv/linux/siglist.h:36
msgid "Stopped (signal)"
msgstr "Angehalten (Signal)"
+#: stdio-common/../sysdeps/unix/siglist.c:50
+#: sysdeps/unix/sysv/linux/siglist.h:40
msgid "Stopped (tty input)"
msgstr "Angehalten (tty-Eingabe)"
+#: stdio-common/../sysdeps/unix/siglist.c:51
+#: sysdeps/unix/sysv/linux/siglist.h:41
msgid "Stopped (tty output)"
msgstr "Angehalten (tty-Ausgabe)"
#: stdio-common/../sysdeps/gnu/errlist.c:778
msgid "Streams pipe error"
-msgstr "Fehler in Stream-Pipes"
+msgstr "Fehler in Stream-Pipe"
#: stdio-common/../sysdeps/gnu/errlist.c:782
msgid "Structure needs cleaning"
msgstr "Die Struktur muß bereinigt werden"
-#: nis/ypclnt.c:631 nis/ypclnt.c:705 posix/regex.c:940
+#: nis/ypclnt.c:689 nis/ypclnt.c:763 posix/regex.c:954
#: stdio-common/../sysdeps/gnu/errlist.c:7
msgid "Success"
msgstr "Erfolg"
-#: nis/ypclnt.c:711
+#: nis/ypclnt.c:769
msgid "System resource allocation failure"
msgstr "Fehler bei der Beschaffung einer System-Resource"
+#: stdio-common/../sysdeps/unix/siglist.c:44
+#: sysdeps/unix/sysv/linux/siglist.h:34
msgid "Terminated"
msgstr "Beendet"
msgid "Too many users"
msgstr "Zu viele Benutzer"
+#: stdio-common/../sysdeps/unix/siglist.c:34
+msgid "Trace/BPT trap"
+msgstr "Trace/BPT ausgelöst"
+
+#: sysdeps/unix/sysv/linux/siglist.h:26
msgid "Trace/breakpoint trap"
msgstr "Trace/Breakpoint ausgelöst"
-#: posix/regex.c:945
+#: posix/regex.c:959
msgid "Trailing backslash"
msgstr "Angehängter Backslash (»\\«)"
msgstr "Der Socket ist nicht verbunden"
#: catgets/gencat.c:208 db/makedb.c:209 locale/programs/locale.c:241
-#: locale/programs/localedef.c:389
+#: locale/programs/localedef.c:393
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "»%s --help« gibt weitere Informationen.\n"
-#: inet/rcmd.c:136
+#: inet/rcmd.c:137
#, c-format
msgid "Trying %s...\n"
msgstr "Versuche »%s«...\n"
msgid "Unknown .netrc keyword %s"
msgstr "Unbekanntes Schlüsselwort »%s« in der Datei ».netrc«"
-#: nis/ypclnt.c:665
+#: nis/ypclnt.c:723
msgid "Unknown NIS error code"
msgstr "Unbekannter NIS-Fehlercode"
msgid "Unknown signal %d"
msgstr "Unbekanntes Signal %d"
-#: misc/error.c:95
+#: misc/error.c:100
msgid "Unknown system error"
msgstr "Unbekannter Systemfehler"
-#: nis/ypclnt.c:713
+#: nis/ypclnt.c:771
msgid "Unknown ypbind error"
msgstr "Unbekannter Fehler im »ypbind«"
-#: posix/regex.c:948
+#: posix/regex.c:962
msgid "Unmatched ( or \\("
msgstr "»(« oder »\\(« ohne schließende Klammer"
-#: posix/regex.c:956
+#: posix/regex.c:970
msgid "Unmatched ) or \\)"
msgstr "»)« oder »\\)« ohne öffnende Klammer"
-#: posix/regex.c:947
+#: posix/regex.c:961
msgid "Unmatched [ or [^"
msgstr "»[« oder »[^« ohne schließende Klammer"
-#: posix/regex.c:949
+#: posix/regex.c:963
msgid "Unmatched \\{"
msgstr "»\\{« ohne schließende Klammer"
msgid "Unrecognized variable `%s'"
msgstr "Unbekannte Variable »%s«"
+#: stdio-common/../sysdeps/unix/siglist.c:45
+#: sysdeps/unix/sysv/linux/siglist.h:35
msgid "Urgent I/O condition"
msgstr "Dringende Ein-/Ausgabe-Bedingung"
"Wenn als Name der Eingabe-Datei ein '-' angegeben ist, dann wird\n"
"von der Standard-Eingabe gelesen.\n"
-#: locale/programs/localedef.c:393
+#: locale/programs/localedef.c:397
#, c-format
msgid ""
"Usage: %s [OPTION]... name\n"
"Mandatory arguments to long options are mandatory for short options too.\n"
-" -c, --force create output even if warning messages were issued\n"
+" -c, --force create output even if warning messages were "
+"issued\n"
" -h, --help display this help and exit\n"
" -f, --charmap=FILE symbolic character names defined in FILE\n"
" -i, --inputfile=FILE source definitions are found in FILE\n"
" beschreibungen aus\n"
"\n"
" -c, --category-name Gibt die Namen der gewünschten Kategorien aus\n"
-" -k, --keyword-name Gibt die Namen der geswünschten Schlüsselworte aus\n"
+" -k, --keyword-name Gibt die Namen der gewünschten Schlüsselworte aus\n"
#: posix/getconf.c:200
#, c-format
#: sunrpc/rpcinfo.c:609
msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
-msgstr "Syntax: rpcinfo [ -n Portnummer ] -u Rechner Programm-Nummer [Versions-Nummer]\n"
+msgstr ""
+"Syntax: rpcinfo [ -n Portnummer ] -u Rechner Programm-Nummer "
+"[Versions-Nummer]\n"
+#: stdio-common/../sysdeps/unix/siglist.c:59
+#: sysdeps/unix/sysv/linux/siglist.h:48
msgid "User defined signal 1"
msgstr "Benutzerdefiniertes Signal 1"
+#: stdio-common/../sysdeps/unix/siglist.c:60
+#: sysdeps/unix/sysv/linux/siglist.h:49
msgid "User defined signal 2"
msgstr "Benutzerdefiniertes Signal 2"
msgid "Value too large for defined data type"
msgstr "Der Wert ist zu groß für den definierten Datentyp"
+#: stdio-common/../sysdeps/unix/siglist.c:55
+#: sysdeps/unix/sysv/linux/siglist.h:45
msgid "Virtual timer expired"
msgstr "Der virtuelle Zeitnehmer ist abgelaufen"
-#: time/zic.c:1844
+#: time/zic.c:1871
msgid "Wild result from command execution"
msgstr "Wildes Ergebnis aus der Kommando-Ausführung"
+#: stdio-common/../sysdeps/unix/siglist.c:57
+#: sysdeps/unix/sysv/linux/siglist.h:47
msgid "Window changed"
msgstr "Die Fenstergröße wurde verändert"
#: catgets/gencat.c:174 db/makedb.c:125 locale/programs/locale.c:192
-#: locale/programs/localedef.c:182
+#: locale/programs/localedef.c:185
#, c-format
msgid "Written by %s.\n"
msgstr "Implementiert von %s.\n"
-#: nis/ypclnt.c:146
+#: nis/ypclnt.c:142
msgid "YPBINDPROC_DOMAIN: Internal error\n"
msgstr "YPBINDPROC_DOMAIN: Interner Fehler\n"
-#: nis/ypclnt.c:150
+#: nis/ypclnt.c:146
#, c-format
msgid "YPBINDPROC_DOMAIN: No server for domain %s\n"
msgstr "YPBINDPROC_DOMAIN: Kein Server für die NIS-Domain »%s«\n"
-#: nis/ypclnt.c:154
+#: nis/ypclnt.c:150
msgid "YPBINDPROC_DOMAIN: Resource allocation failure\n"
msgstr "YPBINDPROC_DOMAIN: Fehler bei der Resourcen-Beschaffung\n"
-#: nis/ypclnt.c:158
+#: nis/ypclnt.c:154
msgid "YPBINDPROC_DOMAIN: Unknown error\n"
msgstr "YPBINDPROC_DOMAIN: Unbekannter Fehler\n"
msgid "You really blew it this time"
msgstr "Diesmal hast Du es wirklich kaputtgemacht"
-#: time/zic.c:1050
+#: time/zic.c:1048
msgid "Zone continuation line end time is not after end time of previous line"
-msgstr "Die Ende-Zeit der Fortsetzungszeile ist nicht später als die Ende-Zeit der vorangegangenen Zeile"
+msgstr ""
+"Die Ende-Zeit der Fortsetzungszeile ist nicht später als die Ende-Zeit der "
+"vorangegangenen Zeile"
-#: locale/programs/charmap.c:397 locale/programs/locfile.c:341
+#: locale/programs/charmap.c:397 locale/programs/locfile.c:363
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "Die Definition von »%1$s« ist nicht durch »END %1$s« abgeschlossen"
-#: locale/programs/ld-monetary.c:358 locale/programs/ld-numeric.c:190
+#: locale/programs/ld-monetary.c:359 locale/programs/ld-numeric.c:190
#, c-format
msgid "`-1' must be last entry in `%s' field in `%s' category"
msgstr "»-1« muß der letzte Eintrag im »%s«-Feld in der »%s«-Kategorie sein"
-#: locale/programs/ld-collate.c:1652
+#: locale/programs/ld-collate.c:1655
msgid "`...' must only be used in `...' and `UNDEFINED' entries"
msgstr "»...« darf nur in »...« und »UNDEFINED« Einträgen verwendet werden"
-#: locale/programs/locfile.c:538
+#: locale/programs/locfile.c:560
msgid "`from' expected after first argument to `collating-element'"
msgstr "»from« erwartet nach dem ersten Argument von »collating-element«"
-#: locale/programs/ld-collate.c:1109
-msgid "`from' string in collation element declaration contains unknown character"
-msgstr "Der »from«-String in der Deklaration des »collation element« enthält unbekannte Zeichen"
+#: locale/programs/ld-collate.c:1112
+msgid ""
+"`from' string in collation element declaration contains unknown character"
+msgstr ""
+"Der »from«-String in der Deklaration des »collation element« enthält "
+"unbekannte Zeichen"
#: locale/programs/charmap.c:267
#, c-format
msgid "argument to <%s> must be a single character"
msgstr "Das Argument für »<%s>« muß ein einzelnes Zeichen sein"
-#: locale/programs/locfile.c:215
+#: locale/programs/locfile.c:237
#, c-format
msgid "argument to `%s' must be a single character"
-msgstr "Das Argument zu »%s« muß ein eizelnes Zeichen sein"
+msgstr "Das Argument zu »%s« muß ein einzelnes Zeichen sein"
-#: sunrpc/auth_unix.c:322
+#: sunrpc/auth_unix.c:323
msgid "auth_none.c - Fatal marshalling problem"
msgstr "auth_none.c - Fatales »marshalling«-Problem"
-#: inet/rcmd.c:360
+#: inet/rcmd.c:365
msgid "bad .rhosts owner"
msgstr "Ungültiger Eigentümer der Datei ».rhosts«"
-#: locale/programs/charmap.c:212 locale/programs/locfile.c:209
+#: locale/programs/charmap.c:212 locale/programs/locfile.c:231
msgid "bad argument"
msgstr "Das Argument ist ungültig"
-#: time/zic.c:1172
+#: time/zic.c:1170
msgid "blank FROM field on Link line"
msgstr "Leeres FROM-Feld in der Link-Zeile"
-#: time/zic.c:1176
+#: time/zic.c:1174
msgid "blank TO field on Link line"
msgstr "Leeres TO-Feld in der Link-Zeile"
-#: malloc/mcheck.c:189
+#: malloc/mcheck.c:191
msgid "block freed twice"
msgstr "Speicherblock zum zweiten Mal freigegeben"
-#: malloc/mcheck.c:192
+#: malloc/mcheck.c:194
msgid "bogus mcheck_status, library is buggy"
msgstr "Eigenartiger »mcheck_status«, die Bibliothek enthält Fehler"
msgid "cache_set: victim not found"
msgstr "cache_set: Das Opfer wurde nicht gefunden"
-#: time/zic.c:1685
-msgid "can't determine time zone abbrevation to use just after until time"
-msgstr "Kann die Abkürzung der Zeitzone zur Verwendung direkt nach der Zeit nicht bestimmen"
+#: time/zic.c:1698
+msgid "can't determine time zone abbreviation to use just after until time"
+msgstr "Kann die Abkürzung der Zeitzone zur Verwendung direkt nach der Ende-Zeit nicht bestimmen"
#: sunrpc/svc_simple.c:64
#, c-format
msgid "can't reassign procedure number %d\n"
msgstr "Kann die Prozedurnummer %d nicht erneut zuweisen\n"
-#: locale/programs/localedef.c:287
+#: locale/programs/localedef.c:291
#, c-format
msgid "cannot `stat' locale file `%s'"
msgstr "Kann den Status der Lokale-Datei »%s« nicht bestimmen"
-#: locale/programs/ld-collate.c:1314
+#: locale/programs/ld-collate.c:1317
#, c-format
msgid "cannot insert collation element `%.*s'"
-msgstr "Kann das »Collation«-Element »%.*s« nicht einfügen"
+msgstr "Kann das Sortierelement »%.*s« nicht einfügen"
-#: locale/programs/ld-collate.c:1493 locale/programs/ld-collate.c:1498
+#: locale/programs/ld-collate.c:1496 locale/programs/ld-collate.c:1501
msgid "cannot insert into result table"
msgstr "Kann nicht in die Ergebnis-Tabelle einfügen"
-#: locale/programs/ld-collate.c:1166 locale/programs/ld-collate.c:1208
+#: locale/programs/ld-collate.c:1169 locale/programs/ld-collate.c:1211
#, c-format
msgid "cannot insert new collating symbol definition: %s"
-msgstr "Kann die neue »Collating-Symbol«-Definition nicht einfügen: %s"
+msgstr "Kann die neue Sortiersymbol-Definition nicht einfügen: %s"
#: db/makedb.c:161
#, c-format
msgid "cannot open database file `%s': %s"
msgstr "Kann die Ausgabedatei »%s« nicht öffnen: %s"
-#: catgets/gencat.c:259 db/makedb.c:180
+#: catgets/gencat.c:260 db/makedb.c:180
#, c-format
msgid "cannot open input file `%s'"
msgstr "Kann die Eingabedatei »%s« nicht öffnen"
-#: locale/programs/localedef.c:221
+#: locale/programs/localedef.c:224
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "Kann die Lokale-Definitionsdatei »%s« nicht öffnen"
-#: catgets/gencat.c:764 catgets/gencat.c:805 db/makedb.c:189
+#: catgets/gencat.c:765 catgets/gencat.c:806 db/makedb.c:189
#, c-format
msgid "cannot open output file `%s'"
msgstr "Kann die Ausgabedatei »%s« nicht öffnen"
-#: locale/programs/locfile.c:986
+#: locale/programs/locfile.c:1008
#, c-format
msgid "cannot open output file `%s' for category `%s'"
msgstr "Kann die Ausgabedatei »%s« für die Kategorie »%s« nicht öffnen"
-#: locale/programs/ld-collate.c:1360
+#: locale/programs/ld-collate.c:1363
msgid "cannot process order specification"
msgstr "Kann die Spezifikation der Sortierreihenfolge nicht verarbeiten"
-#: locale/programs/locale.c:303
+#: locale/programs/locale.c:304
#, c-format
msgid "cannot read character map directory `%s'"
-msgstr "Das Verzeichnis »%s« der Zeichensatz-Definitionen kann nicht gelesen werden"
+msgstr ""
+"Das Verzeichnis »%s« der Zeichensatz-Definitionen kann nicht gelesen werden"
-#: locale/programs/locale.c:278
+#: locale/programs/locale.c:279
#, c-format
msgid "cannot read locale directory `%s'"
msgstr "Kann das Lokale-Verzeichnis »%s« nicht lesen"
-#: locale/programs/localedef.c:309
+#: locale/programs/localedef.c:313
#, c-format
msgid "cannot read locale file `%s'"
msgstr "Kann die Lokale-Datei »%s« nicht lesen"
-#: locale/programs/localedef.c:334
+#: locale/programs/localedef.c:338
#, c-format
msgid "cannot write output files to `%s'"
msgstr "Kann die Ausgabedatei »%s« nicht schreiben"
-#: locale/programs/localedef.c:377
+#: locale/programs/localedef.c:381
msgid "category data requested more than once: should not happen"
-msgstr "Die Daten einer Kategorie sind mehrfach angefordert worden, das sollte nicht passieren"
+msgstr ""
+"Die Daten einer Kategorie sind mehrfach angefordert worden, das sollte nicht "
+"passieren"
-#: locale/programs/ld-ctype.c:265
+#: locale/programs/ld-ctype.c:266
#, c-format
msgid "character %s'%s' in class `%s' must be in class `%s'"
-msgstr "Das Zeichen %s»%s«, das in der Zeichenklasse »%s« enthalten ist, muß auch in der Zeichenklasse »%s« enthalten sein"
+msgstr ""
+"Das Zeichen %s»%s«, das in der Zeichenklasse »%s« enthalten ist, muß auch in "
+"der Zeichenklasse »%s« enthalten sein"
-#: locale/programs/ld-ctype.c:289
+#: locale/programs/ld-ctype.c:291
#, c-format
msgid "character %s'%s' in class `%s' must not be in class `%s'"
-msgstr "Das Zeichen %s»%s« in der Zeichenklasse »%s« darf nicht in der Zeichenklasse »%s« enthalten sein"
+msgstr ""
+"Das Zeichen %s»%s« in der Zeichenklasse »%s« darf nicht in der Zeichenklasse "
+"»%s« enthalten sein"
-#: locale/programs/ld-ctype.c:310
+#: locale/programs/ld-ctype.c:313
msgid "character <SP> not defined in character map"
msgstr "Das Zeichen »<SP>« ist in der Zeichen-Definition nicht enthalten"
-#: locale/programs/ld-ctype.c:939 locale/programs/ld-ctype.c:1002
-#: locale/programs/ld-ctype.c:1010 locale/programs/ld-ctype.c:1018
-#: locale/programs/ld-ctype.c:1026 locale/programs/ld-ctype.c:1034
-#: locale/programs/ld-ctype.c:1042 locale/programs/ld-ctype.c:1068
-#: locale/programs/ld-ctype.c:1076 locale/programs/ld-ctype.c:1114
-#: locale/programs/ld-ctype.c:1141 locale/programs/ld-ctype.c:1152
+#: locale/programs/ld-ctype.c:944 locale/programs/ld-ctype.c:1007
+#: locale/programs/ld-ctype.c:1015 locale/programs/ld-ctype.c:1023
+#: locale/programs/ld-ctype.c:1031 locale/programs/ld-ctype.c:1039
+#: locale/programs/ld-ctype.c:1047 locale/programs/ld-ctype.c:1073
+#: locale/programs/ld-ctype.c:1081 locale/programs/ld-ctype.c:1119
+#: locale/programs/ld-ctype.c:1146 locale/programs/ld-ctype.c:1157
#, c-format
msgid "character `%s' not defined while needed as default value"
-msgstr "Das Zeichen »%s« ist nicht definiert, wird aber als Vorgabewert benötigt"
+msgstr ""
+"Das Zeichen »%s« ist nicht definiert, wird aber als Vorgabewert benötigt"
-#: locale/programs/ld-ctype.c:801
+#: locale/programs/ld-ctype.c:806
#, c-format
msgid "character class `%s' already defined"
msgstr "Die Zeichenklasse »%s« ist bereits definiert"
-#: locale/programs/ld-ctype.c:833
+#: locale/programs/ld-ctype.c:838
#, c-format
msgid "character map `%s' already defined"
msgstr "Die Zeichensatzbeschreibung »%s« ist bereits definiert"
msgid "clnt_raw.c - Fatal header serialization error."
msgstr "clnt_raw.c - Fataler Fehler bei der Header-Serialisierung."
-#: locale/programs/ld-collate.c:1329
+#: locale/programs/ld-collate.c:1332
#, c-format
msgid "collation element `%.*s' appears more than once: ignore line"
-msgstr "Das 'collation'-Element »%.*s« ist mehr als einmal angegeben: Die Zeile wird ignoriert"
+msgstr ""
+"Das Sortierungselement »%.*s« ist mehr als einmal angegeben: Die Zeile wird "
+"ignoriert"
-#: locale/programs/ld-collate.c:1347
+#: locale/programs/ld-collate.c:1350
#, c-format
msgid "collation symbol `%.*s' appears more than once: ignore line"
-msgstr "Das 'Collation'-Symbol »%.*s« ist mehr als einmal angegeben; die Zeile wird ignoriert"
+msgstr ""
+"Das Sortierungssymbol »%.*s« ist mehr als einmal angegeben; die Zeile wird "
+"ignoriert"
-#: locale/programs/locfile.c:522
+#: locale/programs/locfile.c:544
#, c-format
msgid "collation symbol expected after `%s'"
-msgstr "Nach »%s« wird ein 'collation'-Symbol erwartet"
+msgstr "Nach »%s« wird ein Sortierungssymbol erwartet"
-#: inet/rcmd.c:129
+#: inet/rcmd.c:130
#, c-format
msgid "connect to address %s: "
msgstr "Verbindungsaufbau zur Adresse %s: "
#: sunrpc/svc_simple.c:77
#, c-format
msgid "couldn't register prog %d vers %d\n"
-msgstr "Kann das Programm %d Version %d nicht registrieren\n"
+msgstr "Kann das Programm »%d« Version »%d« nicht registrieren\n"
#: locale/programs/charmap.c:86
#, c-format
msgid "default character map file `%s' not found"
-msgstr "Die Default-Zeichensatzbeschreibung in der Datei »%s« wurde nicht gefunden"
+msgstr ""
+"Die Default-Zeichensatzbeschreibung in der Datei »%s« wurde nicht gefunden"
#: locale/programs/ld-time.c:154
#, c-format
-msgid "direction flag in string %d in `era' field in category `%s' is not '+' nor '-'"
-msgstr "Der Richtungsanzeiger in der Zeichenkette %d im »era«-Feld in der Kategorie »%s« ist weder »+« noch »-«"
+msgid ""
+"direction flag in string %d in `era' field in category `%s' is not '+' nor "
+"'-'"
+msgstr ""
+"Der Richtungsanzeiger in der Zeichenkette %d im »era«-Feld in der Kategorie "
+"»%s« ist weder »+« noch »-«"
#: locale/programs/ld-time.c:164
#, c-format
-msgid "direction flag in string %d in `era' field in category `%s' is not a single character"
-msgstr "Der Richtungsanzeiger in der Zeichenkette %d im »era«-Feld in der Kategorie »%s« ist kein einzelnes Zeichen"
+msgid ""
+"direction flag in string %d in `era' field in category `%s' is not a single "
+"character"
+msgstr ""
+"Der Richtungsanzeiger in der Zeichenkette %d im »era«-Feld in der Kategorie "
+"»%s« ist kein einzelnes Zeichen"
#: locale/programs/charset.c:87 locale/programs/charset.c:132
#, c-format
msgid "duplicate character name `%s'"
msgstr "Der Name des Zeichens »%s« ist mehrfach angegeben"
-#: locale/programs/ld-collate.c:1141
+#: locale/programs/ld-collate.c:1144
msgid "duplicate collating element definition"
-msgstr "Mehrfache Definition des 'collating'-Elementes"
+msgstr "Mehrfache Definition des Sortierungselementes"
-#: locale/programs/ld-collate.c:1287
+#: locale/programs/ld-collate.c:1290
#, c-format
msgid "duplicate definition for character `%.*s'"
msgstr "Mehrfache Definition des Eintrages »%.*s«"
-#: db/makedb.c:310
+#: db/makedb.c:311
msgid "duplicate key"
-msgstr "Doppelter Eintrag"
+msgstr "Doppelter Schlüssel"
-#: catgets/gencat.c:378
+#: catgets/gencat.c:379
msgid "duplicate set definition"
msgstr "Doppelte »set«-Definition"
-#: time/zic.c:965
+#: time/zic.c:963
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %d)"
msgstr "Doppelter Zonen-Name »%s« (Datei »%s«, Zeile %d)"
-#: catgets/gencat.c:541
+#: catgets/gencat.c:542
msgid "duplicated message identifier"
msgstr "Der Nachrichten-Bezeichner ist mehrfach vorhanden"
-#: catgets/gencat.c:514
+#: catgets/gencat.c:515
msgid "duplicated message number"
msgstr "Die Nachrichten-Nummer ist mehrfach vorhanden"
-#: locale/programs/ld-collate.c:1696
+#: locale/programs/ld-collate.c:1699
msgid "empty weight name: line ignored"
-msgstr "Leerer »weight«-Name: Die Zeile wird ignoriert"
+msgstr "Leerer Name des Sortiergewichtes: Die Zeile wird ignoriert"
#: sunrpc/svc_udp.c:348
msgid "enablecache: cache already enabled"
msgid "enablecache: could not allocate cache fifo"
msgstr "enablecache: Kann keinen FIFO-Cache anlegen"
-#: locale/programs/ld-collate.c:1419
+#: locale/programs/ld-collate.c:1422
msgid "end point of ellipsis range is bigger then start"
msgstr "Das Ende eines Auslassungs-Intervalls ist gößer als der Start"
-#: locale/programs/ld-collate.c:1149
+#: locale/programs/ld-collate.c:1152
msgid "error while inserting collation element into hash table"
msgstr "Fehler beim Einfügen des Collation-Elementes in die Hash-Tabelle"
-#: locale/programs/ld-collate.c:1161
+#: locale/programs/ld-collate.c:1164
msgid "error while inserting to hash table"
msgstr "Fehler beim Einfügen in die Hash-Tabelle"
-#: locale/programs/locfile.c:465
+#: locale/programs/locfile.c:487
msgid "expect string argument for `copy'"
msgstr "Für »copy« wird ein String-Argument erwartet"
-#: time/zic.c:856
+#: time/zic.c:854
msgid "expected continuation line not found"
msgstr "Die erwartete Fortsetzungszeile ist nicht vorhanden"
-#: locale/programs/locfile.c:1010
+#: locale/programs/locfile.c:1032
#, c-format
msgid "failure while writing data for category `%s'"
msgstr "Fehler beim Schreiben der Daten für die Kategorie »%s«"
-#: locale/programs/ld-monetary.c:154 locale/programs/ld-numeric.c:95
+#: nis/ypclnt.c:187
+msgid "fcntl: F_SETFD"
+msgstr "fcntl: F_SETFD"
+
+#: locale/programs/ld-monetary.c:155 locale/programs/ld-numeric.c:95
#, c-format
msgid "field `%s' in category `%s' not defined"
-msgstr "Der Eintrag »%s« in der Kategorie »%s« ist undefiniert"
+msgstr "Der Eintrag »%s« in der Kategorie »%s« ist nicht definiert"
#: locale/programs/ld-messages.c:81 locale/programs/ld-messages.c:102
#, c-format
msgid "field `%s' in category `%s' undefined"
-msgstr "Der Eintrag »%s« in der Kategorie »%s« ist undefiniert"
+msgstr "Der Eintrag »%s« in der Kategorie »%s« ist nicht definiert"
-#: locale/programs/locfile.c:547
+#: locale/programs/locfile.c:569
msgid "from-value of `collating-element' must be a string"
-msgstr "Der From-Wert eines `collating-Eelements' muß ein String sein"
+msgstr "Der »From«-Wert eines Sortierelementes muß ein String sein"
#: locale/programs/linereader.c:328
msgid "garbage at end of character code specification"
msgstr "Murks am Ende einer Zeichensatz-Spezifikation"
#: locale/programs/linereader.c:214
-msgid "garbage at end of digit"
-msgstr "Am Ende der Ziffer sind unsinnige Einträge"
+msgid "garbage at end of number"
+msgstr "Am Ende der Zahl sind unsinnige Einträge"
#: locale/programs/ld-time.c:183
#, c-format
-msgid "garbage at end of offset value in string %d in `era' field in category `%s'"
-msgstr "Unsinnige Einträge am Ende des Offset-Wertes in der Zeichenkette %d im »era«-Feld der Kategorie »%s«"
+msgid ""
+"garbage at end of offset value in string %d in `era' field in category `%s'"
+msgstr ""
+"Unsinnige Einträge am Ende des Offset-Wertes in der Zeichenkette %d im "
+"»era«-Feld der Kategorie »%s«"
#: locale/programs/ld-time.c:238
#, c-format
-msgid "garbage at end of starting date in string %d in `era' field in category `%s'"
-msgstr "Unsinnige Einträge am Ende des Start-Datums in der Zeichenkette %d im »era«-Feld der Kategorie »%s«"
+msgid ""
+"garbage at end of starting date in string %d in `era' field in category `%s'"
+msgstr ""
+"Unsinnige Einträge am Ende des Start-Datums in der Zeichenkette %d im "
+"»era«-Feld der Kategorie »%s«"
-#: locale/programs/ld-time.c:310
+#: locale/programs/ld-time.c:311
#, c-format
-msgid "garbage at end of stopping date in string %d in `era' field in category `%s'"
-msgstr "Unsinnige Eintrage am Ende des Stop-Datums in der Zeichenkette %d im »era«-Feld der Kategorie »%s«"
+msgid ""
+"garbage at end of stopping date in string %d in `era' field in category `%s'"
+msgstr ""
+"Unsinnige Eintrage am Ende des Stop-Datums in der Zeichenkette %d im "
+"»era«-Feld der Kategorie »%s«"
#: sunrpc/get_myaddr.c:73
msgid "get_myaddress: ioctl (get interface configuration)"
-msgstr "get_myaddress: ioctl (Holen der Konfiguration der Schnittstelle)"
+msgstr "get_myaddress: ioctl (Holen der Schnittstellen-Konfiguration)"
-#: time/zic.c:1149
+#: time/zic.c:1147
msgid "illegal CORRECTION field on Leap line"
-msgstr "ungültiges »CORRECTION«-Feld in der 'Leap'-Zeile"
+msgstr "ungültiges »CORRECTION«-Feld in der »Leap«-Zeile"
-#: time/zic.c:1153
+#: time/zic.c:1151
msgid "illegal Rolling/Stationary field on Leap line"
-msgstr "ungültiges »Rolling/Stationary«-Feld in der 'Leap'-Zeile"
+msgstr "ungültiges »Rolling/Stationary«-Feld in der »Leap«-Zeile"
-#: locale/programs/ld-collate.c:1767
+#: locale/programs/ld-collate.c:1770
msgid "illegal character constant in string"
-msgstr "Nicht erlaubtes Zeichen in der Datei: "
+msgstr "Ungültige Zeichen-Konstante in der Zeichenkette"
-#: locale/programs/ld-collate.c:1116
+#: locale/programs/ld-collate.c:1119
msgid "illegal collation element"
-msgstr "Nicht erlaubtes Zeichen in der Datei: "
+msgstr "Ungültiges »collation«-Element"
#: locale/programs/charmap.c:196
msgid "illegal definition"
-msgstr "Ungültiger Maschinenbefehl"
+msgstr "Ungültige Definition"
#: locale/programs/charmap.c:349
msgid "illegal encoding given"
#: locale/programs/linereader.c:546
msgid "illegal escape sequence at end of string"
-msgstr "ungültige Escape-Sequenc am Ende des Strings"
+msgstr "ungültige Escape-Sequenz am Ende der Zeichenkette"
#: locale/programs/charset.c:101
msgid "illegal names for character range"
-msgstr "Ungültige Namen für den Zeichen-Bereich"
+msgstr "ungültige Namen für den Zeichen-Bereich"
#: locale/programs/ld-time.c:176
#, c-format
msgid "illegal number for offset in string %d in `era' field in category `%s'"
-msgstr "ungültige Nummer für den Offset in der Zeichenkette %d im »era«-Feld in der Kategorie »%s«"
+msgstr ""
+"ungültige Nummer für den Offset in der Zeichenkette %d im »era«-Feld in der "
+"Kategorie »%s«"
-#: catgets/gencat.c:351 catgets/gencat.c:428
+#: catgets/gencat.c:352 catgets/gencat.c:429
msgid "illegal set number"
-msgstr "Nicht erlaubter Seek"
+msgstr "ungültige »set«-Nummer"
#: locale/programs/ld-time.c:230
#, c-format
msgid "illegal starting date in string %d in `era' field in category `%s'"
-msgstr "ungültiges Start-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie »%s«"
+msgstr ""
+"ungültiges Start-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie "
+"»%s«"
-#: locale/programs/ld-time.c:302
+#: locale/programs/ld-time.c:303
#, c-format
msgid "illegal stopping date in string %d in `era' field in category `%s'"
-msgstr "ungültiges Ende-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie »%s«"
+msgstr ""
+"ungültiges Ende-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie "
+"»%s«"
-#: locale/programs/ld-ctype.c:807
+#: locale/programs/ld-ctype.c:812
#, c-format
msgid "implementation limit: no more than %d character classes allowed"
-msgstr "Limit der Implementation: Es sind nicht mehr als %d Zeichensatz-Klassen erlaubt"
+msgstr ""
+"Limit der Implementation: Es sind nicht mehr als %d Zeichen-Klassen erlaubt"
-#: locale/programs/ld-ctype.c:839
+#: locale/programs/ld-ctype.c:844
#, c-format
msgid "implementation limit: no more than %d character maps allowed"
-msgstr "Limit der Implementation: Es sind nicht mehr als %d Zeichen-Maps erlaubt"
+msgstr ""
+"Limit der Implementation: Es sind nicht mehr als %d Zeichen-Maps erlaubt"
#: db/makedb.c:163
msgid "incorrectly formatted file"
-msgstr "ungültig formatierten Zeile"
+msgstr "ungültig formatierte Datei"
-#: time/zic.c:814
+#: time/zic.c:811
msgid "input line of unknown type"
msgstr "Die Eingabezeile ist von einem unbekannten Typ"
-#: time/zic.c:1733
+#: time/zic.c:1760
msgid "internal error - addtype called with bad isdst"
-msgstr "Interner Fehler - »addtype« wurde mit einer ungültigen »isdst« aufgerufen"
+msgstr ""
+"Interner Fehler - »addtype« wurde mit einer ungültigen »isdst« aufgerufen"
-#: time/zic.c:1741
+#: time/zic.c:1768
msgid "internal error - addtype called with bad ttisgmt"
-msgstr "Interner Fehler - »addtype« wurde mit einem ungültigen »ttisgmt« aufgerufen"
+msgstr ""
+"Interner Fehler - »addtype« wurde mit einem ungültigen »ttisgmt« aufgerufen"
-#: time/zic.c:1737
+#: time/zic.c:1764
msgid "internal error - addtype called with bad ttisstd"
-msgstr "Interner Fehler - »addtype« wurde mit einem ungültigen »ttisstd« aufgerufen"
+msgstr ""
+"Interner Fehler - »addtype« wurde mit einem ungültigen »ttisstd« aufgerufen"
-#: locale/programs/ld-ctype.c:301
+#: locale/programs/ld-ctype.c:304
#, c-format
msgid "internal error in %s, line %u"
msgstr "Interner Fehler in der Datei »%s«, Zeile %u"
-#: time/zic.c:1021
+# Sollte das nicht UTC sein? -- jh
+#: time/zic.c:1019
msgid "invalid GMT offset"
msgstr "ungültiger GMT-Offset"
-#: time/zic.c:1024
+#: time/zic.c:1022
msgid "invalid abbreviation format"
msgstr "ungültiges Abkürzungsformat"
-#: time/zic.c:1114 time/zic.c:1313 time/zic.c:1327
+#: time/zic.c:1112 time/zic.c:1313 time/zic.c:1327
msgid "invalid day of month"
msgstr "Ungültiger Tag des Monats"
-#: time/zic.c:1272
+#: time/zic.c:1270
msgid "invalid ending year"
msgstr "Ungültiges Ende-Jahr"
-#: time/zic.c:1086
+#: time/zic.c:1084
msgid "invalid leaping year"
msgstr "Ungültiges Schaltjahr"
-#: time/zic.c:1101 time/zic.c:1204
+#: time/zic.c:1099 time/zic.c:1202
msgid "invalid month name"
msgstr "ungültiger Monatsname"
-#: time/zic.c:920
+#: time/zic.c:918
msgid "invalid saved time"
msgstr "Ungültige gespeicherte Zeit"
-#: time/zic.c:1252
+#: time/zic.c:1250
msgid "invalid starting year"
msgstr "Ungültiges Anfangsjahr"
-#: time/zic.c:1130 time/zic.c:1232
+#: time/zic.c:1128 time/zic.c:1230
msgid "invalid time of day"
msgstr "Ungültige Tageszeit"
msgid "invalid weekday name"
msgstr "ungültiger Name für einen Wochentag"
-#: locale/programs/ld-collate.c:1412
+#: locale/programs/ld-collate.c:1415
msgid "line after ellipsis must contain character definition"
-msgstr "Die Zeile nach einem Auslassungintervall muß eine Zeichen-Definition enthalten"
+msgstr ""
+"Die Zeile nach einem Auslassungintervall muß eine Zeichen-Definition "
+"enthalten"
-#: locale/programs/ld-collate.c:1391
+#: locale/programs/ld-collate.c:1394
msgid "line before ellipsis does not contain definition for character constant"
-msgstr "Die Zeile vor einem Auslassungsintervall muß eine Zeichen-Definition enthalten"
+msgstr ""
+"Die Zeile vor einem Auslassungsintervall muß eine Zeichen-Konstante enthalten"
-#: time/zic.c:794
+#: time/zic.c:791
msgid "line too long"
msgstr "Die Zeile ist zu lang"
-#: locale/programs/localedef.c:281
+#: locale/programs/localedef.c:285
#, c-format
msgid "locale file `%s', used in `copy' statement, not found"
-msgstr "Die Lokale-Datei »%s«, die im »copy«-Befehl verwendet wird, ist nicht vorhanden"
+msgstr ""
+"Die Lokale-Datei »%s«, die im »copy«-Befehl verwendet wird, ist nicht "
+"vorhanden"
-#: catgets/gencat.c:609
+#: catgets/gencat.c:610
msgid "malformed line ignored"
msgstr "ungültige Eingabezeile ignoriert"
-#: malloc/mcheck.c:183
+#: malloc/mcheck.c:185
msgid "memory clobbered before allocated block"
msgstr "Der Speicher vor dem allozierten Block wurde überschrieben"
-#: malloc/mcheck.c:186
+#: malloc/mcheck.c:188
msgid "memory clobbered past end of allocated block"
msgstr "Der Speicher nach dem Ende des allozierten Blockes wurde überschrieben"
#: locale/programs/ld-collate.c:167 locale/programs/ld-collate.c:173
-#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1439
-#: locale/programs/ld-collate.c:1468 locale/programs/locfile.c:940
+#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1442
+#: locale/programs/ld-collate.c:1471 locale/programs/locfile.c:962
#: locale/programs/xmalloc.c:68 posix/getconf.c:250
msgid "memory exhausted"
msgstr "Kein Hauptspeicher mehr verfügbar"
-#: malloc/obstack.c:425
+#: malloc/obstack.c:462
msgid "memory exhausted\n"
msgstr "Kein Hauptspeicher mehr verfügbar\n"
-#: malloc/mcheck.c:180
+#: malloc/mcheck.c:182
msgid "memory is consistent, library is buggy"
msgstr "Die Speicherverwaltung ist konsistent, die Bibliothek enthält Fehler"
-#: locale/programs/ld-time.c:348
+#: locale/programs/ld-time.c:350
#, c-format
msgid "missing era format in string %d in `era' field in category `%s'"
-msgstr "fehlendes »era«-Format in der Zeichenkette %d im »era«-Feld in der Kategorie »%s«"
+msgstr ""
+"fehlendes »era«-Format in der Zeichenkette %d im »era«-Feld in der Kategorie "
+"»%s«"
-#: locale/programs/ld-time.c:337
+#: locale/programs/ld-time.c:339
#, c-format
-msgid "missing era name in string %d in `era' fieldin category `%s'"
-msgstr "fehlender »era«-Name in der Zeichenkette %d im »era« Feld in der Kategorie »%s«"
+msgid "missing era name in string %d in `era' field in category `%s'"
+msgstr ""
+"fehlender »era«-Name in der Zeichenkette %d im »era« Feld in der Kategorie "
+"»%s«"
-#: time/zic.c:915
+#: time/zic.c:913
msgid "nameless rule"
msgstr "Regel ohne Name"
#: locale/programs/ld-messages.c:95 locale/programs/ld-messages.c:116
#, c-format
msgid "no correct regular expression for field `%s' in category `%s': %s"
-msgstr "Kein gültiger regulärer Ausdruck für den Eintrag »%s« in der Kategorie »%s«: %s"
+msgstr ""
+"Kein gültiger regulärer Ausdruck für den Eintrag »%s« in der Kategorie »%s«: "
+"%s"
-#: time/zic.c:2059
+#: time/zic.c:2086
msgid "no day in month matches rule"
msgstr "Kein Tag des Monats paßt zur angegebenen Regel"
-#: locale/programs/ld-collate.c:259
+#: locale/programs/ld-collate.c:260
msgid "no definition of `UNDEFINED'"
msgstr "Keine Definition für »UNDEFINED«"
-#: locale/programs/locfile.c:479
+#: locale/programs/locfile.c:501
msgid "no other keyword shall be specified when `copy' is used"
-msgstr "Es dürfen keine anderen Schlüsselworte angegeben werden, wenn »copy« verwendet wird"
+msgstr ""
+"Es dürfen keine anderen Schlüsselworte angegeben werden, wenn »copy« "
+"verwendet wird"
-#: locale/programs/localedef.c:340
+#: locale/programs/localedef.c:344
msgid "no output file produced because warning were issued"
msgstr "Es wurde keine Ausgabe-Datei erzeugt, weil Warnungen ausgegeben wurden"
#: locale/programs/charmap.c:380 locale/programs/charmap.c:512
#: locale/programs/charmap.c:578
msgid "no symbolic name given for end of range"
-msgstr "Kein symbolische Name für das Ende eines Intervalles angegeben"
+msgstr "Kein symbolischer Name für das Ende des Intervalles angegeben"
#: locale/programs/ld-collate.c:244
#, c-format
msgid "no weight defined for symbol `%s'"
-msgstr "Kein »Weight« für das Symbol »%s« definiert"
+msgstr "Kein Sortiergewicht (»Weight«) für das Symbol »%s« definiert"
#: locale/programs/charmap.c:430
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "Nur »WIDTH«-Definitionen dürfen nach einer »CHARMAP«-Definition folgen"
-#: db/makedb.c:326
+#: db/makedb.c:327
#, c-format
msgid "problems while reading `%s'"
msgstr "Probleme beim Lesen von »%s«"
msgid "program %lu version %lu ready and waiting\n"
msgstr "Program %lu Version %lu ist bereit und wartet\n"
-#: inet/rcmd.c:171
+#: inet/rcmd.c:172
#, c-format
msgid "rcmd: select (setting up stderr): %m\n"
msgstr "rcmd: select (Vorbereiten der Standard-Fehlerausgabe): %m\n"
-#: inet/rcmd.c:103
+#: inet/rcmd.c:104
msgid "rcmd: socket: All ports in use\n"
msgstr "rcmd: Socket: Alle Ports sind zur Zeit belegt\n"
-#: inet/rcmd.c:159
+#: inet/rcmd.c:160
#, c-format
msgid "rcmd: write (setting up stderr): %m\n"
msgstr "rcmd: write (Vorbereiten der Standard-Fehlerausgabe): %m\n"
msgid "registerrpc: out of memory\n"
msgstr "registerrpc: Hauptspeicher erschöpft\n"
-#: time/zic.c:1794
+#: time/zic.c:1821
msgid "repeated leap second moment"
-msgstr "Wiederholung der Leap-Sekunde"
+msgstr "Wiederholung der »Leap«-Sekunde"
#: sunrpc/rpcinfo.c:659
#, c-format
#: sunrpc/rpcinfo.c:600
#, c-format
msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
-msgstr "Kann das Programm »%s« Version »%s« nicht registrieren\n"
+msgstr ""
+"rpcinfo; Kann die Registrierung des Programms »%s« Version »%s« nicht "
+"löschen\n"
#: sunrpc/rpcinfo.c:576
#, c-format
msgid "rpcinfo: can't contact portmapper: "
msgstr "rpcinfo: Kann den Portmapper nicht erreichen: "
-#: time/zic.c:708 time/zic.c:710
+#: time/zic.c:704 time/zic.c:706
msgid "same rule name in multiple files"
msgstr "Dieselbe Regel ist in mehreren Dateien enthalten"
-#: inet/rcmd.c:174
+#: inet/rcmd.c:175
msgid "select: protocol failure in circuit setup\n"
-msgstr "Select: Protokollfehler im Kreislauf-Setup\n"
+msgstr "Select: Protokoll-Fehler im Kreislauf-Setup\n"
-#: inet/rcmd.c:192
+#: inet/rcmd.c:193
msgid "socket: protocol failure in circuit setup\n"
msgstr "socket: Protokoll-Fehler im Kreislauf-Setup\n"
-#: locale/programs/locfile.c:600
+#: locale/programs/locfile.c:622
msgid "sorting order `forward' and `backward' are mutually exclusive"
msgstr "Die Anweisungen »forward« und »backward« schließen sich aus"
-#: locale/programs/ld-collate.c:1568 locale/programs/ld-collate.c:1614
-msgid "specification of sorting weight for collation symbol does not make sense"
-msgstr "Die Angabe eines Sortier-Gewichtes für ein »Collation«-Symbol ist nicht sinnvoll"
+#: locale/programs/ld-collate.c:1571 locale/programs/ld-collate.c:1617
+msgid ""
+"specification of sorting weight for collation symbol does not make sense"
+msgstr ""
+"Die Angabe eines Sortiergewichtes für ein »Collation«-Symbol ist nicht "
+"sinnvoll"
-#: time/zic.c:779
+#: time/zic.c:775
msgid "standard input"
msgstr "Standard-Eingabe"
-#: time/zdump.c:260
+#: time/zdump.c:268
msgid "standard output"
msgstr "Standard-Ausgabe"
-#: locale/programs/ld-time.c:256
+#: locale/programs/ld-time.c:257
#, c-format
msgid "starting date is illegal in string %d in `era' field in category `%s'"
-msgstr "Das Start-Datum in der Zeichenkette %d im »era«-Feld der Kategorie »%s« ist ungültig"
+msgstr ""
+"Das Start-Datum in der Zeichenkette %d im »era«-Feld der Kategorie »%s« ist "
+"ungültig"
-#: time/zic.c:1276
+#: time/zic.c:1274
msgid "starting year greater than ending year"
msgstr "Das Start-Jahr ist größer als das Ende-Jahr"
-#: locale/programs/ld-time.c:328
+#: locale/programs/ld-time.c:330
#, c-format
msgid "stopping date is illegal in string %d in `era' field in category `%s'"
-msgstr "Das Ende-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie »%s« ist ungültig"
+msgstr ""
+"Das Ende-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie »%s« "
+"ist ungültig"
#: sunrpc/svc_tcp.c:201 sunrpc/svc_tcp.c:206
msgid "svc_tcp: makefd_xprt: out of memory\n"
msgid "svcudp_create: socket creation problem"
msgstr "svcudp_create: Problem bei der Erstellung des Sockets"
-#: locale/programs/ld-collate.c:1191
+# Hat hier jemand eine bessere Ãœbersetzung? -- jh
+# Leider nein. Ich würde es nur groß schreiben und auch im folgenden üs. ke
+#: locale/programs/ld-collate.c:1194
#, c-format
-msgid "symbol for multicharacter collating element `%.*s' duplicates element definition"
-msgstr "Das Symbol für das mehr-zeichen Collating-Element »%.*s« wiederholt die Element-Definition"
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates element "
+"definition"
+msgstr "Das Symbol für das Mehr-Zeichen Collating-Element »%.*s« wiederholt die Element-Definition"
-#: locale/programs/ld-collate.c:1064
+#: locale/programs/ld-collate.c:1067
#, c-format
-msgid "symbol for multicharacter collating element `%.*s' duplicates other element definition"
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates other element "
+"definition"
msgstr "Das Symbol für das 'multicharacter collating'-Element »%.*s« wiederholt eine andere Element-Definition"
-#: locale/programs/ld-collate.c:1200
+#: locale/programs/ld-collate.c:1203
#, c-format
-msgid "symbol for multicharacter collating element `%.*s' duplicates other symbol definition"
-msgstr "Das Symbol für das 'multicharacter collating'-Element »%.*s« wiederholt eine andere Symbol-Definition"
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates other symbol "
+"definition"
+msgstr ""
+"Das Symbol für das 'multicharacter collating'-Element »%.*s« wiederholt eine "
+"andere Symbol-Definition"
-#: locale/programs/ld-collate.c:1073
+#: locale/programs/ld-collate.c:1076
#, c-format
-msgid "symbol for multicharacter collating element `%.*s' duplicates symbol definition"
-msgstr "Das Symbol für das 'multicharacter collating'-Element »%.*s« wiederholt eine Symbol-Definition"
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates symbol "
+"definition"
+msgstr ""
+"Das Symbol für das 'multicharacter collating'-Element »%.*s« wiederholt eine "
+"Symbol-Definition"
-#: locale/programs/ld-collate.c:1055 locale/programs/ld-collate.c:1182
+#: locale/programs/ld-collate.c:1058 locale/programs/ld-collate.c:1185
#, c-format
-msgid "symbol for multicharacter collating element `%.*s' duplicates symbolic name in charset"
-msgstr "Das Symbol für das 'multicharacter collating'-Element »%.*s« kollidiert mit einem symbolischen Namen in der Zeichensatzbeschreibung"
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates symbolic name "
+"in charset"
+msgstr ""
+"Das Symbol für das 'multicharacter collating'-Element »%.*s« kollidiert mit "
+"einem symbolischen Namen in der Zeichensatzbeschreibung"
#: locale/programs/charmap.c:314 locale/programs/charmap.c:348
#: locale/programs/charmap.c:378 locale/programs/charmap.c:465
msgid "syntax error in %s definition: %s"
msgstr "Syntaxfehler in der »%s«-Definition: %s"
-#: locale/programs/locfile.c:620
+#: locale/programs/locfile.c:642
msgid "syntax error in `order_start' directive"
msgstr "Syntaxfehler in der »order_start«-Anweisung"
-#: locale/programs/locfile.c:362
+#: locale/programs/locfile.c:384
msgid "syntax error in character class definition"
-msgstr "Syntaxfehler in der Zeichensatz-Definitionsdatei"
+msgstr "Syntaxfehler in der Zeichenklassen-Definitionsdatei"
-#: locale/programs/locfile.c:420
+#: locale/programs/locfile.c:442
msgid "syntax error in character conversion definition"
-msgstr "Syntaxfehler in der Zeichensatz-Umwandlungs-Defintion"
+msgstr "Syntaxfehler in der Zeichensatz-Umwandlungs-Definition"
-#: locale/programs/locfile.c:662
+#: locale/programs/locfile.c:684
msgid "syntax error in collating order definition"
msgstr "Syntaxfehler in der Definition der Sortierreihenfolge"
-#: locale/programs/locfile.c:512
+#: locale/programs/locfile.c:534
msgid "syntax error in collation definition"
msgstr "Syntaxfehler in der Definition der Sortierung"
-#: locale/programs/locfile.c:335
+#: locale/programs/locfile.c:357
msgid "syntax error in definition of LC_CTYPE category"
msgstr "Syntaxfehler in der Definition der »LC_CTYPE«-Kategorie"
-#: locale/programs/locfile.c:278
+#: locale/programs/locfile.c:300
msgid "syntax error in definition of new character class"
msgstr "Syntaxfehler in der Definition einer neuen Zeichenklasse"
-#: locale/programs/locfile.c:288
+#: locale/programs/locfile.c:310
msgid "syntax error in definition of new character map"
msgstr "Syntaxfehler in der Definition eines neuen Zeichensatzes"
-#: locale/programs/locfile.c:873
+#: locale/programs/locfile.c:895
msgid "syntax error in message locale definition"
-msgstr "Syntaxfehler in der Lokale-Definitionsdatei"
+msgstr "Syntaxfehler in der Lokale-Definitionsdatei, Abschnitt »message«"
-#: locale/programs/locfile.c:784
+#: locale/programs/locfile.c:806
msgid "syntax error in monetary locale definition"
-msgstr "Syntaxfehler in der Lokale-Definitionsdatei"
+msgstr "Syntaxfehler in der Lokale-Definitionsdatei, Abschnitt »monetary«"
-#: locale/programs/locfile.c:811
+#: locale/programs/locfile.c:833
msgid "syntax error in numeric locale definition"
-msgstr "Syntaxfehler in der Lokale-Definitionsdatei"
+msgstr "Syntaxfehler in der Lokale-Definitionsdatei, Abschnitt »numeric«"
-#: locale/programs/locfile.c:722
+#: locale/programs/locfile.c:744
msgid "syntax error in order specification"
-msgstr "Syntaxfehler in der Lokale-Definitionsdatei"
+msgstr "Syntaxfehler in der Lokale-Definitionsdatei, Abschnitt »order«"
#: locale/programs/charmap.c:195 locale/programs/charmap.c:211
#, c-format
msgid "syntax error in prolog: %s"
msgstr "Syntax-Fehler im Prolog: %s"
-#: locale/programs/locfile.c:849
+#: locale/programs/locfile.c:871
msgid "syntax error in time locale definition"
-msgstr "Syntaxfehler in der Lokale-Definition zur Zeit"
+msgstr "Syntaxfehler in der Lokale-Definition zur Zeit (Abschnitt »time«)"
-#: locale/programs/locfile.c:255
+#: locale/programs/locfile.c:277
msgid "syntax error: not inside a locale definition section"
-msgstr "Syntaxfehler: nicht in der in der Lokale-Definition"
+msgstr "Syntaxfehler: nicht in einem Abschnitt der Lokale-Definition"
-#: catgets/gencat.c:380 catgets/gencat.c:516 catgets/gencat.c:543
+#: catgets/gencat.c:381 catgets/gencat.c:517 catgets/gencat.c:544
msgid "this is the first definition"
msgstr "Dies ist die erste Definition"
-#: time/zic.c:1119
+#: time/zic.c:1117
msgid "time before zero"
msgstr "Zeit vor Null"
-#: time/zic.c:1127 time/zic.c:1959 time/zic.c:1978
+#: time/zic.c:1125 time/zic.c:1986 time/zic.c:2005
msgid "time overflow"
msgstr "Ãœberlauf der Zeit"
#: locale/programs/locales.h:72
msgid "too many character classes defined"
-msgstr "Zu viele Zeichenklasse definiert"
+msgstr "Zu viele Zeichenklassen definiert"
-#: time/zic.c:1788
+#: time/zic.c:1815
msgid "too many leap seconds"
msgstr "Zu viele Schaltsekunden"
-#: time/zic.c:1760
+#: time/zic.c:1787
msgid "too many local time types"
msgstr "Zu viele lokale Zeit-Typen"
-#: time/zic.c:1714
+#: time/zic.c:1741
msgid "too many transitions?!"
msgstr "Zu viele Übergänge?!"
-#: locale/programs/ld-collate.c:1623
+#: locale/programs/ld-collate.c:1626
msgid "too many weights"
-msgstr "Zu viele Sortier-Gewichte"
+msgstr "Zu viele Sortiergewichte"
-#: time/zic.c:2082
+#: time/zic.c:2109
msgid "too many, or too long, time zone abbreviations"
msgstr "Zu viele oder zu lange Abkürzungen für Zeitzonen"
msgid "trouble replying to prog %d\n"
msgstr "Schwierigkeiten bei der Antwort an das Programm %d\n"
-#: locale/programs/ld-collate.c:1383
+#: locale/programs/ld-collate.c:1386
msgid "two lines in a row containing `...' are not allowed"
-msgstr "Zwei aufeinanderfolgende Zeilen mit '...' sind nicht erlaubt"
+msgstr "Zwei aufeinanderfolgende Zeilen mit »...« sind nicht erlaubt"
-#: time/zic.c:1283
+#: time/zic.c:1281
msgid "typed single year"
msgstr "Ein einzelnes Jahr angegeben"
#: locale/programs/ld-messages.c:193 locale/programs/ld-messages.c:204
#: locale/programs/ld-messages.c:215 locale/programs/ld-messages.c:226
-#: locale/programs/ld-time.c:696
+#: locale/programs/ld-time.c:698
#, c-format
msgid "unknown character in field `%s' of category `%s'"
msgstr "Ungültiges Zeichen im Feld »%s« in der Kategorie »%s«"
-#: locale/programs/locfile.c:585
+#: locale/programs/locfile.c:607
msgid "unknown collation directive"
msgstr "unbekannte »collation«-Anweisung"
-#: catgets/gencat.c:477
+#: catgets/gencat.c:478
#, c-format
msgid "unknown directive `%s': line ignored"
msgstr "unbekannte Anweisung »%s«: Die Zeile wurde ignoriert"
-#: catgets/gencat.c:456
+#: catgets/gencat.c:457
#, c-format
msgid "unknown set `%s'"
msgstr "Unbekanntes Set »%s«"
-msgid "unknown signal"
-msgstr "Unbekanntes Signal"
-
-#: locale/programs/ld-collate.c:1367 locale/programs/ld-collate.c:1558
-#: locale/programs/ld-collate.c:1732
+#: locale/programs/ld-collate.c:1370 locale/programs/ld-collate.c:1561
+#: locale/programs/ld-collate.c:1735
#, c-format
msgid "unknown symbol `%.*s': line ignored"
msgstr "Unbekanntes Symbol »%.*s«: Die Zeile wurde ignoriert"
-#: time/zic.c:751
+#: time/zic.c:747
msgid "unruly zone"
msgstr "Zeitzone ohne Regeln"
-#: catgets/gencat.c:961
+#: catgets/gencat.c:962
msgid "unterminated message"
-msgstr "Zeichenkette wird nicht beendet"
+msgstr "Die Nachricht ist nicht abgeschlossen"
#: locale/programs/linereader.c:515 locale/programs/linereader.c:550
msgid "unterminated string"
msgid "unterminated symbolic name"
msgstr "Der symbolische Name wird nicht beendet"
-#: locale/programs/ld-collate.c:1685
+#: locale/programs/ld-collate.c:1688
msgid "unterminated weight name"
msgstr "Der Name des Sortier-Gewichtes wird nicht beendet"
msgid "upper limit in range is not smaller then lower limit"
msgstr "Das obere Ende des Intervalls ist nicht kleiner als das untere Ende"
-#: time/zic.c:2025
+#: time/zic.c:2052
msgid "use of 2/29 in non leap-year"
msgstr "Der 29. Februar wurde in einem nicht-Schaltjahr verwendet"
#: locale/programs/charmap.c:233
#, c-format
msgid "value for <%s> must lie between 1 and 4"
-msgstr "Der Wert für <%s> muß zwischen eins und vier liegen"
+msgstr "Der Wert für »<%s>« muß zwischen eins und vier liegen"
-#: locale/programs/ld-monetary.c:148 locale/programs/ld-numeric.c:89
+#: locale/programs/ld-monetary.c:149 locale/programs/ld-numeric.c:89
#, c-format
msgid "value for field `%s' in category `%s' must not be the empty string"
-msgstr "Der Eintrag für das Feld »%s« in der Kategorie »%s« darf nicht leer sein"
+msgstr ""
+"Der Eintrag für das Feld »%s« in der Kategorie »%s« darf nicht leer sein"
#: locale/programs/charmap.c:245
msgid "value of <mb_cur_max> must be greater than the value of <mb_cur_min>"
-msgstr "Der Wert von »<mb_cur_max>« muß größer als der Wert von »<mb_cur_min>« sein"
+msgstr ""
+"Der Wert von »<mb_cur_max>« muß größer als der Wert von »<mb_cur_min>« sein"
-#: locale/programs/ld-monetary.c:138
-msgid "value of field `int_curr_symbol' in category `LC_MONETARY' does not correspond to a valid name in ISO 4217"
-msgstr "Der Wert im Feld »int_surr_symbol« in der Kategorie »LC_MONETARY«gehört nicht zu einem gültigen Namen in ISO-4217"
+#: locale/programs/ld-monetary.c:139
+msgid ""
+"value of field `int_curr_symbol' in category `LC_MONETARY' does not "
+"correspond to a valid name in ISO 4217"
+msgstr ""
+"Der Wert im Feld »int_curr_symbol« in der Kategorie »LC_MONETARY« gehört "
+"nicht zu einem gültigen Namen in ISO-4217"
#: locale/programs/ld-monetary.c:133
-msgid "value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"
-msgstr "Der Wert im Feld »int_curr_symbol« in der Kategorie »LC_MONETARY« hat die falsche Länge"
+msgid ""
+"value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"
+msgstr ""
+"Der Wert im Feld »int_curr_symbol« in der Kategorie »LC_MONETARY« hat die "
+"falsche Länge"
-#: locale/programs/ld-monetary.c:370 locale/programs/ld-numeric.c:199
+#: locale/programs/ld-monetary.c:371 locale/programs/ld-numeric.c:199
#, c-format
msgid "values for field `%s' in category `%s' must be smaller than 127"
-msgstr "Der Wert für den Eintrag »%s« in der Kategorie »%s« muß kleiner als 127 sein."
+msgstr ""
+"Der Wert für den Eintrag »%s« in der Kategorie »%s« muß kleiner als 127 sein."
-#: locale/programs/ld-monetary.c:366
+#: locale/programs/ld-monetary.c:367
#, c-format
msgid "values for field `%s' in category `%s' must not be zero"
msgstr "Der Eintrag im Feld »%s« in der Kategorie »%s« darf nicht Null sein"
msgid "while opening UTMP file"
msgstr "beim Öffnen der UTMP-Datei"
-#: catgets/gencat.c:988
+#: catgets/gencat.c:989
msgid "while opening old catalog file"
msgstr "beim Öffnen der alten Katalog-Datei"
-#: db/makedb.c:353
+#: db/makedb.c:354
msgid "while reading database"
msgstr "beim Lesen der Datenbank"
-#: db/makedb.c:315
+#: db/makedb.c:316
msgid "while writing data base file"
-msgstr "beim Schreiben der Datenbak-Datei"
+msgstr "beim Schreiben der Datenbank-Datei"
#: db/makedb.c:142
msgid "wrong number of arguments"
msgstr "Falsche Anzahl an Argumenten"
-#: time/zic.c:1077
+#: time/zic.c:1075
msgid "wrong number of fields on Leap line"
msgstr "Falsche Anzahl an Feldern in der Leap-Zeile"
-#: time/zic.c:1168
+#: time/zic.c:1166
msgid "wrong number of fields on Link line"
msgstr "Falsche Anzahl der Felder in der Link-Zeile"
-#: time/zic.c:911
+#: time/zic.c:909
msgid "wrong number of fields on Rule line"
msgstr "Falsche Anzahl der Felder in der Rule-Zeile"
-#: time/zic.c:981
+#: time/zic.c:979
msgid "wrong number of fields on Zone continuation line"
msgstr "Falsche Anzahl der Felder in der Zeitzonen-Fortsetzungszeile"
-#: time/zic.c:939
+#: time/zic.c:937
msgid "wrong number of fields on Zone line"
msgstr "Falsche Anzahl an Feldern in der Zone-Zeile"
-#: nis/ypclnt.c:570
-msgid "yp_all: clnttcp_create failed"
-msgstr "yp_all: »clnttcp_create« fehlgeschlagen"
-
-#: nis/ypclnt.c:772
+#: nis/ypclnt.c:811
msgid "yp_update: cannot convert host to netname\n"
msgstr "yp_update: Kann den Rechnername nicht in einen Netzname umwandeln\n"
-#: nis/ypclnt.c:784
+#: nis/ypclnt.c:823
msgid "yp_update: cannot get server address\n"
-msgstr "yp_update: Kann die Adresse des Servss nicht finden\n"
-
-#~ msgid "variable-length array declaration expected"
-#~ msgstr "Deklaration einer variabel langen Tabelle erwartet"
-
-#~ msgid "couldn't do tcp_create\n"
-#~ msgstr "Kann keinen RPC-Server erzeugen\n"
-
-#~ msgid " %s [-s udp|tcp]* [-o outfile] [infile]\n"
-#~ msgstr " %s [-s udp|tcp]* [-o Ausgabedatei] [Eingabedatei]\n"
-
-#~ msgid "%s: output would overwrite %s\n"
-#~ msgstr "%s: Die Ausgabe würde %s überschreiben\n"
-
-#~ msgid "illegal character in file: "
-#~ msgstr "Nicht erlaubtes Zeichen in der Datei: "
-
-#~ msgid "too many files!\n"
-#~ msgstr "Zu viele Dateien!\n"
-
-#~ msgid "voids allowed only inside union and program definitions"
-#~ msgstr "`void' ist nur innerhalb von `union'- oder `program'-Definitionen erlaubt"
-
-#~ msgid "rcmd: select (setting up stderr): %s\n"
-#~ msgstr "rcmd: Select (Einrichten der Standardfehlerausgabe): %s\n"
-
-#~ msgid "%s: unable to open "
-#~ msgstr "%s: kann nicht geöffnet werden "
-
-#~ msgid "character `%c' not defined while needed as default value"
-#~ msgstr "Das Zeichen `%s' ist nicht definiert, wird aber als Vorgabewert benötigt"
-
-#~ msgid "expected type specifier"
-#~ msgstr "Type-Bezeichner erwartet"
-
-#~ msgid "rcmd: write (setting up stderr): %s\n"
-#~ msgstr "rcmd: Write (Einrichten der Standardfehlerausgabe): %s\n"
-
-#~ msgid "expected '%s', '%s' or '%s'"
-#~ msgstr "'%s', '%s' oder '%s' erwartet"
-
-#~ msgid "usage: %s infile\n"
-#~ msgstr "Aufruf: %s Eingabedatei\n"
-
-#~ msgid "preprocessor error"
-#~ msgstr "Fehler des Präprozessors"
-
-#~ msgid "array declaration expected"
-#~ msgstr "Tabellendeklaration erwartet"
-
-#~ msgid "socket: protocol failure in circuit setup.\n"
-#~ msgstr "Socket: Protokollfehler im Kreislauf-Setup.\n"
-
-#~ msgid "couldn't do udp_create\n"
-#~ msgstr "Kann keinen RPC-Server erzeugen\n"
-
-#~ msgid "collation symbol `.*s' appears more than once: ignore line"
-#~ msgstr "Das 'collation'-Symbol `.*s' ist mehr als einmal angegeben: Die Zeile wird ignorier"
-
-#~ msgid "unterminated string constant"
-#~ msgstr "Zeichenkette wird nicht beendet"
-
-#~ msgid "expected '%s'"
-#~ msgstr "'%s' erwartet"
-
-#~ msgid "illegal result type"
-#~ msgstr "Nicht erlaubter Ergebnistyp"
-
-#~ msgid "no array-of-pointer declarations -- use typedef"
-#~ msgstr "Kein Definition einer Tabelle von \"Zeigern\" -- Verwenden Sie \"typedef\""
-
-#~ msgid "definition keyword expected"
-#~ msgstr "Keyword-Definition erwartet"
-
-#~ msgid "constant or identifier expected"
-#~ msgstr "Konstante oder Bezeichner erwartet"
-
-#~ msgid " %s [-c | -h | -l | -m] [-o outfile] [infile]\n"
-#~ msgstr " %s [-c | -h | -l | -m] [-o Ausgabedatei] [Eingabedatei]\n"
-
-#~ msgid "%s, line %d: "
-#~ msgstr "%s, Zeile %d: "
-
-#~ msgid ""
-#~ "Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n"
-#~ " %s [OPTION]... [OUTPUT-FILE [INPUT-FILE]...]\n"
-#~ "Mandatory arguments to long options are mandatory for short options too.\n"
-#~ " -H, --header create C header file containing symbol definitions\n"
-#~ " -h, --help display this help and exit\n"
-#~ " --new do not use existing catalog, force new output file\n"
-#~ " -o, --output=NAME write output to file NAME\n"
-#~ " -V, --version output version information and exit\n"
-#~ "If INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n"
-#~ "is -, output is written to standard output.\n"
-#~ "Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
-#~ msgstr ""
-#~ "Syntax: %s [Option]... -o Ausgabe-Datei [Eingabe-Datei]...\n"
-#~ " %s [Option]... [Ausgabe-Datei [Eingabe-Datei]...]\n"
-#~ "\n"
-#~ "Notwendige Argumente zu langen Optionen sind auch bei kurzen erforderlich.\n"
-#~ "\n"
-#~ " -H, --header erzeuge C-Header-Datein mit Symbol-Definitionen\n"
-#~ " -h, --help zeige diese Hilfe an\n"
-#~ " --new verwende keinen bestehendn Katalog, sondern erzeuge \n"
-#~ " einen neuen\n"
-#~ " -o, --output=Name Die Ausgabe-Datei heißt 'Name'\n"
-#~ " -V, --version gebe die Versionsnummer aus\n"
-#~ "\n"
-#~ "Wenn '-' als Eingabe-Datei angegeben wird, dann wird von der Standard-Eingabe\n"
-#~ "gelesen. Wenn '-' als Ausgabe-Datei angegeben wird, dann wird auf die\n"
-#~ "Standard-Ausgabe geschrieben.\n"
-#~ "\n"
-#~ "Fehler bitte an <bug-glibc@prep.ai.mit.edu> melden.\n"
+msgstr "yp_update: Kann die Adresse des Servers nicht finden\n"
-#~ msgid "Not a data message"
-#~ msgstr "Keine Nachricht mit Daten"
/* Names of the signals. This variable exists only for compatibility.
Use `strsignal' instead (see <string.h>). */
-extern __const char *__const _sys_siglist[NSIG];
-extern __const char *__const sys_siglist[NSIG];
+extern __const char *__const _sys_siglist[_NSIG];
+extern __const char *__const sys_siglist[_NSIG];
/* Structure passed to `sigvec'. */
struct sigvec
printf_size (FILE *fp, const struct printf_info *info, const void *const *args)
{
/* Units for the both formats. */
- static const char units[2][8] =
+#define BINARY_UNITS " kmgtpezy"
+#define DECIMAL_UNITS " KMGTPEZY"
+ static const char units[2][sizeof (BINARY_UNITS)] =
{
- " kmgtpezy", /* For binary format. */
- " KMGTPEZY" /* For decimal format. */
+ BINARY_UNITS, /* For binary format. */
+ DECIMAL_UNITS /* For decimal format. */
};
const char *tag = units[isupper (info->spec) != 0];
int divisor = isupper (info->spec) ? 1000 : 1024;
#include <stdlib.h>
#include <string.h>
+#include <limits.h>
int
__lcong48_r (param, buffer)
if (buf == NULL || buf->rand_type < TYPE_0 || buf->rand_type > TYPE_4)
return -1;
- buf->state[0] = x;
+ /* We must make sure the seed is not 0. Take arbitrarily 1 in this case. */
+ buf->state[0] = x ? x : 1;
if (buf->rand_type != TYPE_0)
{
long int i;
#include <stdlib.h>
#include <string.h>
+#include <limits.h>
int
__seed48_r (seed16v, buffer)
#ifdef _GNU_SOURCE
# define __sigisemptyset(set) (*(set) == (__sigset_t) 0)
# define __sigandset(dest, left, right) \
- ((*(set) = (*(left) & *(right))), 0)
+ ((*(dest) = (*(left) & *(right))), 0)
# define __sigorset(dest, left, right) \
- ((*(set) = (*(left) | *(right))), 0)
+ ((*(dest) = (*(left) | *(right))), 0)
#endif
/* These functions needn't check for a bogus signal number -- error
elf_machine_load_address (void)
{
Elf32_Addr addr;
- asm (" call here\n"
- "here: popl %0\n"
- " subl $here, %0"
+ asm (" call .Lhere\n"
+ ".Lhere: popl %0\n"
+ " subl $.Lhere, %0"
: "=r" (addr));
return addr;
}
/* The `subl' insn above will contain an R_386_32 relocation entry
- intended to insert the run-time address of the label `here'.
+ intended to insert the run-time address of the label `.Lhere'.
This will be the first relocation in the text of the dynamic linker;
we skip it to avoid trying to modify read-only text in this early stage. */
#define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info) \
ASM_TYPE_DIRECTIVE(limit,@object)
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)
- ASM_TYPE_DIRECTIVE(nan,@object)
-nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
- ASM_SIZE_DIRECTIVE(nan)
#ifdef PIC
#define MO(op) op##@GOTOFF(%ecx)
ret
.align ALIGNARG(4)
-14: fldl MO(nan)
- faddl MO(zero) // raise invalid exception
+14: fldl MO(infinity)
+ fmull MO(zero) // raise invalid exception
ret
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(limit,@object)
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)
- ASM_TYPE_DIRECTIVE(nan,@object)
-nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
- ASM_SIZE_DIRECTIVE(nan)
#ifdef PIC
#define MO(op) op##@GOTOFF(%ecx)
ret
.align ALIGNARG(4)
-14: fldl MO(nan)
- faddl MO(zero) // raise invalid exception
+14: fldl MO(infinity)
+ fmull MO(zero) // raise invalid exception
ret
.align ALIGNARG(4)
ASM_TYPE_DIRECTIVE(limit,@object)
limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit)
- ASM_TYPE_DIRECTIVE(nan,@object)
-nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
- ASM_SIZE_DIRECTIVE(nan)
#ifdef PIC
#define MO(op) op##@GOTOFF(%ecx)
ret
.align ALIGNARG(4)
-14: fldl MO(nan)
- faddl MO(zero) // raise invalid exception
+14: fldl MO(infinity)
+ fmull MO(zero) // raise invalid exception
ret
.align ALIGNARG(4)
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
.double 0.0
- .double 0.0
+zero: .double 0.0
+infinity:
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
.double 0.0
Check your FPU manual for more information. */
andb $0x01, %ah
cmpb $0x01, %ah
- je 2f
+ je 20f
/* We have finite numbers in the real and imaginary part. Do
the real work now. */
1: fxam /* y : x */
fnstsw
movb %ah, %dl
- andb $0x01, %ah /* See above why 0x01 is usable here. */
- cmpb $0x01, %ah
- je 3f
+ testb $0x01, %ah /* See above why 0x01 is usable here. */
+ jne 3f
/* The real part is +-Inf and the imaginary part is finite. */
.align ALIGNARG(4)
3: fstp %st(0)
fstp %st(0) /* <empty> */
- movl %edx, %eax
+ andb $0x45, %ah
+ andb $0x47, %dh
+ xorb %dh, %ah
+ jnz 30f
+ fldl MO(infinity) /* Raise invalid exception. */
+ fmull MO(zero)
+ fstp %st(0)
+30: movl %edx, %eax
shrl $5, %edx
shll $4, %eax
andl $16, %edx
/* The real part is NaN. */
.align ALIGNARG(4)
+20: fldl MO(infinity) /* Raise invalid exception. */
+ fmull MO(zero)
+ fstp %st(0)
2: fstp %st(0)
fstp %st(0)
movl 4(%esp), %eax /* Pointer to memory for result. */
.byte 0, 0, 0x80, 0x7f
.byte 0, 0, 0xc0, 0x7f
.float 0.0
- .float 0.0
+zero: .float 0.0
+infinity:
.byte 0, 0, 0x80, 0x7f
.byte 0, 0, 0xc0, 0x7f
.float 0.0
Check your FPU manual for more information. */
andb $0x01, %ah
cmpb $0x01, %ah
- je 2f
+ je 20f
/* We have finite numbers in the real and imaginary part. Do
the real work now. */
1: fxam /* y : x */
fnstsw
movb %ah, %dl
- andb $0x01, %ah /* See above why 0x01 is usable here. */
- cmpb $0x01, %ah
- je 3f
+ testb $0x01, %ah /* See above why 0x01 is usable here. */
+ jne 3f
/* The real part is +-Inf and the imaginary part is finite. */
.align ALIGNARG(4)
3: fstp %st(0)
fstp %st(0) /* <empty> */
- movl %edx, %eax
+ andb $0x45, %ah
+ andb $0x47, %dh
+ xorb %dh, %ah
+ jnz 30f
+ flds MO(infinity) /* Raise invalid exception. */
+ fmuls MO(zero)
+ fstp %st(0)
+30: movl %edx, %eax
shrl $6, %edx
shll $3, %eax
andl $8, %edx
/* The real part is NaN. */
.align ALIGNARG(4)
+20: flds MO(infinity) /* Raise invalid exception. */
+ fmuls MO(zero)
+ fstp %st(0)
2: fstp %st(0)
fstp %st(0)
movl MO(huge_nan_null_null+4), %eax
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
.double 0.0
- .double 0.0
+zero: .double 0.0
+infinity:
.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
.double 0.0
Check your FPU manual for more information. */
andb $0x01, %ah
cmpb $0x01, %ah
- je 2f
+ je 20f
/* We have finite numbers in the real and imaginary part. Do
the real work now. */
1: fxam /* y : x */
fnstsw
movb %ah, %dl
- andb $0x01, %ah /* See above why 0x01 is usable here. */
- cmpb $0x01, %ah
- je 3f
+ testb $0x01, %ah /* See above why 0x01 is usable here. */
+ jne 3f
/* The real part is +-Inf and the imaginary part is finite. */
.align ALIGNARG(4)
3: fstp %st(0)
fstp %st(0) /* <empty> */
- movl %edx, %eax
+ andb $0x45, %ah
+ andb $0x47, %dh
+ xorb %dh, %ah
+ jnz 30f
+ fldl MO(infinity) /* Raise invalid exception. */
+ fmull MO(zero)
+ fstp %st(0)
+30: movl %edx, %eax
shrl $5, %edx
shll $4, %eax
andl $16, %edx
/* The real part is NaN. */
.align ALIGNARG(4)
+20: fldl MO(infinity) /* Raise invalid exception. */
+ fmull MO(zero)
+ fstp %st(0)
2: fstp %st(0)
fstp %st(0)
movl 4(%esp), %eax /* Pointer to memory for result. */
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
{
__real__ res = __nan ("");
__imag__ res = 0.0;
+
+#ifdef FE_INVALID
+ if (__isinf (__real__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
else if (__isinf (__imag__ x))
{
__real__ res = HUGE_VAL;
__imag__ res = __nan ("");
+
+#ifdef FE_INVALID
+ if (__isinf (__real__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
else
{
__real__ res = __nan ("");
__imag__ res = __nan ("");
+
+#ifdef FE_INVALID
+ if (isfinite (__imag__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
{
__real__ res = __nanf ("");
__imag__ res = 0.0;
+
+#ifdef FE_INVALID
+ if (__isinff (__real__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
else if (__isinff (__imag__ x))
{
__real__ res = HUGE_VALF;
__imag__ res = __nanf ("");
+
+#ifdef FE_INVALID
+ if (__isinff (__real__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
else
{
__real__ res = __nanf ("");
__imag__ res = __nanf ("");
+
+#ifdef FE_INVALID
+ if (isfinite (__imag__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
#include "math_private.h"
if (icls >= FP_ZERO)
{
/* Imaginary part is finite. */
+ double sinh_val = __ieee754_sinh (__real__ x);
double cosh_val = __ieee754_cosh (__real__ x);
double sinix, cosix;
__sincos (__imag__ x, &sinix, &cosix);
__real__ retval = cosh_val * cosix;
- __imag__ retval = cosh_val * sinix;
+ __imag__ retval = sinh_val * sinix;
}
else
{
__imag__ retval = __real__ x == 0.0 ? 0.0 : __nan ("");
__real__ retval = __nan ("") + __nan ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else if (rcls == FP_INFINITE)
/* The addition raises the invalid exception. */
__real__ retval = HUGE_VAL;
__imag__ retval = __nan ("") + __nan ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
#include "math_private.h"
if (icls >= FP_ZERO)
{
/* Imaginary part is finite. */
+ float sinh_val = __ieee754_sinhf (__real__ x);
float cosh_val = __ieee754_coshf (__real__ x);
float sinix, cosix;
__sincosf (__imag__ x, &sinix, &cosix);
__real__ retval = cosh_val * cosix;
- __imag__ retval = cosh_val * sinix;
+ __imag__ retval = sinh_val * sinix;
}
else
{
__imag__ retval = __real__ x == 0.0 ? 0.0 : __nanf ("");
- __real__ retval = __nanf ("") + __nanf ("");
+ __real__ retval = __nanf ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else if (rcls == FP_INFINITE)
/* The addition raises the invalid exception. */
__real__ retval = HUGE_VALF;
__imag__ retval = __nanf ("") + __nanf ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
#include "math_private.h"
if (icls >= FP_ZERO)
{
/* Imaginary part is finite. */
+ long double sinh_val = __ieee754_sinhl (__real__ x);
long double cosh_val = __ieee754_coshl (__real__ x);
long double sinix, cosix;
__sincosl (__imag__ x, &sinix, &cosix);
__real__ retval = cosh_val * cosix;
- __imag__ retval = cosh_val * sinix;
+ __imag__ retval = sinh_val * sinix;
}
else
{
__imag__ retval = __real__ x == 0.0 ? 0.0 : __nanl ("");
__real__ retval = __nanl ("") + __nanl ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else if (rcls == FP_INFINITE)
/* The addition raises the invalid exception. */
__real__ retval = HUGE_VALL;
__imag__ retval = __nanl ("") + __nanl ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
{
__real__ res = __nanl ("");
__imag__ res = 0.0;
+
+#ifdef FE_INVALID
+ if (__isinfl (__real__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
else if (__isinfl (__imag__ x))
{
__real__ res = HUGE_VALL;
__imag__ res = __nanl ("");
+
+#ifdef FE_INVALID
+ if (__isinfl (__real__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
else
{
__real__ res = __nanl ("");
__imag__ res = __nanl ("");
+
+#ifdef FE_INVALID
+ if (isfinite (__imag__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
#include "math_private.h"
is not +-inf the result is NaN + iNaN. */
__real__ retval = __nanf ("");
__imag__ retval = __nanf ("");
+
+#ifdef FE_INVALID
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else if (rcls == FP_INFINITE)
{
__real__ retval = HUGE_VALF;
__imag__ retval = __nanf ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
else
{
/* If the real part is NaN the result is NaN + iNaN. */
__real__ retval = __nanf ("");
__imag__ retval = __nanf ("");
+
+#ifdef FE_INVALID
+ if (rcls != FP_NAN || icls != FP_NAN)
+ feraiseexcept (FE_INVALID);
+#endif
}
return retval;
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
#include "math_private.h"
is not +-inf the result is NaN + iNaN. */
__real__ retval = __nanl ("");
__imag__ retval = __nanl ("");
+
+#ifdef FE_INVALID
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else if (rcls == FP_INFINITE)
{
__real__ retval = HUGE_VALL;
__imag__ retval = __nanl ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
else
{
/* If the real part is NaN the result is NaN + iNaN. */
__real__ retval = __nanl ("");
__imag__ retval = __nanl ("");
+
+#ifdef FE_INVALID
+ if (rcls != FP_NAN || icls != FP_NAN)
+ feraiseexcept (FE_INVALID);
+#endif
}
return retval;
{
__complex__ double res;
- if (!finite (__real__ x) || !finite (__imag__ x))
+ if (!isfinite (__real__ x) || !isfinite (__imag__ x))
{
__real__ res = INFINITY;
__imag__ res = __copysign (0.0, __imag__ x);
{
__complex__ float res;
- if (!finite (__real__ x) || !finite (__imag__ x))
+ if (!isfinite (__real__ x) || !isfinite (__imag__ x))
{
__real__ res = INFINITY;
__imag__ res = __copysignf (0.0, __imag__ x);
{
__complex__ long double res;
- if (!finite (__real__ x) || !finite (__imag__ x))
+ if (!isfinite (__real__ x) || !isfinite (__imag__ x))
{
__real__ res = INFINITY;
__imag__ res = __copysignl (0.0, __imag__ x);
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
+#include "math_private.h"
+
__complex__ double
__csin (__complex__ double x)
{
- __complex__ double res;
+ __complex__ double retval;
+ int negate = signbit (__real__ x);
+ int rcls = fpclassify (__real__ x);
+ int icls = fpclassify (__imag__ x);
+
+ __real__ x = fabs (__real__ x);
- if (!isfinite (__real__ x) || isnan (__imag__ x))
+ if (icls >= FP_ZERO)
{
- if (__real__ x == 0.0 || __imag__ x == 0.0)
- {
- __real__ res = __nan ("");
- __imag__ res = 0.0;
- }
- else if (__isinf (__imag__ x))
+ /* Imaginary part is finite. */
+ if (rcls >= FP_ZERO)
{
- __real__ res = __nan ("");
- __imag__ res = __imag__ x;
+ /* Real part is finite. */
+ double sinh_val = __ieee754_sinh (__imag__ x);
+ double cosh_val = __ieee754_cosh (__imag__ x);
+ double sinix, cosix;
+
+ __sincos (__real__ x, &sinix, &cosix);
+
+ __real__ retval = cosh_val * sinix;
+ __imag__ retval = sinh_val * cosix;
+
+ if (negate)
+ __real__ retval = -__real__ retval;
}
else
{
- __real__ res = __nan ("");
- __imag__ res = __nan ("");
+ if (icls == FP_ZERO)
+ {
+ /* Imaginary part is 0.0. */
+ __real__ retval = __nan ("");
+ __imag__ retval = __imag__ x;
+
+#ifdef FE_INVALID
+ if (rcls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
+ }
+ else
+ {
+ __real__ retval = __nan ("");
+ __imag__ retval = __nan ("");
+
+#ifdef FE_INVALID
+ feraiseexcept (FE_INVALID);
+#endif
+ }
}
}
- else
+ else if (icls == FP_INFINITE)
{
- __complex__ double y;
+ /* Imaginary part is infinite. */
+ if (rcls == FP_ZERO)
+ {
+ /* Real part is 0.0. */
+ __real__ retval = __copysign (0.0, negate ? -1.0 : 1.0);
+ __imag__ retval = __imag__ x;
+ }
+ else if (rcls > FP_ZERO)
+ {
+ /* Real part is finite. */
+ double sinix, cosix;
+
+ __sincos (__real__ x, &sinix, &cosix);
- __real__ y = -__imag__ x;
- __imag__ y = __real__ x;
+ __real__ retval = __copysign (HUGE_VAL, sinix);
+ __imag__ retval = __copysign (HUGE_VAL, cosix);
- y = __csinh (y);
+ if (negate)
+ __real__ retval = -__real__ retval;
+ if (signbit (__imag__ x))
+ __imag__ retval = -__imag__ retval;
+ }
+ else
+ {
+ /* The addition raises the invalid exception. */
+ __real__ retval = __nan ("");
+ __imag__ retval = HUGE_VAL;
- __real__ res = __imag__ y;
- __imag__ res = -__real__ y;
+#ifdef FE_INVALID
+ if (rcls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
+ }
+ }
+ else
+ {
+ if (rcls == FP_ZERO)
+ __real__ retval = __copysign (0.0, negate ? -1.0 : 1.0);
+ else
+ __real__ retval = __nan ("");
+ __imag__ retval = __nan ("");
}
- return res;
+ return retval;
}
weak_alias (__csin, csin)
#ifdef NO_LONG_DOUBLE
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
+#include "math_private.h"
+
__complex__ float
__csinf (__complex__ float x)
{
- __complex__ float res;
+ __complex__ float retval;
+ int negate = signbit (__real__ x);
+ int rcls = fpclassify (__real__ x);
+ int icls = fpclassify (__imag__ x);
+
+ __real__ x = fabsf (__real__ x);
- if (!isfinite (__real__ x) || isnan (__imag__ x))
+ if (icls >= FP_ZERO)
{
- if (__real__ x == 0.0 || __imag__ x == 0.0)
- {
- __real__ res = __nanf ("");
- __imag__ res = 0.0;
- }
- else if (__isinff (__imag__ x))
+ /* Imaginary part is finite. */
+ if (rcls >= FP_ZERO)
{
- __real__ res = __nanf ("");
- __imag__ res = __imag__ x;
+ /* Real part is finite. */
+ float sinh_val = __ieee754_sinhf (__imag__ x);
+ float cosh_val = __ieee754_coshf (__imag__ x);
+ float sinix, cosix;
+
+ __sincosf (__real__ x, &sinix, &cosix);
+
+ __real__ retval = cosh_val * sinix;
+ __imag__ retval = sinh_val * cosix;
+
+ if (negate)
+ __real__ retval = -__real__ retval;
}
else
{
- __real__ res = __nanf ("");
- __imag__ res = __nanf ("");
+ if (icls == FP_ZERO)
+ {
+ /* Imaginary part is 0.0. */
+ __real__ retval = __nanf ("");
+ __imag__ retval = __imag__ x;
+
+#ifdef FE_INVALID
+ if (rcls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
+ }
+ else
+ {
+ __real__ retval = __nanf ("");
+ __imag__ retval = __nanf ("");
+
+#ifdef FE_INVALID
+ feraiseexcept (FE_INVALID);
+#endif
+ }
}
}
- else
+ else if (icls == FP_INFINITE)
{
- __complex__ float y;
+ /* Imaginary part is infinite. */
+ if (rcls == FP_ZERO)
+ {
+ /* Real part is 0.0. */
+ __real__ retval = __copysignf (0.0, negate ? -1.0 : 1.0);
+ __imag__ retval = __imag__ x;
+ }
+ else if (rcls > FP_ZERO)
+ {
+ /* Real part is finite. */
+ float sinix, cosix;
+
+ __sincosf (__real__ x, &sinix, &cosix);
- __real__ y = -__imag__ x;
- __imag__ y = __real__ x;
+ __real__ retval = __copysignf (HUGE_VALF, sinix);
+ __imag__ retval = __copysignf (HUGE_VALF, cosix);
- y = __csinhf (y);
+ if (negate)
+ __real__ retval = -__real__ retval;
+ if (signbit (__imag__ x))
+ __imag__ retval = -__imag__ retval;
+ }
+ else
+ {
+ /* The addition raises the invalid exception. */
+ __real__ retval = __nanf ("");
+ __imag__ retval = HUGE_VALF;
- __real__ res = __imag__ y;
- __imag__ res = -__real__ y;
+#ifdef FE_INVALID
+ if (rcls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
+ }
+ }
+ else
+ {
+ if (rcls == FP_ZERO)
+ __real__ retval = __copysignf (0.0, negate ? -1.0 : 1.0);
+ else
+ __real__ retval = __nanf ("");
+ __imag__ retval = __nanf ("");
}
- return res;
+ return retval;
}
weak_alias (__csinf, csinf)
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
#include "math_private.h"
{
/* Imaginary part is finite. */
double sinh_val = __ieee754_sinh (__real__ x);
+ double cosh_val = __ieee754_cosh (__real__ x);
double sinix, cosix;
__sincos (__imag__ x, &sinix, &cosix);
__real__ retval = sinh_val * cosix;
- __imag__ retval = sinh_val * sinix;
+ __imag__ retval = cosh_val * sinix;
if (negate)
__real__ retval = -__real__ retval;
/* Real part is 0.0. */
__real__ retval = __copysign (0.0, negate ? -1.0 : 1.0);
__imag__ retval = __nan ("") + __nan ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
else
{
__real__ retval = __nan ("");
__imag__ retval = __nan ("");
+
+#ifdef FE_INVALID
+ feraiseexcept (FE_INVALID);
+#endif
}
}
}
/* The addition raises the invalid exception. */
__real__ retval = HUGE_VAL;
__imag__ retval = __nan ("") + __nan ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
#include "math_private.h"
{
/* Imaginary part is finite. */
float sinh_val = __ieee754_sinhf (__real__ x);
+ float cosh_val = __ieee754_coshf (__real__ x);
float sinix, cosix;
__sincosf (__imag__ x, &sinix, &cosix);
__real__ retval = sinh_val * cosix;
- __imag__ retval = sinh_val * sinix;
+ __imag__ retval = cosh_val * sinix;
if (negate)
__real__ retval = -__real__ retval;
/* Real part is 0.0. */
__real__ retval = __copysignf (0.0, negate ? -1.0 : 1.0);
__imag__ retval = __nanf ("") + __nanf ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
else
{
__real__ retval = __nanf ("");
__imag__ retval = __nanf ("");
+
+#ifdef FE_INVALID
+ feraiseexcept (FE_INVALID);
+#endif
}
}
}
/* The addition raises the invalid exception. */
__real__ retval = HUGE_VALF;
__imag__ retval = __nanf ("") + __nanf ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
{
/* Imaginary part is finite. */
long double sinh_val = __ieee754_sinhl (__real__ x);
+ long double cosh_val = __ieee754_coshl (__real__ x);
long double sinix, cosix;
__sincosl (__imag__ x, &sinix, &cosix);
__real__ retval = sinh_val * cosix;
- __imag__ retval = sinh_val * sinix;
+ __imag__ retval = cosh_val * sinix;
if (negate)
__real__ retval = -__real__ retval;
/* Real part is 0.0. */
__real__ retval = __copysignl (0.0, negate ? -1.0 : 1.0);
__imag__ retval = __nanl ("") + __nanl ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
else
{
__real__ retval = __nanl ("");
__imag__ retval = __nanl ("");
+
+#ifdef FE_INVALID
+ feraiseexcept (FE_INVALID);
+#endif
}
}
}
/* The addition raises the invalid exception. */
__real__ retval = HUGE_VALL;
__imag__ retval = __nanl ("") + __nanl ("");
+
+#ifdef FE_INVALID
+ if (icls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
+#include "math_private.h"
+
__complex__ long double
__csinl (__complex__ long double x)
{
- __complex__ long double res;
+ __complex__ long double retval;
+ int negate = signbit (__real__ x);
+ int rcls = fpclassify (__real__ x);
+ int icls = fpclassify (__imag__ x);
+
+ __real__ x = fabsl (__real__ x);
- if (!isfinite (__real__ x) || isnan (__imag__ x))
+ if (icls >= FP_ZERO)
{
- if (__real__ x == 0.0 || __imag__ x == 0.0)
- {
- __real__ res = __nanl ("");
- __imag__ res = 0.0;
- }
- else if (__isinfl (__imag__ x))
+ /* Imaginary part is finite. */
+ if (rcls >= FP_ZERO)
{
- __real__ res = __nanl ("");
- __imag__ res = __imag__ x;
+ /* Real part is finite. */
+ long double sinh_val = __ieee754_sinhl (__imag__ x);
+ long double cosh_val = __ieee754_coshl (__imag__ x);
+ long double sinix, cosix;
+
+ __sincosl (__real__ x, &sinix, &cosix);
+
+ __real__ retval = cosh_val * sinix;
+ __imag__ retval = sinh_val * cosix;
+
+ if (negate)
+ __real__ retval = -__real__ retval;
}
else
{
- __real__ res = __nanl ("");
- __imag__ res = __nanl ("");
+ if (icls == FP_ZERO)
+ {
+ /* Imaginary part is 0.0. */
+ __real__ retval = __nanl ("");
+ __imag__ retval = __imag__ x;
+
+#ifdef FE_INVALID
+ if (rcls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
+ }
+ else
+ {
+ __real__ retval = __nanl ("");
+ __imag__ retval = __nanl ("");
+
+#ifdef FE_INVALID
+ feraiseexcept (FE_INVALID);
+#endif
+ }
}
}
- else
+ else if (icls == FP_INFINITE)
{
- __complex__ long double y;
+ /* Imaginary part is infinite. */
+ if (rcls == FP_ZERO)
+ {
+ /* Real part is 0.0. */
+ __real__ retval = __copysignl (0.0, negate ? -1.0 : 1.0);
+ __imag__ retval = __imag__ x;
+ }
+ else if (rcls > FP_ZERO)
+ {
+ /* Real part is finite. */
+ long double sinix, cosix;
+
+ __sincosl (__real__ x, &sinix, &cosix);
- __real__ y = -__imag__ x;
- __imag__ y = __real__ x;
+ __real__ retval = __copysignl (HUGE_VALL, sinix);
+ __imag__ retval = __copysignl (HUGE_VALL, cosix);
- y = __csinhl (y);
+ if (negate)
+ __real__ retval = -__real__ retval;
+ if (signbit (__imag__ x))
+ __imag__ retval = -__imag__ retval;
+ }
+ else
+ {
+ /* The addition raises the invalid exception. */
+ __real__ retval = __nanl ("");
+ __imag__ retval = HUGE_VALL;
- __real__ res = __imag__ y;
- __imag__ res = -__real__ y;
+#ifdef FE_INVALID
+ if (rcls == FP_INFINITE)
+ feraiseexcept (FE_INVALID);
+#endif
+ }
+ }
+ else
+ {
+ if (rcls == FP_ZERO)
+ __real__ retval = __copysignl (0.0, negate ? -1.0 : 1.0);
+ else
+ __real__ retval = __nanl ("");
+ __imag__ retval = __nanl ("");
}
- return res;
+ return retval;
}
weak_alias (__csinl, csinl)
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
#include "math_private.h"
{
__real__ res = __nan ("");
__imag__ res = __nan ("");
+
+#ifdef FE_INVALID
+ if (__isinf (__imag__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
#include "math_private.h"
{
__real__ res = __nanf ("");
__imag__ res = __nanf ("");
+
+#ifdef FE_INVALID
+ if (__isinff (__imag__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
Boston, MA 02111-1307, USA. */
#include <complex.h>
+#include <fenv.h>
#include <math.h>
#include "math_private.h"
{
__real__ res = __nanl ("");
__imag__ res = __nanl ("");
+
+#ifdef FE_INVALID
+ if (__isinfl (__imag__ x))
+ feraiseexcept (FE_INVALID);
+#endif
}
}
else
--- /dev/null
+#error must define an ABI tag for this port
+
+#define ABI_TAG 0xff123abc
--- /dev/null
+/* Define the GNU ABI tag for the Linux kernel we need.
+ The is a 4-byte quantity in native byte order:
+ the high byte is 0 to indicate Linux;
+ the low three bytes are the LINUX_VERSION_CODE for the earliest
+ compatible Linux kernel. */
+
+#define ABI_LINUX_TAG 0
+
+#define ABI_LINUX_MAJOR 2
+#define ABI_LINUX_MINOR 0
+#define ABI_LINUX_PATCH 0
+
+#define ABI_TAG ((ABI_LINUX_TAG << 24) | \
+ (ABI_LINUX_MAJOR << 16) | \
+ (ABI_LINUX_MINOR << 8) | \
+ (ABI_LINUX_PATCH << 0))
/* Do the system call */
mov a0,pv /* get fn ptr out of the way */
- mov a3,a4 /* get fn arg out of the way */
+ mov a3,t0 /* get fn arg out of the way */
mov a2,a0
ldiq v0,__NR_clone
call_pal PAL_callsys
.prologue 0
/* Call the user's function */
- mov a4,a0
+ mov t0,a0
jsr ra,(pv)
ldgp gp,0(ra)
struct in6_addr rtmsg_dst;
struct in6_addr rtmsg_src;
struct in6_addr rtmsg_gateway;
- unsigned long int rtmsg_type;
- unsigned short int rtmsg_dst_len;
- unsigned short int rtmsg_src_len;
- unsigned long int rtmsg_metric;
+ u_int32_t rtmsg_type;
+ u_int16_t rtmsg_dst_len;
+ u_int16_t rtmsg_src_len;
+ u_int32_t rtmsg_metric;
unsigned long int rtmsg_info;
- unsigned long int rtmsg_flags;
+ u_int32_t rtmsg_flags;
int rtmsg_ifindex;
};
* flags and num_*_ports are stored in host byte order (of course).
* Port numbers are stored in HOST byte order.
*/
-
+
#ifndef _NETINET_FW_H
#define _NETINET_FW_H
#include <sys/cdefs.h>
#include <sys/types.h>
-#include <netinet/icmp.h>
+#include <netinet/ip_icmp.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#define IP_FW_F_MASK 0x3FFF /* All possible flag bits mask */
-/*
+/*
* New IP firewall options for [gs]etsockopt at the RAW IP level.
* Unlike BSD Linux inherits IP options so you don't have to use
* a raw socket for this. Instead we check rights in the calls.
- */
+ */
#define IP_FW_BASE_CTL 64 /* base for firewall socket options */
*/
struct ip_fw_masq;
-
+
__END_DECLS
#endif /* _NETINET_IP_FW_H */
/* Some systems lack the `memset' function and we don't want to
introduce additional dependencies. */
static const char spaces[16] = " ";
+static const char zeroes[16] = "0000000000000000";
# define memset_space(P, Len) \
do { \
} \
while (_len > 0); \
} while (0)
+
+# define memset_zero(P, Len) \
+ do { \
+ int _len = (Len); \
+ \
+ do \
+ { \
+ int _this = _len > 16 ? 16 : _len; \
+ memcpy ((P), zeroes, _this); \
+ (P) += _this; \
+ _len -= _this; \
+ } \
+ while (_len > 0); \
+ } while (0)
#else
# define memset_space(P, Len) (memset ((P), ' ', (Len)), (P) += (Len))
+# define memset_zero(P, Len) (memset ((P), '0', (Len)), (P) += (Len))
#endif
-#define add(n, f) \
+#define add(n, f) \
do \
{ \
int _n = (n); \
if (p) \
{ \
if (_delta > 0) \
- memset_space (p, _delta); \
+ { \
+ if (pad == '0') \
+ memset_zero (p, _delta); \
+ else \
+ memset_space (p, _delta); \
+ } \
f; \
p += _n; \
} \
case 'I':
/* Match hour in 12-hour clock. */
get_number (1, 12);
- tm->tm_hour = val - 1;
+ tm->tm_hour = val % 12;
have_I = 1;
break;
case 'j':