2 Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd
3 See the file copying.txt for copying permission.
10 #include "xmlrpc_config.h"
17 struct range nmstrt[] = {
229 /* name chars that are not name start chars */
230 struct range name[] = {
360 setTab(char *tab, struct range *ranges, size_t nRanges)
364 for (i = 0; i < nRanges; i++) {
366 for (j = ranges[i].start; j <= ranges[i].end; j++)
370 tab[ranges[i].start] = 1;
379 unsigned char pageIndex[512];
382 "static const unsigned namingBitmap[] = {\n\
383 0x00000000, 0x00000000, 0x00000000, 0x00000000,\n\
384 0x00000000, 0x00000000, 0x00000000, 0x00000000,\n\
385 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\n\
386 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\n");
387 for (i = 0; i < 512; i++) {
388 int kind = tab[i*256];
389 for (j = 1; j < 256; j++)
390 if (tab[i*256 +j] != kind) {
394 if (i >= 256 && memcmp(tab + (i - 256)*256, tab + i*256, 256) == 0)
395 pageIndex[i] = pageIndex[i - 256];
396 else if (kind == -1) {
397 pageIndex[i] = nBitmaps++;
398 for (j = 0; j < 8; j++) {
400 for (k = 0; k < 32; k++) {
401 if (tab[i*256 + j*32 +k])
404 printf("0x%08X,", val);
405 putchar((((j + 1) & 3) == 0) ? '\n' : ' ');
412 printf("static const unsigned char nmstrtPages[] = {\n");
413 for (i = 0; i < 512; i++) {
415 printf("};\nstatic const unsigned char namePages[] = {\n");
416 printf("0x%02X,", pageIndex[i]);
417 putchar((((i + 1) & 7) == 0) ? '\n' : ' ');
423 main(int const argc ATTR_UNUSED,
424 char ** const argv ATTR_UNUSED) {
427 memset(tab, 0, 65536);
428 setTab(tab, nmstrt, sizeof(nmstrt)/sizeof(nmstrt[0]));
429 memcpy(tab + 65536, tab, 65536);
430 setTab(tab + 65536, name, sizeof(name)/sizeof(name[0]));