branch: elpa/emacsql
commit c8de0ff1fda3358e696eb588f83d24ae6f26384a
Author: Christopher Wellons <[email protected]>
Commit: Christopher Wellons <[email protected]>
Adjust the EmacSQL protocol.
---
emacsql.el | 4 +++-
sqlite/emacsql.c | 9 ++++++---
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/emacsql.el b/emacsql.el
index 38964c8d07..82d3b7eabe 100644
--- a/emacsql.el
+++ b/emacsql.el
@@ -213,7 +213,9 @@ specific error conditions."
(value (read)))
(if (eql value 'error)
(emacsql-handle connection (read) (read))
- value))))
+ (prog1 value
+ (unless (eq 'success (read))
+ (emacsql-handle connection (read) (read))))))))
(provide 'emacsql) ; end of generic function declarations
diff --git a/sqlite/emacsql.c b/sqlite/emacsql.c
index 34b3481c10..884c4d2fe6 100644
--- a/sqlite/emacsql.c
+++ b/sqlite/emacsql.c
@@ -165,9 +165,12 @@ int main(int argc, char **argv) {
}
printf(")\n");
if (sqlite3_finalize(stmt) != SQLITE_OK) {
- fprintf(stderr, "error %d: %s\n",
- sqlite3_errcode(db), sqlite3_errmsg(db));
- exit(EXIT_FAILURE);
+ /* Despite any error code, the statement is still freed.
+ * http://stackoverflow.com/a/8391872
+ */
+ send_error(sqlite3_errcode(db), sqlite3_errmsg(db));
+ } else {
+ printf("success\n");
}
}
buffer_free(input);