From d102e028aee6571c0fd9dfd4074cfb3c15f4594e Mon Sep 17 00:00:00 2001 From: "Gabriel A. Giovanini" Date: Sat, 17 Feb 2024 11:41:23 +0100 Subject: ref: Refactor newer folder structure Create a lib dict and importer project. * dict: holds the main application * importer: code to read from source to a common database. * lib: shared code --- main.c | 104 ----------------------------------------------------------------- 1 file changed, 104 deletions(-) delete mode 100644 main.c (limited to 'main.c') diff --git a/main.c b/main.c deleted file mode 100644 index 026b4b5..0000000 --- a/main.c +++ /dev/null @@ -1,104 +0,0 @@ -#include -#include -#include -#include -#include "data.h" -#include "ui.h" - -#define BUF_SIZE 100 - -unsigned int count_lines(FILE* file); -int load_or_save_db(sqlite3 *pInMemory, const char *zFilename, int isSave); - -int main() { - Data *data = new_data(":memory:"); - bootstrap(data); - - setlocale(LC_ALL, ""); - noecho(); - cbreak(); - nonl(); - keypad(stdscr, TRUE); - initscr(); - - FILE *f = fopen("dict.txt", "r"); - unsigned int lines = count_lines(f); - fseek(f, 0, SEEK_SET); - - char * line = NULL; - size_t len = 0; - ssize_t read; - PROGRESS_BAR *bar = new_progress_bar(stdscr, lines); - while ((read = getline(&line, &len, f)) != -1) { - if (line[0] == '#' || line[0] == '\n') - continue; - - insert(data, line, read-1); - bar_step(bar, 1); - } - - move(2,0); - printw("Saving db..."); - refresh(); - load_or_save_db(data->db, "backup.db", 1); - - clear(); - refresh(); - - TEXT_BOX *box = new_text_box(stdscr, 10); - get_char(box); - - clear(); - refresh(); - - endwin(); - - free_data(data); - return 0; -} - -int load_or_save_db(sqlite3 *pInMemory, const char *zFilename, int isSave){ - int rc; /* Function return code */ - sqlite3 *pFile; /* Database connection opened on zFilename */ - sqlite3_backup *pBackup; /* Backup object used to copy data */ - sqlite3 *pTo; /* Database to copy to (pFile or pInMemory) */ - sqlite3 *pFrom; /* Database to copy from (pFile or pInMemory) */ - - rc = sqlite3_open(zFilename, &pFile); - if( rc==SQLITE_OK ){ - pFrom = (isSave ? pInMemory : pFile); - pTo = (isSave ? pFile : pInMemory); - - pBackup = sqlite3_backup_init(pTo, "main", pFrom, "main"); - if( pBackup ){ - (void)sqlite3_backup_step(pBackup, -1); - (void)sqlite3_backup_finish(pBackup); - } - rc = sqlite3_errcode(pTo); - } - - (void)sqlite3_close(pFile); - return rc; -} - -unsigned int count_lines(FILE* file) -{ - char buf[BUF_SIZE]; - unsigned int counter = 0; - for(;;) - { - size_t res = fread(buf, 1, BUF_SIZE, file); - if (ferror(file)) - return -1; - - size_t i; - for(i = 0; i < res; i++) - if (buf[i] == '\n') - counter++; - - if (feof(file)) - break; - } - - return counter; -} -- cgit v1.2.3