changeset 329:ea4a3af71c18

rpg: change save_stmt_next API
author David Demelier <markand@malikania.fr>
date Mon, 04 Oct 2021 13:30:09 +0200
parents 60a4f904da21
children e0657709fbe3
files src/libmlk-rpg/rpg/character.c src/libmlk-rpg/rpg/property.c src/libmlk-rpg/rpg/save.c src/libmlk-rpg/rpg/save.h tests/test-character.c
diffstat 5 files changed, 12 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/libmlk-rpg/rpg/character.c	Mon Oct 04 13:10:11 2021 +0200
+++ b/src/libmlk-rpg/rpg/character.c	Mon Oct 04 13:30:09 2021 +0200
@@ -98,9 +98,9 @@
 	assert(save_ok(s));
 
 	struct save_stmt stmt;
-	int ret;
+	enum save_stmt_errno ret;
 
-	if (save_stmt_init(s, &stmt, (const char *)assets_sql_character_load, "s", ch->name) < 0)
+	if (save_stmt_init(&stmt, s, (const char *)assets_sql_character_load, "s", ch->name) < 0)
 		return -1;
 
 	ret = save_stmt_next(&stmt, "iii i iiiiii",
@@ -114,9 +114,9 @@
 	    &ch->defbonus,
 	    &ch->agtbonus,
 	    &ch->luckbonus
-	);
+	) == SAVE_STMT_ROW;
 
 	save_stmt_finish(&stmt);
 
-	return 0;
+	return ret ? 0 : -1;
 }
--- a/src/libmlk-rpg/rpg/property.c	Mon Oct 04 13:10:11 2021 +0200
+++ b/src/libmlk-rpg/rpg/property.c	Mon Oct 04 13:30:09 2021 +0200
@@ -41,23 +41,15 @@
 	assert(save_ok(s));
 
 	struct save_stmt stmt;
-	int ret;
+	enum save_stmt_errno ret;
 
-	if (save_stmt_init(s, &stmt, (const char *)assets_sql_property_load, "s", p->key) < 0)
+	if (save_stmt_init(&stmt, s, (const char *)assets_sql_property_load, "s", p->key) < 0)
 		return -1;
 
-	switch (save_stmt_next(&stmt, "s", p->value, sizeof (p->value))) {
-	case SAVE_STMT_DONE:
-	case SAVE_STMT_ERROR:
-		ret = -1;
-		break;
-	default:
-		ret = 0;
-	}
-
+	ret = save_stmt_next(&stmt, "s", p->value, sizeof (p->value)) == SAVE_STMT_ROW;
 	save_stmt_finish(&stmt);
 
-	return ret;
+	return ret ? 0 : -1;
 }
 
 int
--- a/src/libmlk-rpg/rpg/save.c	Mon Oct 04 13:10:11 2021 +0200
+++ b/src/libmlk-rpg/rpg/save.c	Mon Oct 04 13:30:09 2021 +0200
@@ -241,10 +241,10 @@
 }
 
 int
-save_stmt_init(struct save *db, struct save_stmt *stmt, const char *sql, const char *args, ...)
+save_stmt_init(struct save_stmt *stmt, struct save *db, const char *sql, const char *args, ...)
 {
+	assert(stmt);
 	assert(save_ok(db));
-	assert(stmt);
 	assert(args);
 
 	va_list ap;
--- a/src/libmlk-rpg/rpg/save.h	Mon Oct 04 13:10:11 2021 +0200
+++ b/src/libmlk-rpg/rpg/save.h	Mon Oct 04 13:30:09 2021 +0200
@@ -64,7 +64,7 @@
 
 /* Prepared statements. */
 int
-save_stmt_init(struct save *, struct save_stmt *, const char *, const char *, ...);
+save_stmt_init(struct save_stmt *, struct save *, const char *, const char *, ...);
 
 enum save_stmt_errno
 save_stmt_next(struct save_stmt *, const char *, ...);
--- a/tests/test-character.c	Mon Oct 04 13:10:11 2021 +0200
+++ b/tests/test-character.c	Mon Oct 04 13:30:09 2021 +0200
@@ -52,7 +52,7 @@
 	};
 
 	GREATEST_ASSERT(save_open_path(&db, "test.db", SAVE_MODE_WRITE) == 0);
-	GREATEST_ASSERT(character_save(&ch, &db));
+	GREATEST_ASSERT(character_save(&ch, &db) == 0);
 
 	/* Restore. */
 	memset(&ch, 0, sizeof (ch));