• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Test program, used by the plural-1 test.
2    Copyright (C) 2001-2002, 2009, 2013, 2018, 2020 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 <https://www.gnu.org/licenses/>.  */
16 
17 #ifdef HAVE_CONFIG_H
18 # include <config.h>
19 #endif
20 
21 #include <stdlib.h>
22 #include <stdio.h>
23 #include <locale.h>
24 
25 #if USE_SYSTEM_LIBINTL
26 # define xsetenv setenv
27 # include <libintl.h>
28 #else
29 # include "xsetenv.h"
30 /* Make sure we use the included libintl, not the system's one. */
31 # undef _LIBINTL_H
32 # include "libgnuintl.h"
33 #endif
34 
35 /* Disable the override of setlocale that libgnuintl.h activates on MacOS X
36    and Windows.  This test relies on the fake setlocale function in
37    setlocale.c.  */
38 #undef setlocale
39 #if defined _WIN32 && !defined __CYGWIN__
40 # define setlocale fake_setlocale
41 extern char *setlocale (int category, SETLOCALE_CONST char *locale);
42 #endif
43 
44 int
main(int argc,char * argv[])45 main (int argc, char *argv[])
46 {
47   int n = atoi (argv[2]);
48 
49   xsetenv ("LC_ALL", argv[1], 1);
50   if (setlocale (LC_ALL, "") == NULL)
51     return 1;
52 
53   textdomain ("cake");
54   bindtextdomain ("cake", "plural-1-dir");
55   printf (ngettext ("a piece of cake", "%d pieces of cake", n), n);
56   printf ("\n");
57   return 0;
58 }
59