1 #include	"unicode_config.h"
2 #include	"courier-unicode.h"
3 
4 #include	<string.h>
5 #include	<stdio.h>
6 #include	<stdlib.h>
7 
8 struct i {
9 	size_t n_start;
10 	size_t n_size;
11 	char32_t v;
12 };
13 
14 #include "unicode_htmlent.h"
15 
testsuite()16 static void testsuite()
17 {
18 	size_t j;
19 
20 	for (j=0; j<sizeof(ii)/sizeof(ii[0]); ++j)
21 	{
22 		char buf[60];
23 
24 		memcpy(buf, n + ii[j].n_start, ii[j].n_size);
25 		buf[ii[j].n_size]=0;
26 
27 		if (unicode_html40ent_lookup(buf) != ii[j].v)
28 		{
29 			fprintf(stderr, "Did not find %s\n", buf);
30 			exit(1);
31 		}
32 
33 		strcat(buf, "X");
34 
35 		if (unicode_html40ent_lookup(buf) == ii[j].v)
36 		{
37 			fprintf(stderr, "Found %s?\n", buf);
38 			exit(1);
39 		}
40 
41 		buf[strlen(buf)-2]=0;
42 
43 		if (unicode_html40ent_lookup(buf) == ii[j].v)
44 		{
45 			fprintf(stderr, "Found %s?\n", buf);
46 			exit(1);
47 		}
48 	}
49 
50 	if (unicode_html40ent_lookup("#13") != 13 ||
51 	    unicode_html40ent_lookup("#x100") != 256)
52 	{
53 		fprintf(stderr, "numeric lookup failed\n");
54 		exit(1);
55 	}
56 
57 	if (!unicode_isalpha('A') || !unicode_isupper('A') ||
58 	    !unicode_islower('a') || !unicode_isdigit('0') ||
59 	    !unicode_isspace(' ') || !unicode_isblank('\t') ||
60 	    !unicode_ispunct('['))
61 	{
62 		fprintf(stderr, "category lookup failed\n");
63 		exit(1);
64 	}
65 }
66 
main(int argc,char ** argv)67 int main(int argc, char **argv)
68 {
69 	testsuite();
70 	return 0;
71 }
72