diff options
author | Po Lu <luangruo@yahoo.com> | 2021-12-12 21:40:17 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2021-12-12 21:40:17 +0800 |
commit | 2de147e93c69a3ae2c74b5264ab5c6e46598ac31 (patch) | |
tree | 90d45568a83b72f66e2246b1de64818f9e6d4a90 /lisp/sqlite.el | |
parent | 87cdc6369acc7ae8537d9156e8231821e3378c9a (diff) | |
parent | 0ee1a46e6c7fa159584a9c04f5ab9bf694d6de3b (diff) | |
download | emacs-2de147e93c69a3ae2c74b5264ab5c6e46598ac31.tar.gz emacs-2de147e93c69a3ae2c74b5264ab5c6e46598ac31.tar.bz2 emacs-2de147e93c69a3ae2c74b5264ab5c6e46598ac31.zip |
Merge remote-tracking branch 'origin/master' into feature/pgtk
Diffstat (limited to 'lisp/sqlite.el')
-rw-r--r-- | lisp/sqlite.el | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lisp/sqlite.el b/lisp/sqlite.el index dccdda16ac0..6d32a0468f3 100644 --- a/lisp/sqlite.el +++ b/lisp/sqlite.el @@ -26,16 +26,17 @@ (defmacro with-sqlite-transaction (db &rest body) "Execute BODY while holding a transaction for DB." (declare (indent 1) (debug (form body))) - (let ((db-var (gensym))) - `(let ((,db-var ,db)) + (let ((db-var (gensym)) + (func-var (gensym))) + `(let ((,db-var ,db) + (,func-var (lambda () ,@body))) (if (sqlite-available-p) (unwind-protect (progn (sqlite-transaction ,db-var) - ,@body) + (funcall ,func-var)) (sqlite-commit ,db-var)) - (progn - ,@body))))) + (funcall ,func-var))))) (provide 'sqlite) |