emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/emacsql dbf0598731 087/427: Add "-interactive" argument (f


From: ELPA Syncer
Subject: [nongnu] elpa/emacsql dbf0598731 087/427: Add "-interactive" argument (fixes #1).
Date: Tue, 13 Dec 2022 02:59:31 -0500 (EST)

branch: elpa/emacsql
commit dbf059873163875b4388c595d53fe13e6738ca8d
Author: Christopher Wellons <wellons@nullprogram.com>
Commit: Christopher Wellons <wellons@nullprogram.com>

    Add "-interactive" argument (fixes #1).
---
 README.md  |  4 +---
 emacsql.el | 14 ++++++++++----
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index d2afd93818..4ea29cb555 100644
--- a/README.md
+++ b/README.md
@@ -12,9 +12,7 @@ Emacsql, including numbers, strings, symbols, lists, vectors, 
and
 closures. Emacsql has no concept of "TEXT" values; it's all just lisp
 objects.
 
-Requires Emacs 24 or later. Currently Windows is unsupported due to a
-mysterious process communication issue, a bug either in Emacs or
-SQLite. Can you help solve this issue ([#1][issue-1])?
+Requires Emacs 24 or later.
 
 ## Example Usage
 
diff --git a/emacsql.el b/emacsql.el
index 1fde40847e..c73bfe6d92 100644
--- a/emacsql.el
+++ b/emacsql.el
@@ -67,9 +67,12 @@
 
 (require 'cl-lib)
 
-(defvar emacsql-sqlite-executable "sqlite3"
+(defvar emacsql-sqlite3-executable "sqlite3"
   "Path to the sqlite3 executable.")
 
+(defvar emacsql-sqlite3-args '("-interactive")
+  "Additional arguments to pass to sqlite3.")
+
 (cl-defstruct (emacsql (:constructor emacsql--create))
   "A connection to a SQLite database."
   process file log)
@@ -99,14 +102,17 @@ If FILE is nil use an in-memory database.
 buffer. This is for debugging purposes."
   (emacsql-start-reap-timer)
   (let* ((buffer (generate-new-buffer "*emacsql-connection*"))
-         (process (start-process "emacsql" buffer emacsql-sqlite-executable
-                                 (or file ":memory:"))))
+         (fullfile (if file (expand-file-name file) ":memory:"))
+         (args emacsql-sqlite3-args)
+         (sqlite3 emacsql-sqlite3-executable)
+         (process (apply #'start-process "emacsql" buffer sqlite3
+                         (append args (list fullfile)))))
     (setf (process-sentinel process) (lambda (_proc _) (kill-buffer buffer)))
     (set-process-coding-system process 'utf-8-unix 'utf-8-unix)
     (process-send-string process ".prompt #\n")
     (process-send-string process ".mode line\n")
     (process-send-string process ".nullvalue nil\n")
-    (let ((conn (emacsql--create :process process :file file)))
+    (let ((conn (emacsql--create :process process :file (when file fullfile))))
       (when log
         (setf (emacsql-log conn) (generate-new-buffer "*emacsql-log*")))
       (prog1 conn



reply via email to

[Prev in Thread] Current Thread [Next in Thread]