aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/sqlite.el
diff options
context:
space:
mode:
authorF. Jason Park2024-03-10 20:13:42 -0700
committerEli Zaretskii2024-03-11 15:23:55 +0200
commitdb5915f30ba063b72b007d243fbd832e8a4e8961 (patch)
tree573d768e8ae5dc14ed813d1ee032a4d8de5e2831 /lisp/sqlite.el
parentfe491173e8f839653cb22eea63a7261f4aa1dca9 (diff)
downloademacs-db5915f30ba063b72b007d243fbd832e8a4e8961.tar.gz
emacs-db5915f30ba063b72b007d243fbd832e8a4e8961.zip
Fix 'with-sqlite-transaction'
* lisp/sqlite.el (with-sqlite-transaction): Tuck misplaced body of else form back into feature-test control structure whence it escaped. (Bug#67142) * test/lisp/sqlite-tests.el: New file to accompany test/src/sqlite-tests.el.
Diffstat (limited to 'lisp/sqlite.el')
-rw-r--r--lisp/sqlite.el7
1 files changed, 4 insertions, 3 deletions
diff --git a/lisp/sqlite.el b/lisp/sqlite.el
index 46e35ac18d8..efc5997fb5c 100644
--- a/lisp/sqlite.el
+++ b/lisp/sqlite.el
@@ -32,7 +32,8 @@
32If BODY completes normally, commit the changes and return 32If BODY completes normally, commit the changes and return
33the value of BODY. 33the value of BODY.
34If BODY signals an error, or transaction commit fails, roll 34If BODY signals an error, or transaction commit fails, roll
35back the transaction changes." 35back the transaction changes before allowing the signal to
36propagate."
36 (declare (indent 1) (debug (form body))) 37 (declare (indent 1) (debug (form body)))
37 (let ((db-var (gensym)) 38 (let ((db-var (gensym))
38 (func-var (gensym)) 39 (func-var (gensym))
@@ -48,8 +49,8 @@ back the transaction changes."
48 (setq ,res-var (funcall ,func-var)) 49 (setq ,res-var (funcall ,func-var))
49 (setq ,commit-var (sqlite-commit ,db-var)) 50 (setq ,commit-var (sqlite-commit ,db-var))
50 ,res-var) 51 ,res-var)
51 (or ,commit-var (sqlite-rollback ,db-var)))) 52 (or ,commit-var (sqlite-rollback ,db-var)))
52 (funcall ,func-var)))) 53 (funcall ,func-var)))))
53 54
54(provide 'sqlite) 55(provide 'sqlite)
55 56