(linenum→info "unix/slp.c:2238")

glibc/2.7/localedata/tst-trans.c

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