main.c
author viric <viriketo@gmail.com>
Fri, 30 Mar 2012 18:56:20 +0200
changeset 33 ebbedaa090be
parent 5 c87681fff7d3
permissions -rw-r--r--
Adding what I had in the web for zparsetext (akcentiga)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     1
#include <stdio.h>
5
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
     2
#include <sys/stat.h>
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     3
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     4
#include "dictre.h"
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     5
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     6
extern int nwords;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     7
extern int ndefs;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     8
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
     9
int main(int argn, char **argv)
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    10
{
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    11
    char tmpname[500];
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    12
    FILE *i, *d;
5
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    13
    int remove_tmp_data = 0;
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    14
5
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    15
    if (argn < 3)
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    16
    {
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    17
        fprintf(stderr, "usage: %s <dict_basename> "
5
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    18
                "<dict_basename_out> [filter]\n",
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    19
                argv[0]);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    20
        return 1;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    21
    }
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    22
    strcpy(tmpname, argv[1]);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    23
    strcat(tmpname, ".index");
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    24
    i = fopen(tmpname, "r");
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    25
    if(i == NULL)
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    26
    {
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    27
        fprintf(stderr, "File: %s ", tmpname);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    28
        perror("- cannot open file.");
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    29
        exit(-1);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    30
    }
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    31
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    32
    strcpy(tmpname, argv[1]);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    33
    strcat(tmpname, ".dict");
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    34
    d = fopen(tmpname, "r");
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    35
    if(d == NULL)
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    36
    {
5
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    37
        struct stat st;
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    38
        int res;
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    39
        char tmp[500];
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    40
        strcat(tmpname, ".dz");
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    41
        res = stat(tmpname, &st);
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    42
        if (res == -1)
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    43
        {
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    44
            fprintf(stderr, "File: %s ", tmpname);
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    45
            perror("- cannot open file.");
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    46
            exit(-1);
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    47
        }
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    48
        sprintf(tmp, "gzip -cd %s > /tmp/tmp.dict",
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    49
                tmpname);
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    50
        printf("Gunzipping...\n");
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    51
        res = system(tmp);
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    52
        d = fopen("/tmp/tmp.dict", "r");
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    53
        if(d == NULL || res != 0)
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    54
        {
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    55
            fprintf(stderr, "Error gunzipping file: %s ", tmpname);
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    56
            perror("- something happened to /tmp/tmp.dict.");
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    57
            exit(-1);
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    58
        }
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    59
        remove_tmp_data = 1;
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    60
    }
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    61
5
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    62
    init_load();
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    63
    init_repeated();
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    64
    /* Always line buffered on stdout, for 'ts' */
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    65
    setlinebuf(stdout);
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    66
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    67
    load_dictionary(i, d);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    68
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    69
    fclose(i);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    70
    fclose(d);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    71
5
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    72
    if (remove_tmp_data)
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    73
        unlink("/tmp/tmp.dict");
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    74
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    75
    sort_words();
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    76
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    77
    if (0)
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    78
        print_words();
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    79
5
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    80
    if (argn >= 4)
c87681fff7d3 Checks for repeated definitions.
viric@mandarina
parents: 0
diff changeset
    81
        filter_all(argv[3]);
0
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    82
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    83
    write_dictionary(argv[2]);
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    84
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    85
    return 0;
7f37716d4f1e Initial. Awful makefile.
viric@llimona
parents:
diff changeset
    86
}