idx2index.c
author viric@llimona
Sat, 01 Sep 2007 01:19:18 +0200
changeset 16 b4e251400e36
parent 8 09ec33061ff3
permissions -rw-r--r--
Improved hash on zprocess, and added parsing for "jo".
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     1
#include <stdio.h>
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     2
#include <netinet/in.h>
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     3
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     4
/*
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     5
 * idx2index - Part of the flow to convert a StarDict index to a dictd index.
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     6
 *             Author: LluĂ­s Batlle
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     7
 * In order to convert a StarDict idx file to a dictd index file, pass:
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     8
 * ./idx2index < file.idx | LC_ALL=POSIX sort > file.index
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     9
 * */
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    10
8
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents: 0
diff changeset
    11
static int get_raw_int()
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    12
{
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    13
    int i;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    14
    fread(&i, sizeof(int) , 1, stdin);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    15
    i = ntohl(i); /* Network to Host order */
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    16
    return i;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    17
}
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    18
8
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents: 0
diff changeset
    19
static int get_raw_word(char * word)
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    20
{
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    21
    int c;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    22
    int count = 0;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    23
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    24
    do
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    25
    {
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    26
        c = getchar();
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    27
        if (c == EOF)
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    28
            break;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    29
        word[count] = (char) c;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    30
        ++count;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    31
    } while (c != 0);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    32
    return count;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    33
}
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    34
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    35
int main()
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    36
{
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    37
    char word[256];
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    38
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    39
    do
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    40
    {
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    41
        int offset, length;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    42
        int res;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    43
        char c_offset[20], c_length[20];
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    44
8
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents: 0
diff changeset
    45
        res = get_raw_word(word);
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    46
        if (res == 0)
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    47
            break;
8
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents: 0
diff changeset
    48
        offset = get_raw_int();
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    49
        num_to_ia5(c_offset, offset);
8
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents: 0
diff changeset
    50
        length = get_raw_int();
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    51
        num_to_ia5(c_length, length);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    52
        printf("%s\t%s\t%s\n", word, c_offset, c_length);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    53
    } while(1);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    54
    return 0;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    55
}