Blame stdlib/testmb.c

Packit Service 82fcde
#include <stdio.h>
Packit Service 82fcde
#include <stdlib.h>
Packit Service 82fcde
Packit Service 82fcde
int
Packit Service 82fcde
main (int argc, char *argv[])
Packit Service 82fcde
{
Packit Service 82fcde
  wchar_t w[10];
Packit Service 82fcde
  char c[10];
Packit Service 82fcde
  int i;
Packit Service 82fcde
  int lose = 0;
Packit Service 82fcde
Packit Service 82fcde
  i = mbstowcs (w, "bar", 4);
Packit Service 82fcde
  if (!(i == 3 && w[1] == 'a'))
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("mbstowcs FAILED!");
Packit Service 82fcde
      lose = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  mbstowcs (w, "blah", 5);
Packit Service 82fcde
  i = wcstombs (c, w, 10);
Packit Service 82fcde
  if (i != 4)
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("wcstombs FAILED!");
Packit Service 82fcde
      lose = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  if (mblen ("foobar", 7) != 1)
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("mblen 1 FAILED!");
Packit Service 82fcde
      lose = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  if (mblen ("", 1) != 0)
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("mblen 2 FAILED!");
Packit Service 82fcde
      lose = 1;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  {
Packit Service 82fcde
    int r;
Packit Service 82fcde
    char c = 'x';
Packit Service 82fcde
    wchar_t wc;
Packit Service 82fcde
    char mbc[MB_CUR_MAX];
Packit Service 82fcde
Packit Service 82fcde
    if ((r = mbtowc (&wc, &c, MB_CUR_MAX)) <= 0)
Packit Service 82fcde
      {
Packit Service 82fcde
	printf ("conversion to wide failed, result: %d\n", r);
Packit Service 82fcde
	lose = 1;
Packit Service 82fcde
      }
Packit Service 82fcde
    else
Packit Service 82fcde
      {
Packit Service 82fcde
	printf ("wide value: 0x%04lx\n", (unsigned long) wc);
Packit Service 82fcde
	mbc[0] = '\0';
Packit Service 82fcde
	if ((r = wctomb (mbc, wc)) <= 0)
Packit Service 82fcde
	  {
Packit Service 82fcde
	    printf ("conversion to multibyte failed, result: %d\n", r);
Packit Service 82fcde
	    lose = 1;
Packit Service 82fcde
	  }
Packit Service 82fcde
      }
Packit Service 82fcde
Packit Service 82fcde
  }
Packit Service 82fcde
Packit Service 82fcde
  puts (lose ? "Test FAILED!" : "Test succeeded.");
Packit Service 82fcde
  return lose;
Packit Service 82fcde
}