comparison src/libmlk-rpg/rpg/save.c @ 411:d74f53299252

make: add basic GNU make support
author David Demelier <markand@malikania.fr>
date Fri, 07 Oct 2022 14:35:31 +0200
parents 460c78706989
children 7d2ebc334c8c
comparison
equal deleted inserted replaced
410:1bf7d6669f0a 411:d74f53299252
29 #include <core/sys.h> 29 #include <core/sys.h>
30 #include <core/util.h> 30 #include <core/util.h>
31 31
32 #include <assets/sql/init.h> 32 #include <assets/sql/init.h>
33 33
34 #include "rpg_p.h"
35 #include "property.h" 34 #include "property.h"
36 #include "save.h" 35 #include "save.h"
37 36
38 #define SQL_BEGIN "BEGIN EXCLUSIVE TRANSACTION" 37 #define SQL_BEGIN "BEGIN EXCLUSIVE TRANSACTION"
39 #define SQL_COMMIT "COMMIT" 38 #define SQL_COMMIT "COMMIT"
73 72
74 /* Ensure create and update dates are present. */ 73 /* Ensure create and update dates are present. */
75 for (size_t i = 0; i < UTIL_SIZE(table); ++i) { 74 for (size_t i = 0; i < UTIL_SIZE(table); ++i) {
76 if (property_load(&table[i].prop, db) < 0) { 75 if (property_load(&table[i].prop, db) < 0) {
77 sqlite3_close(db->handle); 76 sqlite3_close(db->handle);
78 return errorf(_("database not initialized correctly")); 77 return errorf("database not initialized correctly");
79 } 78 }
80 79
81 *table[i].date = strtoull(table[i].prop.value, NULL, 10); 80 *table[i].date = strtoull(table[i].prop.value, NULL, 10);
82 } 81 }
83 82
182 } 181 }
183 182
184 if (sqlite3_open_v2(path, (sqlite3**)&db->handle, flags, NULL) != SQLITE_OK) 183 if (sqlite3_open_v2(path, (sqlite3**)&db->handle, flags, NULL) != SQLITE_OK)
185 goto sqlite3_err; 184 goto sqlite3_err;
186 185
187 if (mode == SAVE_MODE_WRITE && execu(db, assets_sql_init) < 0) 186 if (mode == SAVE_MODE_WRITE && execu(db, assets_init) < 0)
188 goto sqlite3_err; 187 goto sqlite3_err;
189 188
190 return verify(db); 189 return verify(db);
191 190
192 sqlite3_err: 191 sqlite3_err:
266 enum save_stmt_errno ret = SAVE_STMT_ERROR; 265 enum save_stmt_errno ret = SAVE_STMT_ERROR;
267 266
268 switch (sqlite3_step(stmt->handle)) { 267 switch (sqlite3_step(stmt->handle)) {
269 case SQLITE_ROW: 268 case SQLITE_ROW:
270 va_start(ap, args); 269 va_start(ap, args);
271 270
272 if (extract(stmt, args, ap) == 0) 271 if (extract(stmt, args, ap) == 0)
273 ret = SAVE_STMT_ROW; 272 ret = SAVE_STMT_ROW;
274 273
275 va_end(ap); 274 va_end(ap);
276 break; 275 break;
277 case SQLITE_DONE: 276 case SQLITE_DONE:
278 ret = SAVE_STMT_DONE; 277 ret = SAVE_STMT_DONE;
279 break; 278 break;