summaryrefslogtreecommitdiff
path: root/src/print.c
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2021-12-11 04:55:57 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2021-12-11 04:55:57 +0100
commit3d38d1d1345aa65c4018b42e6c648606e32216f8 (patch)
tree5e6b51f9aa79c6a2e7604934f3ffe9314db21c71 /src/print.c
parentaf1c5ec0fcd3f25234cfe2986c873ff2e5ed63a0 (diff)
downloademacs-3d38d1d1345aa65c4018b42e6c648606e32216f8.tar.gz
emacs-3d38d1d1345aa65c4018b42e6c648606e32216f8.tar.bz2
emacs-3d38d1d1345aa65c4018b42e6c648606e32216f8.zip
Add sqlite3 support to Emacs
* configure.ac: Add check for the sqlite library. * doc/lispref/text.texi (Database): Document it. * lisp/sqlite.el: New file. * lisp/term/w32-win.el (dynamic-library-alist): Add a mapping. * src/Makefile.in (SQLITE3_LIBS): Add the libraries. * src/alloc.c (union emacs_align_type): Add a Lisp_Sqlite struct. * src/data.c (Ftype_of): Add sqlite. * src/emacs.c (main): Load the syms. * src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN): Add PVEC_SQLITE. (GCALIGNED_STRUCT): New struct to keep data for sqlite database objects and statement objects. (SQLITEP, SQLITE, CHECK_SQLITE, XSQLITE): New macros for accessing the objects. * src/pdumper.c (dump_vectorlike): Update hash. (dump_vectorlike): Don't dump it. * src/print.c (print_vectorlike): Add a printer for the sqlite object. * src/sqlite.c: New file. * test/src/sqlite-tests.el: Add tests.
Diffstat (limited to 'src/print.c')
-rw-r--r--src/print.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/print.c b/src/print.c
index adadb289de0..214f1d12c11 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1875,6 +1875,22 @@ print_vectorlike (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag,
}
break;
#endif
+ case PVEC_SQLITE:
+ {
+ print_c_string ("#<sqlite ", printcharfun);
+ int i = sprintf (buf, "db=%p", XSQLITE (obj)->db);
+ strout (buf, i, i, printcharfun);
+ if (XSQLITE (obj)->is_statement)
+ {
+ i = sprintf (buf, " stmt=%p", XSQLITE (obj)->stmt);
+ strout (buf, i, i, printcharfun);
+ }
+ i = sprintf (buf, " name=%s", XSQLITE (obj)->name);
+ strout (buf, i, i, printcharfun);
+ printchar ('>', printcharfun);
+ }
+ break;
+
default:
emacs_abort ();
}