41,42,43,44, 45,46,47,48, 49,50,51,ND, ND,ND,ND,ND
};
-static const char b64Numerals[64]
+static const char b64Numerals[64+1]
= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
#define BX_DV_PROTO(c) ((((ubyte)(c))<0x80)? b64DigitValues[c] : 0x80)
**
** Presently, it combines the base64.c and base85.c extensions. However,
** it can be used as a template for other combinations.
+**
+** Example usages:
+**
+** - Build a runtime-loadable extension from SQLite checkout directory:
+** *Nix, OSX: gcc -O2 -shared -I. -fPIC -o basexx.so ext/misc/basexx.c
+** Win32: cl /Os -I. ext/misc/basexx.c -link -dll -out:basexx.dll
+**
+** - Incorporate as built-in in sqlite3 shell:
+** *Nix, OSX with gcc on a like platform:
+** export mop1=-DSQLITE_SHELL_EXTSRC=ext/misc/basexx.c
+** export mop2=-DSQLITE_SHELL_EXTFUNCS=BASEXX
+** make sqlite3 "OPTS=$mop1 $mop2"
+** Win32 with Microsoft toolset on Windows:
+** set mop1=-DSQLITE_SHELL_EXTSRC=ext/misc/basexx.c
+** set mop2=-DSQLITE_SHELL_EXTFUNCS=BASEXX
+** set mops="OPTS=%mop1% %mop2%"
+** nmake -f Makefile.msc sqlite3.exe %mops%
*/
#ifndef SQLITE_SHELL_EXTFUNCS /* Guard for #include as built-in extension. */
#define sqlite3_base_init sqlite3_base85_init
#include "base85.c"
-static int sqlite3_basexx_init(sqlite3 *db, char **pzErr,
+#ifdef _WIN32
+__declspec(dllexport)
+#endif
+int sqlite3_basexx_init(sqlite3 *db, char **pzErr,
const sqlite3_api_routines *pApi){
init_api_ptr(pApi);
int rc1 = BASE64_INIT(db);
-C Fix\sa\sbase64\sdecode\sbug.\sProvide\sfor\sconvenient\sinclusion\sof\sextension(s)\sbuilt\sinto\sthe\sCLI,\sto\ssimplify\stesting\sand\sfor\sits\sown\ssake.\sImprove\scomments.\sCure\scollision\sbetween\sbase64.c\sand\sbase85.c\swhen\sboth\sare\sin\sthe\ssame\stranslation\sunit.
-D 2022-11-21T00:11:09.323
+C Get\sclean\sbuilds\sfor\sMS\stools.\sAdd\sbuild\sexamples\sfor\sextension\sglommer\s(basexx.c)\nMake\ssure\sextensions\sbuild\sfor\sdynamic\sload\sand\sbuilt\sinto\sshell.
+D 2022-11-21T02:18:12.614
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/misc/amatch.c e3ad5532799cee9a97647f483f67f43b38796b84b5a8c60594fe782a4338f358
F ext/misc/anycollseq.c 5ffdfde9829eeac52219136ad6aa7cd9a4edb3b15f4f2532de52f4a22525eddb
F ext/misc/appendvfs.c 9642c7a194a2a25dca7ad3e36af24a0a46d7702168c4ad7e59c9f9b0e16a3824
-F ext/misc/base64.c 05da915d991f24e59515d0566f9a206c338032410d42472a3d9348da8bc166f9
+F ext/misc/base64.c e611e8ce552b16251c1691191d95912f9e03400637311dbd458062d2d0b95e2a
F ext/misc/base85.c 2c680ca7733f9a86f5d292fec71d10777290e68e7ae59d90597ae75fc44a88b6
-F ext/misc/basexx.c d32037f1414d9da11e0be334395cd4d82438b756933c99fc4075b6346cd11fd2
+F ext/misc/basexx.c 678dcc83894f78c26fd3662b322886777cc26bf2b40809236cd2abdad532a33c
F ext/misc/blobio.c a867c4c4617f6ec223a307ebfe0eabb45e0992f74dd47722b96f3e631c0edb2a
F ext/misc/btreeinfo.c d28ce349b40054eaa9473e835837bad7a71deec33ba13e39f963d50933bfa0f9
F ext/misc/carray.c b752f46411e4e47e34dce6f0c88bc8e51bb821ba9e49bfcd882506451c928f69
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 5cc1fe1ddc2a33c59d3c006057e474c7c7975c483395ddea530df6968fe15341
-R 0260a27c5340f9b412a0f6e0981a0d6d
+P 07543d23a98c2a851393a2674e59d3cf1df37c244fb451cb7436f49c95c1423f
+R 1b52ba3002b9af5fda34f27079570bff
U larrybr
-Z 18487c3a1bcdc27a89418b38ad3e3f97
+Z 7a2c313c3d99c0b1eaaafc6ea380893a
# Remove this line to create a well-formed Fossil manifest.
-07543d23a98c2a851393a2674e59d3cf1df37c244fb451cb7436f49c95c1423f
\ No newline at end of file
+da940d507e9e31a84daedede44a56f743198d7258a9e83892511fe8dd4c78d2b
\ No newline at end of file