const char str[] = "\xe0\xa0\x80";  wc = 42;			 memset (&s, 0, sizeof (s));	 assert (mbrtowc (&wc, str, 1, &s) == -2); assert (mbrtowc (&wc, str + 1, 2, &s) == 2); assert (wc == 0x800);  wc = 42;			 memset (&s, 0, sizeof (s));	 assert (mbrtowc (&wc, str, 3, &s) == 3); assert (wc == 0x800);
utf8_test_1 (void){  wchar_t wc;  mbstate_t s;  wc = 42;			/* arbitrary number */  memset (&s, 0, sizeof (s));	/* get s into initial state */  assert (mbrtowc (&wc, "\xE2", 1, &s) == (size_t) -2);	/* 1st byte processed */  assert (mbrtowc (&wc, "\x89", 1, &s) == (size_t) -2);	/* 2nd byte processed */  assert (wc == 42);		/* no value has not been stored into &wc yet */  assert (mbrtowc (&wc, "\xA0", 1, &s) == 1);	/* 3nd byte processed */  assert (wc == 0x2260);	/* E2 89 A0 = U+2260 (not equal) decoded correctly */  assert (mbrtowc (&wc, "", 1, &s) == 0);	/* test final byte processing */  assert (wc == 0);		/* test final byte decoding */  return 0;}