branch: elpa/emacsql
commit 13cfbeeaba9462a9a111a3293cf6fddf1939a9bd
Author: Christopher Wellons <[email protected]>
Commit: Christopher Wellons <[email protected]>
Tidy up the constructors.
---
emacsql-psql.el | 33 ++++++++++++++++-----------------
emacsql-sqlite.el | 32 +++++++++++++++-----------------
emacsql.el | 5 +++--
3 files changed, 34 insertions(+), 36 deletions(-)
diff --git a/emacsql-psql.el b/emacsql-psql.el
index ea6358e371..fe697ff855 100644
--- a/emacsql-psql.el
+++ b/emacsql-psql.el
@@ -57,23 +57,22 @@
(connection (make-instance 'emacsql-psql-connection
:process process
:dbname dbname)))
- (prog1 connection
- (setf (process-sentinel process)
- (lambda (proc _) (kill-buffer (process-buffer proc))))
- (when debug
- (setf (emacsql-log-buffer connection)
- (generate-new-buffer "*emacsql-log*")))
- (emacsql-register connection)
- (mapc (lambda (s) (emacsql-send-string connection s :no-log))
- '("\\pset pager off"
- "\\pset null nil"
- "\\a"
- "\\t"
- "\\f ' '"
- "SET client_min_messages TO ERROR;"
- "\\set PROMPT1 ]"
- "EMACSQL;")) ; error message flush
- (emacsql-wait connection)))))
+ (setf (process-sentinel process)
+ (lambda (proc _) (kill-buffer (process-buffer proc))))
+ (when debug
+ (setf (emacsql-log-buffer connection)
+ (generate-new-buffer "*emacsql-log*")))
+ (mapc (lambda (s) (emacsql-send-string connection s :no-log))
+ '("\\pset pager off"
+ "\\pset null nil"
+ "\\a"
+ "\\t"
+ "\\f ' '"
+ "SET client_min_messages TO ERROR;"
+ "\\set PROMPT1 ]"
+ "EMACSQL;")) ; error message flush
+ (emacsql-wait connection)
+ (emacsql-register connection))))
(defmethod emacsql-close ((connection emacsql-psql-connection))
(let ((process (emacsql-process connection)))
diff --git a/emacsql-sqlite.el b/emacsql-sqlite.el
index 06165cc714..1274898c62 100644
--- a/emacsql-sqlite.el
+++ b/emacsql-sqlite.el
@@ -50,25 +50,23 @@ buffer. This is for debugging purposes."
(fullfile (if file (expand-file-name file) ":memory:"))
(sqlite3 emacsql-sqlite3-executable)
(process (start-process "emacsql-sqlite" buffer sqlite3
- "-interactive" fullfile)))
+ "-interactive" fullfile))
+ (connection (make-instance 'emacsql-sqlite-connection
+ :process process
+ :file (when file fullfile))))
(setf (process-sentinel process)
(lambda (proc _) (kill-buffer (process-buffer proc))))
- (process-send-string process ".mode list\n")
- (process-send-string process ".separator ' '\n")
- (process-send-string process ".nullvalue nil\n")
- (process-send-string process ".prompt ]\n")
- (process-send-string process "EMACSQL;\n") ;; error message flush
- (let ((connection (make-instance
- 'emacsql-sqlite-connection
- :process process
- :file (when file fullfile)
- :log-buffer )))
- (prog1 connection
- (when debug
- (setf (emacsql-log-buffer connection)
- (generate-new-buffer "*emacsql-log*")))
- (emacsql-wait connection)
- (emacsql-register connection)))))
+ (mapc (lambda (s) (emacsql-send-string connection s :no-log))
+ '(".mode list"
+ ".separator ' '"
+ ".nullvalue nil"
+ ".prompt ]"
+ "EMACSQL;")) ; error message flush
+ (when debug
+ (setf (emacsql-log-buffer connection)
+ (generate-new-buffer "*emacsql-log*")))
+ (emacsql-wait connection)
+ (emacsql-register connection)))
;;;###autoload
(defalias 'emacsql-connect 'emacsql-sqlite)
diff --git a/emacsql.el b/emacsql.el
index 47687f6e3c..623c340a25 100644
--- a/emacsql.el
+++ b/emacsql.el
@@ -196,8 +196,9 @@ specific error conditions."
;; Automatic connection cleanup:
(defun emacsql-register (connection)
- "Add CONNECTION to the global connection list."
- (emacsql-reap-register connection #'emacsql-close (copy-sequence
connection)))
+ "Register CONNECTION for automatic cleanup and return CONNECTION."
+ (emacsql-reap-register connection #'emacsql-close (copy-sequence connection))
+ connection)
;; Useful macros: