1/***********************************************************************
2*                                                                      *
3*               This software is part of the ast package               *
4*          Copyright (c) 1985-2011 AT&T Intellectual Property          *
5*                      and is licensed under the                       *
6*                  Common Public License, Version 1.0                  *
7*                    by AT&T Intellectual Property                     *
8*                                                                      *
9*                A copy of the License is available at                 *
10*            http://www.opensource.org/licenses/cpl1.0.txt             *
11*         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
12*                                                                      *
13*              Information and Software Systems Research               *
14*                            AT&T Research                             *
15*                           Florham Park NJ                            *
16*                                                                      *
17*                 Glenn Fowler <gsf@research.att.com>                  *
18*                  David Korn <dgk@research.att.com>                   *
19*                   Phong Vo <kpv@research.att.com>                    *
20*                                                                      *
21***********************************************************************/
22#pragma prototyped
23
24/*
25 * localeconv() intercept
26 */
27
28#include "lclib.h"
29
30#undef	localeconv
31
32static char	null[] = "";
33
34static struct lconv	debug_lconv =
35{
36	",",
37	".",
38	&null[0],
39	&null[0],
40	&null[0],
41	&null[0],
42	&null[0],
43	&null[0],
44	&null[0],
45	&null[0],
46	CHAR_MAX,
47	CHAR_MAX,
48	CHAR_MAX,
49	CHAR_MAX,
50	CHAR_MAX,
51	CHAR_MAX,
52	CHAR_MAX,
53	CHAR_MAX,
54};
55
56static struct lconv	default_lconv =
57{
58	".",
59	&null[0],
60	&null[0],
61	&null[0],
62	&null[0],
63	&null[0],
64	&null[0],
65	&null[0],
66	&null[0],
67	&null[0],
68	CHAR_MAX,
69	CHAR_MAX,
70	CHAR_MAX,
71	CHAR_MAX,
72	CHAR_MAX,
73	CHAR_MAX,
74	CHAR_MAX,
75	CHAR_MAX,
76};
77
78#if !_lib_localeconv
79
80struct lconv*
81localeconv(void)
82{
83	return &default_lconv;
84}
85
86#endif
87
88/*
89 * localeconv() intercept
90 */
91
92struct lconv*
93_ast_localeconv(void)
94{
95	if ((locales[AST_LC_MONETARY]->flags | locales[AST_LC_NUMERIC]->flags) & LC_debug)
96		return &debug_lconv;
97	if ((locales[AST_LC_NUMERIC]->flags & (LC_default|LC_local)) == LC_local)
98		return locales[AST_LC_NUMERIC]->territory == &lc_territories[0] ? &default_lconv : &debug_lconv;
99	return localeconv();
100}
101