maint: update copyright
[gnulib.git] / tests / test-locale.c
1 /* Test of <locale.h> substitute.
2    Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
3
4    This program is free software: you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation; either version 3 of the License, or
7    (at your option) any later version.
8
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13
14    You should have received a copy of the GNU General Public License
15    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
16
17 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
18
19 #include <config.h>
20
21 #include <locale.h>
22
23 #include "verify.h"
24
25 int a[] =
26   {
27     LC_ALL,
28     LC_COLLATE,
29     LC_CTYPE,
30     LC_MESSAGES,
31     LC_MONETARY,
32     LC_NUMERIC,
33     LC_TIME
34   };
35
36 #if HAVE_NEWLOCALE
37 /* Check that the locale_t type and the LC_GLOBAL_LOCALE macro are defined.  */
38 locale_t b = LC_GLOBAL_LOCALE;
39 #endif
40
41 /* Check that the 'struct lconv' type is defined.  */
42 struct lconv l;
43 int ls;
44
45 /* Check that NULL can be passed through varargs as a pointer type,
46    per POSIX 2008.  */
47 verify (sizeof NULL == sizeof (void *));
48
49 int
50 main ()
51 {
52   /* Check that 'struct lconv' has the ISO C and POSIX specified members.  */
53   ls += sizeof (*l.decimal_point);
54   ls += sizeof (*l.thousands_sep);
55   ls += sizeof (*l.grouping);
56   ls += sizeof (*l.mon_decimal_point);
57   ls += sizeof (*l.mon_thousands_sep);
58   ls += sizeof (*l.mon_grouping);
59   ls += sizeof (*l.positive_sign);
60   ls += sizeof (*l.negative_sign);
61   ls += sizeof (*l.currency_symbol);
62   ls += sizeof (l.frac_digits);
63   ls += sizeof (l.p_cs_precedes);
64   ls += sizeof (l.p_sign_posn);
65   ls += sizeof (l.p_sep_by_space);
66   ls += sizeof (l.n_cs_precedes);
67   ls += sizeof (l.n_sign_posn);
68   ls += sizeof (l.n_sep_by_space);
69   ls += sizeof (*l.int_curr_symbol);
70   ls += sizeof (l.int_frac_digits);
71   ls += sizeof (l.int_p_cs_precedes);
72   ls += sizeof (l.int_p_sign_posn);
73   ls += sizeof (l.int_p_sep_by_space);
74   ls += sizeof (l.int_n_cs_precedes);
75   ls += sizeof (l.int_n_sign_posn);
76   ls += sizeof (l.int_n_sep_by_space);
77
78   return 0;
79 }