1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <string.h>
4
5 #include "enca.h"
6 /* To cheat... */
7 #include "internal.h"
8
9 int myargc;
10 char **myargv;
11
12 static void
prl(const EncaLanguageInfo * l,const char * hooks)13 prl(const EncaLanguageInfo *l, const char *hooks)
14 {
15 double *m;
16 int a;
17 size_t i, j;
18
19 if (myargc > 1) {
20 a = 1;
21 while (a < myargc && strcmp(myargv[a], l->name))
22 a++;
23 if (a == myargc)
24 return;
25 }
26
27 printf("\n==\x1b[1m%s\x1b[m==\n", l->name);
28 m = enca_get_charset_similarity_matrix(l);
29 for (i = 0; i < l->ncharsets; i++) {
30 for (j = 0; j < l->ncharsets; j++) {
31 double q = 1000.0*m[i*l->ncharsets + j];
32
33 if (i == j)
34 printf("\x1b[36m");
35 else if (q > 500)
36 printf("\x1b[1;31m");
37 else if (q > 333)
38 printf("\x1b[31m");
39 else if (q > 200)
40 printf("\x1b[34m");
41 else if (q < 50)
42 printf("\x1b[30m");
43 printf("%4.0f ", q);
44 printf("\x1b[m");
45 }
46 printf(" %s\n", l->csnames[i]);
47 }
48 printf("Hooks: \x1b[32m%s\x1b[m\n", hooks);
49 free(m);
50 }
51
52 int
main(int argc,char * argv[])53 main(int argc, char *argv[])
54 {
55 myargc = argc;
56 myargv = argv;
57
58 prl(&ENCA_LANGUAGE_BE, "macwin isokoi 855866");
59 prl(&ENCA_LANGUAGE_BG, "1251mac");
60 prl(&ENCA_LANGUAGE_CS, "isowin 852kam");
61 prl(&ENCA_LANGUAGE_ET, "");
62 prl(&ENCA_LANGUAGE_HR, "isowin");
63 prl(&ENCA_LANGUAGE_HU, "isocork isowin[XXX]");
64 prl(&ENCA_LANGUAGE_LT, "winbalt lat4balt iso13win[XXX]");
65 prl(&ENCA_LANGUAGE_LV, "winbalt iso13win[XXX]");
66 prl(&ENCA_LANGUAGE_PL, "isowin balt13");
67 prl(&ENCA_LANGUAGE_RU, "macwin");
68 prl(&ENCA_LANGUAGE_SK, "isowin 852kam");
69 prl(&ENCA_LANGUAGE_SL, "");
70 prl(&ENCA_LANGUAGE_UK, "macwin isokoi ibm1125");
71
72 return 0;
73 }
74