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