Back to index

glibc  2.9
Defines | Functions
tst-ngettext.c File Reference
#include <langinfo.h>
#include <libintl.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Defines

#define TEST

Functions

int main (void)

Define Documentation

#define TEST
Value:
do                                                            \
       if (tr != strs[i != 1])                                              \
         {                                                           \
           if (strcmp (tr, strs[i != 1]) == 0)                              \
             printf ("%lu: correct string, wrong pointer (%s)\n", i, tr);    \
	    else							      \
	      printf ("%lu: wrong result (%s)\n", i, tr);                   \
           res = 1;                                                  \
         }                                                           \
      while (0)

Function Documentation

int main ( void  )

Definition at line 30 of file tst-ngettext.c.

{
  const char *strs[2] = { "singular", "plural" };
  unsigned long int i;
  int res = 0;

  /* We don't want any translation here.  */
  setenv ("LANGUAGE", "C", 1);
  unsetenv ("OUTPUT_CHARSET");

  for (i = 0; i < 30; ++i)
    {
      char *tr;

      tr = ngettext (strs[0], strs[1], i);
#define TEST \
      do                                                             \
       if (tr != strs[i != 1])                                              \
         {                                                           \
           if (strcmp (tr, strs[i != 1]) == 0)                              \
             printf ("%lu: correct string, wrong pointer (%s)\n", i, tr);    \
           else                                                      \
             printf ("%lu: wrong result (%s)\n", i, tr);                    \
           res = 1;                                                  \
         }                                                           \
      while (0)
      TEST;

      tr = dngettext ("messages", strs[0], strs[1], i);
      TEST;

      tr = dcngettext ("messages", strs[0], strs[1], i, LC_MESSAGES);
      TEST;
    }

  return res;
}

Here is the call graph for this function: