=================================================================== RCS file: /home/cvs/OpenXM_contrib/gmp/mpf/Attic/out_str.c,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -p -r1.1.1.2 -r1.1.1.3 --- OpenXM_contrib/gmp/mpf/Attic/out_str.c 2000/09/09 14:13:11 1.1.1.2 +++ OpenXM_contrib/gmp/mpf/Attic/out_str.c 2003/08/25 16:06:35 1.1.1.3 @@ -2,7 +2,7 @@ the float OP to STREAM in base BASE. Return the number of characters written, or 0 if an error occurred. -Copyright (C) 1996, 1997 Free Software Foundation, Inc. +Copyright 1996, 1997, 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU MP Library. @@ -21,21 +21,20 @@ along with the GNU MP Library; see the file COPYING.LI the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include "config.h" + #include #include + +#if HAVE_LOCALE_H +#include /* for localeconv */ +#endif + #include "gmp.h" #include "gmp-impl.h" size_t -#if __STDC__ mpf_out_str (FILE *stream, int base, size_t n_digits, mpf_srcptr op) -#else -mpf_out_str (stream, base, n_digits, op) - FILE *stream; - int base; - size_t n_digits; - mpf_srcptr op; -#endif { char *str; mp_exp_t exp; @@ -47,8 +46,7 @@ mpf_out_str (stream, base, n_digits, op) if (base == 0) base = 10; if (n_digits == 0) - n_digits = (((op->_mp_prec - 1) * BITS_PER_MP_LIMB) - * __mp_bases[base].chars_per_bit_exactly); + MPF_SIGNIFICANT_DIGITS (n_digits, base, op->_mp_prec); if (stream == 0) stream = stdout; @@ -69,8 +67,18 @@ mpf_out_str (stream, base, n_digits, op) n_digits--; } +#if HAVE_LOCALECONV + { + const char *point = localeconv()->decimal_point; + size_t pointlen = strlen (point); + putc ('0', stream); + fwrite (point, 1, pointlen, stream); + written += pointlen + 1; + } +#else fwrite ("0.", 1, 2, stream); written += 2; +#endif /* Write mantissa */ {