[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/emacsql 031ec59f18 048/427: Add combine function to with-v
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/emacsql 031ec59f18 048/427: Add combine function to with-vars macro. |
Date: |
Tue, 13 Dec 2022 02:59:27 -0500 (EST) |
branch: elpa/emacsql
commit 031ec59f18471b0511d3acc2d5fb97e4d2c03430
Author: Christopher Wellons <wellons@nullprogram.com>
Commit: Christopher Wellons <wellons@nullprogram.com>
Add combine function to with-vars macro.
---
emacsql.el | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/emacsql.el b/emacsql.el
index 97d2638a52..faa727a17d 100644
--- a/emacsql.el
+++ b/emacsql.el
@@ -375,14 +375,22 @@ KIND should be :value or :identifier."
(:auto (emacsql-escape-format
thing (if (symbolp thing) :identifier :value))))))
+(defun emacsql--vars-combine (expanded)
+ "Only use within `emacsql-with-vars'!"
+ (cl-destructuring-bind (string . vars) expanded
+ (setf emacsql--vars (nconc emacsql--vars vars))
+ string))
+
(defmacro emacsql-with-vars (prefix &rest body)
- "Evaluate BODY, collecting variables with `var'.
+ "Evaluate BODY, collecting variables with `var' and `combine'.
BODY should return a string, which will be combined with variable
definitions for return from a `emacsql-defexpander'."
(declare (indent 1))
`(let ((emacsql--vars ()))
(cl-letf (((emacsql-symbol-function 'var)
- (symbol-function 'emacsql--vars-collect)))
+ (symbol-function 'emacsql--vars-collect))
+ ((emacsql-symbol-function 'combine)
+ (symbol-function 'emacsql--vars-combine)))
(cons (concat ,prefix (progn ,@body)) emacsql--vars))))
;; SQL Expansion Functions:
- [nongnu] elpa/emacsql a1ce9f16f2 097/427: Add emacsql-with-connection back in., (continued)
- [nongnu] elpa/emacsql a1ce9f16f2 097/427: Add emacsql-with-connection back in., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 7cfed08ab8 099/427: Add docstring to emacsql--log., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql da9797e948 098/427: Add a system-level test., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql bd6e02db55 104/427: Be much more strict with identifiers., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 682c1816fb 111/427: Add optional font-locking., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 3eb06cdd73 114/427: Add GROUP BY expander., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql e08094c78f 058/427: More precise parsing., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql b9599f1f41 066/427: Spelling error., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql f410b5d663 068/427: Fix spelling error., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql b3110c9fa9 018/427: Rename .sqlite to .db., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 031ec59f18 048/427: Add combine function to with-vars macro.,
ELPA Syncer <=
- [nongnu] elpa/emacsql f9820deed7 056/427: Add unary operators., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql f9c562b0a4 069/427: Add SQLite link., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 43ecb5a252 071/427: Tweak README names., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 58e31aa3a9 079/427: Add :update and :set expanders., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql c9aab20d47 082/427: Add in operator (special case operator)., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 25f9817064 094/427: Add work-in-progress note back., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 03295cba37 119/427: Add ORDER BY expanders., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql d1c0904564 120/427: Fix missing quotes., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 4718ff4e89 122/427: Simplify all the expanders with new local functions., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 54247e4b5e 127/427: Add another insertion unit test., ELPA Syncer, 2022/12/13