1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-06-29 01:45:34 +00:00

[smjs local storage] changes from comments PR #97

This commit is contained in:
nobody@earth.com 2021-02-23 21:32:00 +01:00
parent a19b95f20c
commit 60211fdd41
2 changed files with 22 additions and 47 deletions

View File

@ -19,7 +19,6 @@ db_prepare_structure(char *db_name)
sqlite3 *db;
int rc;
char *sqlbuffer;
rc = sqlite3_open(db_name, &db);
if (rc)
@ -28,9 +27,8 @@ db_prepare_structure(char *db_name)
rc=sqlite3_close(db);
return(-1);
}
sqlite3_busy_timeout(db, 5000);
sqlbuffer=stracpy("CREATE TABLE storage (key TEXT, value TEXT);");
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
sqlite3_busy_timeout(db, 2000);
rc=sqlite3_prepare_v2(db, "CREATE TABLE storage (key TEXT, value TEXT);", -1, &stmt, NULL);
rc=sqlite3_step(stmt);
rc=sqlite3_finalize(stmt);
rc=sqlite3_close(db);
@ -45,7 +43,6 @@ db_delete_from(char *db_name, char *key)
sqlite3 *db;
int rc;
char *sqlbuffer;
int affected_rows = 0;
rc = sqlite3_open(db_name, &db);
@ -55,9 +52,8 @@ db_delete_from(char *db_name, char *key)
rc=sqlite3_close(db);
return(-1);
}
sqlite3_busy_timeout(db, 5000);
sqlbuffer=stracpy("DELETE FROM storage WHERE key = ?;");
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
sqlite3_busy_timeout(db, 2000);
rc=sqlite3_prepare_v2(db, "DELETE FROM storage WHERE key = ?;", -1, &stmt, NULL);
rc=sqlite3_bind_text(stmt, 1, key, strlen(key), SQLITE_STATIC);
rc=sqlite3_step(stmt);
rc=sqlite3_finalize(stmt);
@ -75,18 +71,16 @@ db_insert_into(char *db_name, char *key, char *value)
sqlite3 *db;
int rc;
char *sqlbuffer;
int affected_rows = 0;
rc = sqlite3_open(db_name, &db);
if (rc) {
//DBG("Error opening localStorage database.");
rc=sqlite3_close(db);
return("");
return(-1);
}
sqlite3_busy_timeout(db, 5000);
sqlbuffer=stracpy("INSERT INTO storage (value,key) VALUES (?,?);");
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
sqlite3_busy_timeout(db, 2000);
rc=sqlite3_prepare_v2(db, "INSERT INTO storage (value,key) VALUES (?,?);", -1, &stmt, NULL);
rc=sqlite3_bind_text(stmt, 1, value, strlen(value), SQLITE_STATIC);
rc=sqlite3_bind_text(stmt, 2, key, strlen(key), SQLITE_STATIC);
rc=sqlite3_step(stmt);
@ -105,19 +99,16 @@ db_update_set(char *db_name, char *key, char *value)
sqlite3 *db;
int rc;
char sqlbuffer[8192];
char result[8192];
int affected_rows = 0;
rc = sqlite3_open(db_name, &db);
if (rc) {
//DBG("Error opening localStorage database.");
rc=sqlite3_close(db);
return("");
return(-1);
}
sqlite3_busy_timeout(db, 5000);
snprintf(sqlbuffer, 256, "UPDATE storage SET value = ? where key = ?;");
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
sqlite3_busy_timeout(db, 2000);
rc=sqlite3_prepare_v2(db, "UPDATE storage SET value = ? where key = ?;", -1, &stmt, NULL);
rc=sqlite3_bind_text(stmt, 1, value, strlen(value), SQLITE_STATIC);
rc=sqlite3_bind_text(stmt, 2, key, strlen(key), SQLITE_STATIC);
rc=sqlite3_step(stmt);
@ -136,15 +127,8 @@ db_query_by_value(char *db_name, char *value)
sqlite3 *db;
int rc;
char *sqlbuffer;
char *result;
rc = sqlite3_open(db_name, &db);
if (rc) {
//DBG("Error opening localStorage database.");
rc=sqlite3_close(db);
return("");
}
rc = sqlite3_open(db_name, &db);
if (rc)
{
@ -153,9 +137,8 @@ db_query_by_value(char *db_name, char *value)
return("");
}
sqlite3_busy_timeout(db, 2000);
sqlbuffer=stracpy("SELECT * FROM storage WHERE value like ?;");
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
rc=sqlite3_bind_text(stmt, 1, value, strlen(value) + 1, SQLITE_STATIC);
rc=sqlite3_prepare_v2(db, "SELECT key FROM storage WHERE value = ?;", -1, &stmt, NULL);
rc=sqlite3_bind_text(stmt, 1, value, strlen(value), SQLITE_STATIC);
while (sqlite3_step(stmt) == SQLITE_ROW) {
if ((const char*) sqlite3_column_text(stmt,1)!= NULL) {
result=stracpy((const char *)sqlite3_column_text(stmt, 1));
@ -178,7 +161,6 @@ db_query_by_key(char *db_name, char *key)
sqlite3 *db;
int rc;
char *sqlbuffer;
char *result;
rc = sqlite3_open(db_name, &db);
@ -189,15 +171,13 @@ db_query_by_key(char *db_name, char *key)
return("");
}
sqlite3_busy_timeout(db, 2000);
sqlbuffer=stracpy("SELECT * FROM storage WHERE key like ?;");
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
rc=sqlite3_bind_text(stmt, 1, key, strlen(key) + 1, SQLITE_STATIC);
rc=sqlite3_prepare_v2(db, "SELECT * FROM storage WHERE key = ?;", -1, &stmt, NULL);
rc=sqlite3_bind_text(stmt, 1, key, strlen(key), SQLITE_STATIC);
result=stracpy("");
while (sqlite3_step(stmt) == SQLITE_ROW) {
if ((const char*) sqlite3_column_text(stmt,1)!= NULL) {
result=stracpy((const char *)sqlite3_column_text(stmt, 1));
if ((char*) sqlite3_column_text(stmt,1)!= NULL) {
result=stracpy((const unsigned char *)sqlite3_column_text(stmt, 1));
//DBG("%s",result);
} else {
result=stracpy("");
}
}
rc=sqlite3_finalize(stmt);

View File

@ -59,8 +59,7 @@ static unsigned char *
readFromStorage(unsigned char *key)
{
char * val = "";
val = (unsigned char *) malloc (32384);
char * val;
if (local_storage_ready==0)
{
@ -70,7 +69,7 @@ readFromStorage(unsigned char *key)
val = db_query_by_key(local_storage_filename, key);
// DBG(log,"Read: %s %s %s",local_storage_filename, key, val);
//DBG("Read: %s %s %s",local_storage_filename, key, val);
return (val);
}
@ -157,18 +156,14 @@ localstorage_getitem(JSContext *ctx, unsigned int argc, JS::Value *vp)
}
unsigned char *val;
val = (unsigned char * ) malloc(32000);
val = readFromStorage(key);
//DBG("%s %s\n", key, val);
if (strlen(val)>0)
{
args.rval().setString(JS_NewStringCopyZ(ctx, val));
} else {
args.rval().setString(JS_NewStringCopyZ(ctx, ""));
args.rval().setString(JS_NewStringCopyZ(ctx, val));
}
mem_free(val);
return(true);