/* * make KOI8->ISO8859-5 and ISO8859-5->KOI8 translation table * from koi-iso.tab. * * Tatsuo Ishii * * src/backend/utils/mb/iso.c */ #include main() { int i; char koitab[128], isotab[128]; char buf[4096]; int koi, iso; for (i = 0; i < 128; i++) koitab[i] = isotab[i] = 0; while (fgets(buf, sizeof(buf), stdin) != NULL) { if (*buf == '#') continue; sscanf(buf, "%d %x", &koi, &iso); if (koi < 128 || koi > 255 || iso < 128 || iso > 255) { fprintf(stderr, "invalid value %d\n", koi); exit(1); } koitab[koi - 128] = iso; isotab[iso - 128] = koi; } i = 0; printf("static char koi2iso[] = {\n"); while (i < 128) { int j = 0; while (j < 8) { printf("0x%02x", koitab[i++]); j++; if (i >= 128) break; printf(", "); } printf("\n"); } printf("};\n"); i = 0; printf("static char iso2koi[] = {\n"); while (i < 128) { int j = 0; while (j < 8) { printf("0x%02x", isotab[i++]); j++; if (i >= 128) break; printf(", "); } printf("\n"); } printf("};\n"); }