From 488bd3dd047409cf5a8ac0c6a6f15b2932e3249c Mon Sep 17 00:00:00 2001 From: Nigel Reed <nigel@nigelreed.net> Date: Sun, 4 May 2025 05:38:25 -0500 Subject: [PATCH] A few sqlite fixes. Add version to info screen. --- src/sbbs3/GNUmakefile | 10 ++++++++-- src/sbbs3/js_sqlite.c | 19 ++++++++++--------- src/sbbs3/main.cpp | 3 +++ src/sbbs3/sbbs.h | 1 + src/sbbs3/ver.cpp | 10 ++++++++++ 5 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/sbbs3/GNUmakefile b/src/sbbs3/GNUmakefile index 51b3d3fdd1..ed5bd75dc0 100644 --- a/src/sbbs3/GNUmakefile +++ b/src/sbbs3/GNUmakefile @@ -104,6 +104,14 @@ ifndef WITHOUT_MOSQUITTO endif endif endif +ifndef WITHOUT_SQLITE3 + ifneq ($(os), win32) + ifeq ($(shell pkg-config 'sqlite3' --exists && echo "yes"),yes) + CFLAGS += -DUSE_SQLITE3 + JS_LIBS += $(shell pkg-config sqlite3 --libs) + endif + endif +endif ifeq ($(shell pkg-config libarchive --exists && echo "yes"),yes) CFLAGS += $(shell pkg-config libarchive --cflags) FILE_LIBS = $(shell pkg-config libarchive --libs) @@ -122,8 +130,6 @@ else FILE_LIBS = -larchive endif -JS_LIBS += $(shell pkg-config --libs sqlite3) - include sbbsdefs.mk MT_CFLAGS += $(SBBSDEFS) $(SFTP-MT_CFLAGS) diff --git a/src/sbbs3/js_sqlite.c b/src/sbbs3/js_sqlite.c index 044cabdd8d..cb53ed2d58 100644 --- a/src/sbbs3/js_sqlite.c +++ b/src/sbbs3/js_sqlite.c @@ -300,14 +300,15 @@ static JSBool js_sqlite_get(JSContext *cx, JSObject *obj, jsid id, jsval *vp) return JS_TRUE; } -#define SQLITE_PROP_FLAGS JSPROP_ENUMERATE | JSPROP_READONLY +#define SQLITE_PROP_FLAGS JSPROP_ENUMERATE +#define SQLITE_PROP_ROFLAGS JSPROP_ENUMERATE | JSPROP_READONLY static jsSyncPropertySpec js_sqlite_properties[] = { /* name ,tinyid ,flags, ver */ - { "name", SQLITE_PROP_NAME, JSPROP_ENUMERATE | JSPROP_READONLY, 310}, - { "stmt", SQLITE_PROP_STMT, JSPROP_ENUMERATE, 310}, - { "debug", SQLITE_PROP_DEBUG, JSPROP_ENUMERATE, 310}, - { "errormsg", SQLITE_PROP_ERRORMSG, JSPROP_ENUMERATE | JSPROP_READONLY, 310}, + { "name", SQLITE_PROP_NAME, SQLITE_PROP_ROFLAGS, 321}, + { "stmt", SQLITE_PROP_STMT, JSPROP_ENUMERATE, 321}, + { "debug", SQLITE_PROP_DEBUG, JSPROP_ENUMERATE, 321}, + { "errormsg", SQLITE_PROP_ERRORMSG, SQLITE_PROP_ROFLAGS, 321}, {0} }; @@ -325,13 +326,13 @@ static char* sqlite_prop_desc[] = { static jsSyncMethodSpec js_sqlite_functions[] = { {"open", js_open, 1, JSTYPE_BOOLEAN, JSDOCSTR("Open the database") , JSDOCSTR("open the sqlite3 database") - , 310}, + , 321}, {"close", js_close, 0, JSTYPE_VOID, JSDOCSTR("") , JSDOCSTR("close database") - , 310}, + , 321}, {"exec", js_exec, 0, JSTYPE_BOOLEAN, JSDOCSTR("") , JSDOCSTR("exec the sql query on database") - , 310}, + , 321}, {0} }; @@ -413,7 +414,7 @@ js_sqlite_constructor(JSContext* cx, uintN argc, jsval *arglist) #ifdef BUILD_JSDOCS js_DescribeSyncObject(cx, obj, "Can used to manipulate sqlite database" - , 310 + , 321 ); js_DescribeSyncConstructor(cx, obj, "To create a new Sqlite object: <tt>var f = new Sqlite(<i>filename</i>)</tt>"); js_CreateArrayOfStrings(cx, obj, "_property_desc_list", sqlite_prop_desc, JSPROP_READONLY); diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 18a9b2ac72..6eed7f4136 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -1633,9 +1633,12 @@ extern "C" bool js_CreateCommonObjects(JSContext* js_cx if (js_CreateMQTTClass(js_cx, *glob) == NULL) break; #endif + +#if defined USE_SQLITE3 /* Sqlite Class */ if(js_CreateSqliteClass(js_cx, *glob)==NULL) break; +#endif /* Area Objects */ if (!js_CreateUserObjects(js_cx, *glob, cfg, /* user: */ NULL, client, startup == NULL ? NULL :startup->web_file_vpath_prefix, /* subscan: */ NULL, mqtt)) diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index e5f947feb5..58a10613f2 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -1559,6 +1559,7 @@ extern "C" { /* js_sqlite.c */ DLLEXPORT JSObject* js_CreateSqliteClass(JSContext* cx, JSObject* parent); + DLLEXPORT JSObject* js_CreateMQTTClass(JSContext*, JSObject* parent); #endif diff --git a/src/sbbs3/ver.cpp b/src/sbbs3/ver.cpp index ca73fdaa87..a0ab755845 100644 --- a/src/sbbs3/ver.cpp +++ b/src/sbbs3/ver.cpp @@ -27,6 +27,9 @@ #include "git_branch.h" #include "ver.h" #include <archive.h> +#ifdef USE_SQLITE3 +#include <sqlite3.h> +#endif #ifdef __cplusplus extern "C" { @@ -140,6 +143,13 @@ void sbbs_t::ver() CRLF; #endif +#ifdef USE_SQLITE3 + safe_snprintf(str, sizeof(str), "libsqlite3 %s (%u)", SQLITE_VERSION, SQLITE_VERSION_NUMBER); + term->center(str); + CRLF; +#endif + + safe_snprintf(str, sizeof(str), "%s %s", os_version(os, sizeof(os)), os_cpuarch(cpu, sizeof(cpu))); term->center(str); } -- GitLab