diff --git a/maca_common/src/mcd.c b/maca_common/src/mcd.c index 6cc0e7f2e6129ea97cacc2b405f06715e4a11a35..ca924f23f1b3c13860f177e70555e4ed4b8c5494 100644 --- a/maca_common/src/mcd.c +++ b/maca_common/src/mcd.c @@ -75,6 +75,7 @@ void mcd_free(mcd *m) if(m->dico_array[i]) dico_free(m->dico_array[i]); if(m->word_emb_array[i]) word_emb_free(m->word_emb_array[i]); if(m->wf_str[i]) free(m->wf_str[i]); + if (m->filename[i]) free(m->filename[i]); } free(m->representation); free(m->filename); @@ -124,6 +125,7 @@ int mcd_max_column_index_in_file(char *mcd_filename) } if(column > max_col) max_col = column; } + if (f != NULL) fclose(f); return max_col; } diff --git a/maca_common/src/word_buffer.c b/maca_common/src/word_buffer.c index bf53a2d61ef2bd273376ce2b876e0810581d7926..e9355d50e3fc8d271b13205dbbcd0f7678a4f65d 100644 --- a/maca_common/src/word_buffer.c +++ b/maca_common/src/word_buffer.c @@ -63,12 +63,13 @@ void word_buffer_print_compact(FILE *f, word_buffer *wb) void word_buffer_free(word_buffer *wb) { int i; - free(wb->array); - free(wb); + for(i=0; i < wb->nbelem; i++){ if(wb->array[i]) word_free(wb->array[i]); } + free(wb->array); + free(wb); } int word_buffer_add(word_buffer *wb, word *w) @@ -106,8 +107,8 @@ word_buffer *word_buffer_load_mcf(char *mcf_filename, mcd *mcd_struct) while(word_buffer_read_next_word(wb)){ /* printf("load word %d\n", wb->nbelem - 1); */ } - if(mcf_filename != NULL) - fclose(f); + //if(mcf_filename != NULL) + // fclose(f); return wb; } diff --git a/maca_tools/src/mcf2conll.c b/maca_tools/src/mcf2conll.c index 272c18105954caed384c5aa23086ec7e203c4813..c5f506447112a354ff5fba162688b3435cfa044b 100644 --- a/maca_tools/src/mcf2conll.c +++ b/maca_tools/src/mcf2conll.c @@ -205,7 +205,13 @@ int main(int argc, char *argv[]) index ++; } } while(word_buffer_move_right(wb)); + + + if (wb->input_file != stdin) + fclose(wb->input_file); + word_buffer_free(wb); + if(ctx->conll_filename) fclose(output_file); context_free(ctx); diff --git a/maca_trans_parser/src/context.c b/maca_trans_parser/src/context.c index f8fca20f3c9607adc211bc775c5de6488df64e80..1b9704e1b1e97862cd0b80c00c753a8ccea3f37e 100644 --- a/maca_trans_parser/src/context.c +++ b/maca_trans_parser/src/context.c @@ -270,6 +270,29 @@ context *context_read_options(int argc, char *argv[]) ctx->mcd_struct = mcd_read(ctx->mcd_filename, ctx->verbose); else ctx->mcd_struct = mcd_build_wplgfs(); + + + /* initialize maca_data_path field */ + + char absolute_path[500]; + absolute_path[0] = '\0'; + if(ctx->maca_data_path){ + strcpy(absolute_path, ctx->maca_data_path); + free(ctx->maca_data_path); + } + else { + char *e = getenv("MACAON_DIR"); + if (e != NULL) { + strcpy(absolute_path, e); + } else { + fprintf(stderr, "WARNING: the environment variable MACAON_DIR is not defined\n"); + } + } + strcat(absolute_path, "/"); + strcat(absolute_path, ctx->language); + strcat(absolute_path, "/bin/"); + ctx->maca_data_path = strdup(absolute_path); + return ctx; } diff --git a/maca_trans_parser/src/decode_forrest.c b/maca_trans_parser/src/decode_forrest.c index ec3d199d6e79319caf88a956944961d796e26aab..8a54c6c655263fc5dad61c8dd6c35158194abfc9 100644 --- a/maca_trans_parser/src/decode_forrest.c +++ b/maca_trans_parser/src/decode_forrest.c @@ -42,41 +42,28 @@ void decode_check_options(context *ctx){ void set_linguistic_resources_filenames_parser(context *ctx) { - char absolute_path[500]; char absolute_filename[500]; - absolute_path[0] = '\0'; - - if(ctx->maca_data_path) - strcat(absolute_path, ctx->maca_data_path); - else - strcat(absolute_path, getenv("MACAON_DIR")); - - strcat(absolute_path, "/"); - strcat(absolute_path, ctx->language); - strcat(absolute_path, "/bin/"); - - if(!ctx->perc_model_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_MODEL_FILENAME); ctx->perc_model_filename = strdup(absolute_filename); } if(!ctx->vocabs_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_VOCABS_FILENAME); ctx->vocabs_filename = strdup(absolute_filename); } /* if(!ctx->mcd_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_MULTI_COL_DESC_FILENAME); ctx->mcd_filename = strdup(absolute_filename); }*/ if(!ctx->features_model_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_FEATURES_MODEL_FILENAME); ctx->features_model_filename = strdup(absolute_filename); } diff --git a/maca_trans_parser/src/maca_trans_lemmatizer.c b/maca_trans_parser/src/maca_trans_lemmatizer.c index 2cda79f19eac2fbab8cb9c424e71c5841a2fdbac..6b71bc98401b1cf99efa3af21311af1bf374812e 100644 --- a/maca_trans_parser/src/maca_trans_lemmatizer.c +++ b/maca_trans_parser/src/maca_trans_lemmatizer.c @@ -28,22 +28,10 @@ void maca_lemmatizer_check_options(context *ctx){ void maca_lemmatizer_set_linguistic_resources_filenames(context *ctx) { - char absolute_path[500]; char absolute_filename[500]; - absolute_path[0] = '\0'; - - if(ctx->maca_data_path) - strcat(absolute_path, ctx->maca_data_path); - else - strcat(absolute_path, getenv("MACAON_DIR")); - - strcat(absolute_path, "/"); - strcat(absolute_path, ctx->language); - strcat(absolute_path, "/bin/"); - if(!ctx->fplm_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_FPLM_FILENAME); ctx->fplm_filename = strdup(absolute_filename); } diff --git a/maca_trans_parser/src/maca_trans_parser.c b/maca_trans_parser/src/maca_trans_parser.c index d48a4d8cbf776183706752f30b9b1ce5a0a4841e..3ecbcd4a0d74980a0b13ba6f8df7195db96411a8 100644 --- a/maca_trans_parser/src/maca_trans_parser.c +++ b/maca_trans_parser/src/maca_trans_parser.c @@ -40,43 +40,32 @@ void decode_check_options(context *ctx){ } } + + void set_linguistic_resources_filenames_parser(context *ctx) { - char absolute_path[500]; char absolute_filename[500]; - absolute_path[0] = '\0'; - - if(ctx->maca_data_path) - strcat(absolute_path, ctx->maca_data_path); - else - strcat(absolute_path, getenv("MACAON_DIR")); - - strcat(absolute_path, "/"); - strcat(absolute_path, ctx->language); - strcat(absolute_path, "/bin/"); - - if(!ctx->perc_model_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_MODEL_FILENAME); ctx->perc_model_filename = strdup(absolute_filename); } if(!ctx->vocabs_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_VOCABS_FILENAME); ctx->vocabs_filename = strdup(absolute_filename); } /* if(!ctx->mcd_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_MULTI_COL_DESC_FILENAME); ctx->mcd_filename = strdup(absolute_filename); }*/ if(!ctx->features_model_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_FEATURES_MODEL_FILENAME); ctx->features_model_filename = strdup(absolute_filename); } diff --git a/maca_trans_parser/src/maca_trans_tagger.c b/maca_trans_parser/src/maca_trans_tagger.c index db91da68724c1b4d0a20a8b5ff79f9d9585668f2..0bec1311ee5d70b0749ae260a9f80d83d46bf8fb 100644 --- a/maca_trans_parser/src/maca_trans_tagger.c +++ b/maca_trans_parser/src/maca_trans_tagger.c @@ -42,47 +42,34 @@ void decode_tagger_check_options(context *ctx){ void decode_tagger_set_linguistic_resources_filenames(context *ctx) { - char absolute_path[500]; char absolute_filename[500]; - - absolute_path[0] = '\0'; - - if(ctx->maca_data_path) - strcat(absolute_path, ctx->maca_data_path); - else - strcat(absolute_path, getenv("MACAON_DIR")); - - strcat(absolute_path, "/"); - strcat(absolute_path, ctx->language); - strcat(absolute_path, "/bin/"); - if(!ctx->perc_model_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_MODEL_TAGGER_FILENAME); ctx->perc_model_filename = strdup(absolute_filename); } if(!ctx->vocabs_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_VOCABS_TAGGER_FILENAME); ctx->vocabs_filename = strdup(absolute_filename); } /* if(!ctx->mcd_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_MULTI_COL_DESC_TAGGER_FILENAME); ctx->mcd_filename = strdup(absolute_filename); }*/ if(!ctx->features_model_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_FEATURES_MODEL_TAGGER_FILENAME); ctx->features_model_filename = strdup(absolute_filename); } if(!ctx->f2p_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_F2P_FILENAME); ctx->f2p_filename = strdup(absolute_filename); ctx->f2p = form2pos_read(ctx->f2p_filename); diff --git a/maca_trans_parser/src/maca_trans_tagparser.c b/maca_trans_parser/src/maca_trans_tagparser.c index 6f990743965dbd5192e90a14e0ed4dcf8fc154c9..608eea94e320da33d596966ead44950d07fb43d8 100644 --- a/maca_trans_parser/src/maca_trans_tagparser.c +++ b/maca_trans_parser/src/maca_trans_tagparser.c @@ -40,47 +40,34 @@ void decode_check_options(context *ctx){ void set_linguistic_resources_filenames_tagparser(context *ctx) { - char absolute_path[500]; char absolute_filename[500]; - absolute_path[0] = '\0'; - - if(ctx->maca_data_path) - strcat(absolute_path, ctx->maca_data_path); - else - strcat(absolute_path, getenv("MACAON_DIR")); - - strcat(absolute_path, "/"); - strcat(absolute_path, ctx->language); - strcat(absolute_path, "/bin/"); - - if(!ctx->perc_model_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_MODEL_TAGPARSER_FILENAME); ctx->perc_model_filename = strdup(absolute_filename); } if(!ctx->vocabs_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_VOCABS_TAGPARSER_FILENAME); ctx->vocabs_filename = strdup(absolute_filename); } /* if(!ctx->mcd_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_MULTI_COL_DESC_TAGPARSER_FILENAME); ctx->mcd_filename = strdup(absolute_filename); }*/ if(!ctx->features_model_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_FEATURES_MODEL_TAGPARSER_FILENAME); ctx->features_model_filename = strdup(absolute_filename); } if(!ctx->f2p_filename){ - strcpy(absolute_filename, absolute_path); + strcpy(absolute_filename, ctx->maca_data_path); strcat(absolute_filename, DEFAULT_F2P_FILENAME); ctx->f2p_filename = strdup(absolute_filename); ctx->f2p = form2pos_read(ctx->f2p_filename);