2008-02-08 Danny Smith <dannysmith@users.sourceforge.net>

* mingwex/gdtoa/gdtoaimp.h (USE_LOCALE): Define.
        * mingwex/gdtoa/mingw_snprintf.c: [USE_LOCALE] Include locale.h.
        (x_sprintf): [USE_LOCALE] Use  *localeconv()->decimal_point.
This commit is contained in:
Chris Sutcliffe 2008-03-20 02:55:56 +00:00
parent 197dffcbd6
commit b6f8240fa0
3 changed files with 20 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2008-02-08 Danny Smith <dannysmith@users.sourceforge.net>
* mingwex/gdtoa/gdtoaimp.h (USE_LOCALE): Define.
* mingwex/gdtoa/mingw_snprintf.c: [USE_LOCALE] Include locale.h.
(x_sprintf): [USE_LOCALE] Use *localeconv()->decimal_point.
2008-02-28 Joseph Myers <joseph@codesourcery.com>
* include/complex.h: Don't condition contents on C99 or not

View File

@ -2,7 +2,7 @@
The author of this software is David M. Gay.
Copyright (C) 1998-2000 by Lucent Technologies
Copyright (C) 1998-2008 by Lucent Technologies
All Rights Reserved
Permission to use, copy, modify, and distribute this software and
@ -172,6 +172,7 @@ THIS SOFTWARE.
#define INFNAN_CHECK 1
#define MULTIPLE_THREADS 1
#define USE_LOCALE 1
#ifdef DEBUG
#include <stdio.h>

View File

@ -91,8 +91,10 @@ THIS SOFTWARE.
#include <math.h>
#include <stdint.h>
#include "gdtoa.h"
#include "gdtoaimp.h"
#ifdef USE_LOCALE
#include "locale.h"
#endif
/*
* For a MinGW build, we provide the implementation dependent entries
@ -381,6 +383,12 @@ x_sprintf
static char hex[] = "0123456789abcdef";
static char Hex[] = "0123456789ABCDEF";
#ifdef USE_LOCALE
char decimalpoint = *localeconv()->decimal_point;
#else
static const char decimalpoint = '.';
#endif
ob0 = outbuf = f->ob0;
rv = 0;
for(;;) {
@ -751,7 +759,7 @@ x_sprintf
if (decpt <= 0) {
put('0')
if (prec > 0 || alt)
put('.')
put(decimalpoint)
while(decpt < 0) {
put('0')
prec--;
@ -768,7 +776,7 @@ x_sprintf
}
while(--decpt > 0);
if (prec > 0 || alt)
put('.')
put(decimalpoint)
}
while(--prec >= 0) {
if ((c = *s))
@ -868,7 +876,7 @@ x_sprintf
put(sign)
put(*s++)
if (prec || alt)
put('.')
put(decimalpoint)
while(--prec >= 0) {
if ((c = *s))
s++;