Mercurial > molko
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; |