summaryrefslogtreecommitdiffstats
path: root/lib/libsqlite3/ext/misc/compress.c
diff options
context:
space:
mode:
authorsthen <sthen@openbsd.org>2016-09-23 09:21:58 +0000
committersthen <sthen@openbsd.org>2016-09-23 09:21:58 +0000
commit25e4f8ab5acd0ef40feec6767a572bebbbe294b3 (patch)
tree20197c0e46bb6d260f4a310b6d5dd73b8d826f01 /lib/libsqlite3/ext/misc/compress.c
parentremove usr.bin/sqlite3, it has moved back to ports (diff)
downloadwireguard-openbsd-25e4f8ab5acd0ef40feec6767a572bebbbe294b3.tar.xz
wireguard-openbsd-25e4f8ab5acd0ef40feec6767a572bebbbe294b3.zip
remove lib/libsqlite3, it has moved back to ports
Diffstat (limited to 'lib/libsqlite3/ext/misc/compress.c')
-rw-r--r--lib/libsqlite3/ext/misc/compress.c114
1 files changed, 0 insertions, 114 deletions
diff --git a/lib/libsqlite3/ext/misc/compress.c b/lib/libsqlite3/ext/misc/compress.c
deleted file mode 100644
index bf38d4c93cf..00000000000
--- a/lib/libsqlite3/ext/misc/compress.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-** 2014-06-13
-**
-** The author disclaims copyright to this source code. In place of
-** a legal notice, here is a blessing:
-**
-** May you do good and not evil.
-** May you find forgiveness for yourself and forgive others.
-** May you share freely, never taking more than you give.
-**
-******************************************************************************
-**
-** This SQLite extension implements SQL compression functions
-** compress() and uncompress() using ZLIB.
-*/
-#include "sqlite3ext.h"
-SQLITE_EXTENSION_INIT1
-#include <zlib.h>
-
-/*
-** Implementation of the "compress(X)" SQL function. The input X is
-** compressed using zLib and the output is returned.
-**
-** The output is a BLOB that begins with a variable-length integer that
-** is the input size in bytes (the size of X before compression). The
-** variable-length integer is implemented as 1 to 5 bytes. There are
-** seven bits per integer stored in the lower seven bits of each byte.
-** More significant bits occur first. The most significant bit (0x80)
-** is a flag to indicate the end of the integer.
-*/
-static void compressFunc(
- sqlite3_context *context,
- int argc,
- sqlite3_value **argv
-){
- const unsigned char *pIn;
- unsigned char *pOut;
- unsigned int nIn;
- unsigned long int nOut;
- unsigned char x[8];
- int rc;
- int i, j;
-
- pIn = sqlite3_value_blob(argv[0]);
- nIn = sqlite3_value_bytes(argv[0]);
- nOut = 13 + nIn + (nIn+999)/1000;
- pOut = sqlite3_malloc( nOut+5 );
- for(i=4; i>=0; i--){
- x[i] = (nIn >> (7*(4-i)))&0x7f;
- }
- for(i=0; i<4 && x[i]==0; i++){}
- for(j=0; i<=4; i++, j++) pOut[j] = x[i];
- pOut[j-1] |= 0x80;
- rc = compress(&pOut[j], &nOut, pIn, nIn);
- if( rc==Z_OK ){
- sqlite3_result_blob(context, pOut, nOut+j, sqlite3_free);
- }else{
- sqlite3_free(pOut);
- }
-}
-
-/*
-** Implementation of the "uncompress(X)" SQL function. The argument X
-** is a blob which was obtained from compress(Y). The output will be
-** the value Y.
-*/
-static void uncompressFunc(
- sqlite3_context *context,
- int argc,
- sqlite3_value **argv
-){
- const unsigned char *pIn;
- unsigned char *pOut;
- unsigned int nIn;
- unsigned long int nOut;
- int rc;
- int i;
-
- pIn = sqlite3_value_blob(argv[0]);
- nIn = sqlite3_value_bytes(argv[0]);
- nOut = 0;
- for(i=0; i<nIn && i<5; i++){
- nOut = (nOut<<7) | (pIn[i]&0x7f);
- if( (pIn[i]&0x80)!=0 ){ i++; break; }
- }
- pOut = sqlite3_malloc( nOut+1 );
- rc = uncompress(pOut, &nOut, &pIn[i], nIn-i);
- if( rc==Z_OK ){
- sqlite3_result_blob(context, pOut, nOut, sqlite3_free);
- }else{
- sqlite3_free(pOut);
- }
-}
-
-
-#ifdef _WIN32
-__declspec(dllexport)
-#endif
-int sqlite3_compress_init(
- sqlite3 *db,
- char **pzErrMsg,
- const sqlite3_api_routines *pApi
-){
- int rc = SQLITE_OK;
- SQLITE_EXTENSION_INIT2(pApi);
- (void)pzErrMsg; /* Unused parameter */
- rc = sqlite3_create_function(db, "compress", 1, SQLITE_UTF8, 0,
- compressFunc, 0, 0);
- if( rc==SQLITE_OK ){
- rc = sqlite3_create_function(db, "uncompress", 1, SQLITE_UTF8, 0,
- uncompressFunc, 0, 0);
- }
- return rc;
-}