1static wchar_t wc;2static struct mbtest {3 char *s;4 int l;5 int rmbr;6 int rmb;7 int mbstate;8 int syserr;9 wchar_t *pwc;10 wchar_t wc;11} tests[] = {12 {"\0", 2, 0, 0, 1, 0, &wc, 0},13 {"\x21", 2, 1, 1, 1, 0, &wc, 0x21},14 {"\xc2\xa1", 3, 2, 2, 1, 0, &wc, 0x00A1},15 {"\xc2\xa1", 2, 2, 2, 1, 0, &wc, 0x00A1},16 {"\xe2\x80\x94", 4, 3, 3, 1, 0, &wc, 0x2014},17 {"\xf0\x9f\x92\xa9", 5, 4, 4, 1, 0, &wc, 0x01F4A9},18 {"\xf0\x9f\x92\xa9", 5, 4, 4, 1, 0, NULL, -1},19 {"\xf0\x9f\x92\xa9", -1, 4, 4, 1, 0, &wc, 0x01F4A9},2021 {NULL, 4, 0, 0, 1, 0, NULL, -1},22 {"\xed\x9f\xbf", 4, 3, 3, 1, 0, &wc, 0xd7ff},23 {"\xed\xa0\x80", 4, -1, -1, 1, EILSEQ, &wc, -1},24 {"\xed\xb3\xbf", 4, -1, -1, 1, EILSEQ, &wc, -1},25 {"\xed\xb4\x80", 4, 3, 3, 1, 0, &wc, 0xdd00},2627 {"\xf0\x9f\x92\xa9", 3, -2, -1, 0, 0, &wc, -1},28 {"\xa9", 2, 1, -1, 1, 0, &wc, 0x01F4A9},29 {"\xf0\x9f\x92\xa9", 3, -2, -1, 0, 0, &wc, -1},30 {NULL, 4, -1, 0, 1, EILSEQ, &wc, -1},31 {"\xa9", 2, -1, -1, 1, EILSEQ, &wc, -1},32 {"\xf0\x9f\x92\xa9", 3, -2, -1, 0, 0, &wc, -1},33 {NULL, 4, -1, 0, 1, EILSEQ, &wc, -1},34 {"\x21", 2, 1, 1, 1, 0, &wc, 0x21},35 {"\xf0\x9f\x92\xa9", 2, -2, -1, 0, 0, &wc, -1},36 {"\xf0\x9f\x92\xa9", 0, -2, -1, 0, 0, &wc, -1},37 {"\x92\xa9", 2, 2, -1, 1, 0, &wc, 0x01F4A9},3839 {"\x80", 2, -1, -1, 1, EILSEQ, &wc, -1},40 {"\xc0\x80", 2, -1, -1, 1, EILSEQ, &wc, -1},41 {"\xc0\x00", 2, -1, -1, 1, EILSEQ, &wc, -1},42 {"\xc1\x81", 2, -1, -1, 1, EILSEQ, &wc, -1},43 {"\xf8\x81\x82\x83\x84\x85", -1, -1, -1, 1, EILSEQ, &wc, -1},44 {"\xfe\x81\x82\x83\x84\x85\x86", 8, -1, -1, 1, EILSEQ, &wc, -1},45};