branch: elpa/emacsql commit 2f606fdd2d522af09b1117e78f96fc44363a21b2 Author: Christopher Wellons <well...@nullprogram.com> Commit: Christopher Wellons <well...@nullprogram.com>
Fix with-transaction macro to return results. --- emacsql.el | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/emacsql.el b/emacsql.el index 3e6344d2f3..4905e14581 100644 --- a/emacsql.el +++ b/emacsql.el @@ -260,7 +260,8 @@ multiple times before the changes are committed." (declare (indent 1)) `(let ((emacsql--connection ,connection) (emacsql--completed nil) - (emacsql--transaction-level (1+ emacsql--transaction-level))) + (emacsql--transaction-level (1+ emacsql--transaction-level)) + (emacsql--result)) (unwind-protect (while (not emacsql--completed) (condition-case nil @@ -268,15 +269,16 @@ multiple times before the changes are committed." (when (= 1 emacsql--transaction-level) (emacsql emacsql--connection [:begin :transaction])) (let ((result (progn ,@body))) - (prog1 result - (when (= 1 emacsql--transaction-level) - (emacsql emacsql--connection [:commit])) - (setf emacsql--completed t)))) + (setf emacsql--result result) + (when (= 1 emacsql--transaction-level) + (emacsql emacsql--connection [:commit])) + (setf emacsql--completed t))) (emacsql-locked (emacsql emacsql--connection [:rollback]) (sleep-for 0.05)))) (when (and (= 1 emacsql--transaction-level) (not emacsql--completed)) - (emacsql emacsql--connection [:rollback]))))) + (emacsql emacsql--connection [:rollback]))) + emacsql--result)) (defmacro emacsql-thread (connection &rest statements) "Thread CONNECTION through STATEMENTS.