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