diff options
Diffstat (limited to '')
-rw-r--r-- | database.h | 10 | ||||
-rw-r--r-- | unscoop.c | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/database.h b/database.h index 3247fee..038ce70 100644 --- a/database.h +++ b/database.h @@ -94,6 +94,16 @@ static inline sqlite3 *dbFind(int flags) { return NULL; } +static inline void dbBegin(sqlite3 *db) { + int error = sqlite3_exec(db, "BEGIN TRANSACTION;", NULL, NULL, NULL); + if (error) errx(EX_SOFTWARE, "sqlite3_exec: %s", sqlite3_errmsg(db)); +} + +static inline void dbCommit(sqlite3 *db) { + int error = sqlite3_exec(db, "COMMIT TRANSACTION;", NULL, NULL, NULL); + if (error) errx(EX_SOFTWARE, "sqlite3_exec: %s", sqlite3_errmsg(db)); +} + static inline sqlite3_stmt * dbPrepare(sqlite3 *db, unsigned flags, const char *sql) { sqlite3_stmt *stmt; diff --git a/unscoop.c b/unscoop.c index be57128..73beeb1 100644 --- a/unscoop.c +++ b/unscoop.c @@ -187,6 +187,7 @@ int main(int argc, char *argv[]) { FILE *file = fopen(argv[i], "r"); if (!file) err(EX_NOINPUT, "%s", argv[i]); + dbBegin(db); ssize_t len; while (0 < (len = getline(&line, &cap, file))) { for (size_t i = 0; i < format->len; ++i) { @@ -241,6 +242,7 @@ int main(int argc, char *argv[]) { } if (ferror(file)) err(EX_IOERR, "%s", argv[i]); fclose(file); + dbCommit(db); } printf("\n"); |