Blame stdlib/testmb.c

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