aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c104
1 files changed, 0 insertions, 104 deletions
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 <locale.h>
-#include <stdio.h>
-#include <sqlite3.h>
-#include <ncurses.h>
-#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;
-}