1/* Manipulable localeconv and nl_langinfo. 2 3Copyright 2001, 2002 Free Software Foundation, Inc. 4 5This file is part of the GNU MP Library. 6 7The GNU MP Library is free software; you can redistribute it and/or modify 8it under the terms of the GNU Lesser General Public License as published by 9the Free Software Foundation; either version 3 of the License, or (at your 10option) any later version. 11 12The GNU MP Library is distributed in the hope that it will be useful, but 13WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 15License for more details. 16 17You should have received a copy of the GNU Lesser General Public License 18along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */ 19 20#include "config.h" 21 22#if HAVE_NL_TYPES_H 23#include <nl_types.h> /* for nl_item */ 24#endif 25 26#if HAVE_LANGINFO_H 27#include <langinfo.h> /* for nl_langinfo */ 28#endif 29 30#if HAVE_LOCALE_H 31#include <locale.h> /* for lconv */ 32#endif 33 34 35/* Replace the libc localeconv and nl_langinfo with ones we can manipulate. 36 37 This is done in a C file since if it was in a C++ file then we'd have to 38 match the "throw" or lack thereof declared for localeconv in <locale.h>. 39 g++ 3.2 gives an error about mismatched throws under "-pedantic", other 40 C++ compilers may very possibly do so too. */ 41 42extern char point_string[]; 43 44#if HAVE_LOCALECONV 45struct lconv * 46localeconv (void) 47{ 48 static struct lconv l; 49 l.decimal_point = point_string; 50 return &l; 51} 52#endif 53 54#if HAVE_NL_LANGINFO 55char * 56nl_langinfo (nl_item n) 57{ 58 return point_string; 59} 60#endif 61