(root)/
gettext-0.22.4/
gettext-tools/
tests/
plural-1-prg.c
       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, const char *locale);
      42  #endif
      43  
      44  int
      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  }