diff options
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 182 |
1 files changed, 0 insertions, 182 deletions
@@ -1,182 +0,0 @@ -/* - * This file is part of WordExtract. - * - * Copyright (C) 2009 Borisov Alexandr - * - * WordExtract is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * WordExtract is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with WordExtract. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <sys/stat.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "main.h" -#include "mainwin.h" -#include "dict.h" -#include "engparser.h" - -Language lang; -SaveOpt save_user_words = {2, 40}; -char optpath[PATH_LENGTH] = {0}; -char dictfile[PATH_LENGTH] = {0}; -char conffile[PATH_LENGTH] = {0}; - -static void fill_vars(); - -int main(int argc, char *argv[]) -{ - FILE *fdict; - - gtk_init(&argc, &argv); - fill_vars(); - dict = load_dict(); - lang = ENG; - create_main_window(); - gtk_widget_show(main_window); - gtk_main(); - - /*termination*/ - if (!(fdict = fopen(dictfile, "w"))) - perror(dictfile); - else { - save_dict(fdict, dict); - fclose(fdict); - } - if (dict_words.by_az) - free(dict_words.by_az); - if (user_words.by_az) - free(user_words.by_az); - if (dict) { - if (dict->lsibl) - free_words(dict->lsibl); - if (dict->rsibl) - free_words(dict->rsibl); - free(dict->word); - } - return 0; -} - -static void fill_vars() -{ - strcpy(optpath, getenv("HOME")); - strcat(optpath, OPT_FOLDER); - strcat(dictfile, optpath); - strcat(dictfile, DICT_FILE); - strcat(conffile, optpath); - strcat(conffile, CONF_FILE); - read_config(); -} - -void create_config(char *path) -{ - mode_t mode_0755 = S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH; - struct stat st; - FILE *conf; - char file[PATH_LENGTH] = {0}; - - if (stat(path, &st)) { - fprintf(stderr, "%s: Creating directory\n", path); - if (mkdir(path, mode_0755)) { - perror(path); - exit(1); - } - } - strcat(file, path); - strcat(file, CONF_FILE); - fprintf(stderr, "%s: Creating configuration file\n", file); - if (!(conf = fopen(file, "w"))) { - perror(file); - exit(1); - } - fclose(conf); -} - -void read_config() -{ - FILE *conf; - - if (!(conf = fopen(conffile, "r"))) { - perror(conffile); - create_config(optpath); - write_config(); - if (!(conf = fopen(dictfile, "r"))) { - perror(conffile); - exit(1); - } - } else { - char option[OPTION_LENGTH] = {0}; - char svalue[OPTION_LENGTH] = {0}; - while (fscanf(conf, "%s\t\t%s\n", option, svalue) != EOF) { - if (!strcmp(option, "columns")) { - save_user_words.columns = atoi(svalue); - } else if (!strcmp(option, "field")) { - save_user_words.col_width = atoi(svalue); - } else if (!strcmp(option, "language")) { - lang = atoi(svalue); - } else if (!strcmp(option, "exclude_with_capital")) { - excl_w_capital = atoi(svalue); - } else if (!strcmp(option, "lower_first_capital")) { - lower_first_capital = atoi(svalue); - } else if (!strcmp(option, "exclude_quoted")) { - quote.excl_symbolled = atoi(svalue); - } else if (!strcmp(option, "exclude_with_first_quote")) { - quote.excl_w_starting = atoi(svalue); - } else if (!strcmp(option, "exclude_with_middle_quote")) { - quote.excl_w_middle = atoi(svalue); - } else if (!strcmp(option, "exclude_part_after_quote")) { - quote.excl_word_after_symb = atoi(svalue); - } else if (!strcmp(option, "exclude_with_end_quote")) { - quote.excl_w_ending = atoi(svalue); - } else if (!strcmp(option, "exclude_hyphened")) { - hyphen.excl_symbolled = atoi(svalue); - } else if (!strcmp(option, "exclude_with_first_hyphen")) { - hyphen.excl_w_starting = atoi(svalue); - } else if (!strcmp(option, "exclude_with_middle_hyphen")) { - hyphen.excl_w_middle = atoi(svalue); - } else if (!strcmp(option, "exclude_part_after_hyphen")) { - hyphen.excl_word_after_symb = atoi(svalue); - } else if (!strcmp(option, "exclude_with_end_hyphen")) { - hyphen.excl_w_ending = atoi(svalue); - } - } - fclose(conf); - } -} - -void write_config() -{ - FILE *conf; - - if (!(conf = fopen(conffile, "w"))) - perror(conffile); - else { - fprintf(conf, "%s\t\t%d\n", "columns", save_user_words.columns); - fprintf(conf, "%s\t\t%d\n", "field", save_user_words.col_width); - fprintf(conf, "%s\t\t%d\n", "language", lang); - fprintf(conf, "%s\t\t%d\n", "exclude_with_capital", excl_w_capital); - fprintf(conf, "%s\t\t%d\n", "lower_first_capital", lower_first_capital); - fprintf(conf, "%s\t\t%d\n", "exclude_quoted", quote.excl_symbolled); - fprintf(conf, "%s\t\t%d\n", "exclude_with_first_quote", quote.excl_w_starting); - fprintf(conf, "%s\t\t%d\n", "exclude_with_middle_quote", quote.excl_w_middle); - fprintf(conf, "%s\t\t%d\n", "exclude_part_after_quote", quote.excl_word_after_symb); - fprintf(conf, "%s\t\t%d\n", "exclude_with_end_quote", quote.excl_w_ending); - fprintf(conf, "%s\t\t%d\n", "exclude_hyphened", hyphen.excl_symbolled); - fprintf(conf, "%s\t\t%d\n", "exclude_with_first_hyphen", hyphen.excl_w_starting); - fprintf(conf, "%s\t\t%d\n", "exclude_with_middle_hyphen", hyphen.excl_w_middle); - fprintf(conf, "%s\t\t%d\n", "exclude_part_after_hyphen", hyphen.excl_word_after_symb); - fprintf(conf, "%s\t\t%d\n", "exclude_with_end_hyphen", hyphen.excl_w_ending); - fclose(conf); - } -} - |
