branch: elpa/emacsql commit 13cfbeeaba9462a9a111a3293cf6fddf1939a9bd Author: Christopher Wellons <well...@nullprogram.com> Commit: Christopher Wellons <well...@nullprogram.com>
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: