Annotation of gpl/axl/test/gen-table.c, revision 1.1.1.1

1.1       misho       1: #include <stdio.h>
                      2: 
                      3: int main (int argc, char ** argv)
                      4: {
                      5:        FILE * file;
                      6:        FILE * file2;
                      7:        char   buffer[2];
                      8:        char   buffer2[4];
                      9:        int    iterator;
                     10: 
                     11:        if (argc != 3) {
                     12:                printf ("Please provide two files ORIGINAL and UTF-8-TRANSLATE..\n");
                     13:                return -1;
                     14:        }
                     15: 
                     16:        file = fopen (argv[1], "r");
                     17:        if (file == NULL) {
                     18:                printf ("failed to open: %s..\n", argv[1]);
                     19:                return -1;
                     20:        }
                     21: 
                     22:        file2 = fopen (argv[2], "r");
                     23:        if (file2 == NULL) {
                     24:                printf ("failed to open: %s..\n", argv[2]);
                     25:                return -1;
                     26:        }
                     27:        
                     28:        /* foreach item at the original array do */
                     29:        iterator = 0;
                     30:        while (fread (buffer, 1, 1, file) == 1) {
                     31: 
                     32:                /* read the terminator */
                     33:                if (fread (&(buffer[1]), 1, 1, file) != 1) {
                     34:                        break;
                     35:                }
                     36:                 
                     37:                if (buffer[1] != '\n') {
                     38:                        printf ("Expected to find new line character at=%d..\n", iterator);
                     39:                        return -1;
                     40:                }   
                     41: 
                     42: 
                     43:                if (fread (buffer2, 1, 1, file2) != 1) {
                     44:                        printf ("failed to read utf-8 file (while handling buffer[0]='%c' (%u)..\n", iterator, buffer[0], (unsigned char) buffer[0]);
                     45:                        return -1;
                     46:                } /* end if */
                     47: 
                     48:                if (fread (&(buffer2[1]), 1, 1, file2) != 1) {
                     49:                        printf ("failed to read utf-8 file (while handling buffer[0]='%c'..\n", iterator);
                     50:                        return -1;
                     51:                } /* end if */
                     52: 
                     53:                if (buffer2[1] == '\n') {
                     54:                        printf ("/* store item associated to code %d */\n", iterator);
                     55:                        printf ("table[%d].size      = 1;\n", iterator);
                     56:                        printf ("table[%d].buffer[0] = (unsigned char) %d; /* 0x%x */\n\n", iterator, (unsigned char) iterator, (unsigned char) iterator);
                     57:                        iterator++;
                     58:                        continue;
                     59:                }
                     60: 
                     61:                if (fread (&(buffer2[2]), 1, 1, file2) != 1) {
                     62:                        printf ("failed to read utf-8 file (2 type unit)..\n");
                     63:                        return -1;
                     64:                } /* end if */
                     65:                
                     66:                if (buffer2[2] == '\n') {
                     67:                        printf ("/* store item associated to code %d */\n", iterator);
                     68:                        printf ("table[%d].size      = 2;\n", iterator);
                     69:                        printf ("table[%d].buffer[0] = (unsigned char) %u; /* 0x%x */\n", iterator, (unsigned char) buffer2[0], (unsigned char) buffer2[0]);
                     70:                        printf ("table[%d].buffer[1] = (unsigned char) %u; /* 0x%x */\n\n", iterator, (unsigned char) buffer2[1], (unsigned char) buffer2[1]);
                     71:                        iterator++;
                     72:                        continue;
                     73:                }
                     74: 
                     75:                if (fread (&(buffer2[3]), 1, 1, file2) != 1) {
                     76:                        printf ("failed to read utf-8 file (3 type unit)..\n");
                     77:                        return -1;
                     78:                } /* end if */
                     79: 
                     80:                printf ("/* store item associated to code %d */\n", iterator);
                     81:                printf ("table[%d].size      = 3;\n", iterator);
                     82:                printf ("table[%d].buffer[0] = (unsigned char) %u; /* 0x%x */\n",   iterator, (unsigned char) buffer2[0], (unsigned char) buffer2[0]);
                     83:                printf ("table[%d].buffer[1] = (unsigned char) %u; /* 0x%x */\n",   iterator, (unsigned char) buffer2[1], (unsigned char) buffer2[1]);
                     84:                printf ("table[%d].buffer[2] = (unsigned char) %u; /* 0x%x */\n\n", iterator, (unsigned char) buffer2[2], (unsigned char) buffer2[2]);
                     85:                iterator++;
                     86:                continue;
                     87:                
                     88:        }
                     89:        fclose (file);
                     90:        return 0;
                     91: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>