(root)/
glibc-2.38/
localedata/
tst-trans.c
       1  /* Test program for user-defined character maps.
       2     Copyright (C) 1999-2023 Free Software Foundation, Inc.
       3     This file is part of the GNU C Library.
       4  
       5     The GNU C Library is free software; you can redistribute it and/or
       6     modify it under the terms of the GNU Lesser General Public
       7     License as published by the Free Software Foundation; either
       8     version 2.1 of the License, or (at your option) any later version.
       9  
      10     The GNU C Library is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      13     Lesser General Public License for more details.
      14  
      15     You should have received a copy of the GNU Lesser General Public
      16     License along with the GNU C Library; if not, see
      17     <https://www.gnu.org/licenses/>.  */
      18  
      19  #include <locale.h>
      20  #include <stdio.h>
      21  #include <stdlib.h>
      22  #include <string.h>
      23  #include <wchar.h>
      24  #include <wctype.h>
      25  
      26  static int
      27  do_test (void)
      28  {
      29    char buf[30];
      30    wchar_t wbuf[30];
      31    wctrans_t t;
      32    wint_t wch;
      33    int errors = 0;
      34    int len;
      35  
      36    setlocale (LC_ALL, "");
      37  
      38    t = wctrans ("test");
      39    if (t == (wctrans_t) 0)
      40      {
      41        puts ("locale data files probably not loaded");
      42        exit (1);
      43      }
      44  
      45    wch = towctrans (L'A', t);
      46    printf ("towctrans (L'A', t) = %lc\n", wch);
      47    if (wch != L'B')
      48      errors = 1;
      49  
      50    wch = towctrans (L'B', t);
      51    printf ("towctrans (L'B', t) = %lc\n", wch);
      52    if (wch != L'C')
      53      errors = 1;
      54  
      55    /* Test the output digit handling.  */
      56    swprintf (wbuf, sizeof (wbuf) / sizeof (wbuf[0]), L"%Id", 0x499602D2);
      57    errors |= wcscmp (wbuf, L"bcdefghija") != 0;
      58    len = wcslen (wbuf);
      59    errors |= len != 10;
      60    printf ("len = %d, wbuf = L\"%ls\"\n", len, wbuf);
      61  
      62    snprintf (buf, sizeof buf, "%Id", 0x499602D2);
      63    errors |= strcmp (buf, "bcdefghija") != 0;
      64    len = strlen (buf);
      65    errors |= len != 10;
      66    printf ("len = %d, buf = \"%s\"\n", len, buf);
      67  
      68    return errors;
      69  }
      70  
      71  #define TEST_FUNCTION do_test ()
      72  #include "../test-skeleton.c"