mirror of
https://github.com/rkd77/elinks.git
synced 2024-10-01 03:36:26 -04:00
[smjs local storage] changes from comments PR #97
This commit is contained in:
parent
a19b95f20c
commit
60211fdd41
@ -19,7 +19,6 @@ db_prepare_structure(char *db_name)
|
|||||||
sqlite3 *db;
|
sqlite3 *db;
|
||||||
|
|
||||||
int rc;
|
int rc;
|
||||||
char *sqlbuffer;
|
|
||||||
|
|
||||||
rc = sqlite3_open(db_name, &db);
|
rc = sqlite3_open(db_name, &db);
|
||||||
if (rc)
|
if (rc)
|
||||||
@ -28,9 +27,8 @@ db_prepare_structure(char *db_name)
|
|||||||
rc=sqlite3_close(db);
|
rc=sqlite3_close(db);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
sqlite3_busy_timeout(db, 5000);
|
sqlite3_busy_timeout(db, 2000);
|
||||||
sqlbuffer=stracpy("CREATE TABLE storage (key TEXT, value TEXT);");
|
rc=sqlite3_prepare_v2(db, "CREATE TABLE storage (key TEXT, value TEXT);", -1, &stmt, NULL);
|
||||||
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
|
|
||||||
rc=sqlite3_step(stmt);
|
rc=sqlite3_step(stmt);
|
||||||
rc=sqlite3_finalize(stmt);
|
rc=sqlite3_finalize(stmt);
|
||||||
rc=sqlite3_close(db);
|
rc=sqlite3_close(db);
|
||||||
@ -45,7 +43,6 @@ db_delete_from(char *db_name, char *key)
|
|||||||
sqlite3 *db;
|
sqlite3 *db;
|
||||||
|
|
||||||
int rc;
|
int rc;
|
||||||
char *sqlbuffer;
|
|
||||||
int affected_rows = 0;
|
int affected_rows = 0;
|
||||||
|
|
||||||
rc = sqlite3_open(db_name, &db);
|
rc = sqlite3_open(db_name, &db);
|
||||||
@ -55,9 +52,8 @@ db_delete_from(char *db_name, char *key)
|
|||||||
rc=sqlite3_close(db);
|
rc=sqlite3_close(db);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
sqlite3_busy_timeout(db, 5000);
|
sqlite3_busy_timeout(db, 2000);
|
||||||
sqlbuffer=stracpy("DELETE FROM storage WHERE key = ?;");
|
rc=sqlite3_prepare_v2(db, "DELETE FROM storage WHERE key = ?;", -1, &stmt, NULL);
|
||||||
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
|
|
||||||
rc=sqlite3_bind_text(stmt, 1, key, strlen(key), SQLITE_STATIC);
|
rc=sqlite3_bind_text(stmt, 1, key, strlen(key), SQLITE_STATIC);
|
||||||
rc=sqlite3_step(stmt);
|
rc=sqlite3_step(stmt);
|
||||||
rc=sqlite3_finalize(stmt);
|
rc=sqlite3_finalize(stmt);
|
||||||
@ -75,18 +71,16 @@ db_insert_into(char *db_name, char *key, char *value)
|
|||||||
sqlite3 *db;
|
sqlite3 *db;
|
||||||
|
|
||||||
int rc;
|
int rc;
|
||||||
char *sqlbuffer;
|
|
||||||
int affected_rows = 0;
|
int affected_rows = 0;
|
||||||
|
|
||||||
rc = sqlite3_open(db_name, &db);
|
rc = sqlite3_open(db_name, &db);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
//DBG("Error opening localStorage database.");
|
//DBG("Error opening localStorage database.");
|
||||||
rc=sqlite3_close(db);
|
rc=sqlite3_close(db);
|
||||||
return("");
|
return(-1);
|
||||||
}
|
}
|
||||||
sqlite3_busy_timeout(db, 5000);
|
sqlite3_busy_timeout(db, 2000);
|
||||||
sqlbuffer=stracpy("INSERT INTO storage (value,key) VALUES (?,?);");
|
rc=sqlite3_prepare_v2(db, "INSERT INTO storage (value,key) VALUES (?,?);", -1, &stmt, NULL);
|
||||||
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
|
|
||||||
rc=sqlite3_bind_text(stmt, 1, value, strlen(value), SQLITE_STATIC);
|
rc=sqlite3_bind_text(stmt, 1, value, strlen(value), SQLITE_STATIC);
|
||||||
rc=sqlite3_bind_text(stmt, 2, key, strlen(key), SQLITE_STATIC);
|
rc=sqlite3_bind_text(stmt, 2, key, strlen(key), SQLITE_STATIC);
|
||||||
rc=sqlite3_step(stmt);
|
rc=sqlite3_step(stmt);
|
||||||
@ -105,19 +99,16 @@ db_update_set(char *db_name, char *key, char *value)
|
|||||||
sqlite3 *db;
|
sqlite3 *db;
|
||||||
|
|
||||||
int rc;
|
int rc;
|
||||||
char sqlbuffer[8192];
|
|
||||||
char result[8192];
|
|
||||||
int affected_rows = 0;
|
int affected_rows = 0;
|
||||||
|
|
||||||
rc = sqlite3_open(db_name, &db);
|
rc = sqlite3_open(db_name, &db);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
//DBG("Error opening localStorage database.");
|
//DBG("Error opening localStorage database.");
|
||||||
rc=sqlite3_close(db);
|
rc=sqlite3_close(db);
|
||||||
return("");
|
return(-1);
|
||||||
}
|
}
|
||||||
sqlite3_busy_timeout(db, 5000);
|
sqlite3_busy_timeout(db, 2000);
|
||||||
snprintf(sqlbuffer, 256, "UPDATE storage SET value = ? where key = ?;");
|
rc=sqlite3_prepare_v2(db, "UPDATE storage SET value = ? where key = ?;", -1, &stmt, NULL);
|
||||||
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
|
|
||||||
rc=sqlite3_bind_text(stmt, 1, value, strlen(value), SQLITE_STATIC);
|
rc=sqlite3_bind_text(stmt, 1, value, strlen(value), SQLITE_STATIC);
|
||||||
rc=sqlite3_bind_text(stmt, 2, key, strlen(key), SQLITE_STATIC);
|
rc=sqlite3_bind_text(stmt, 2, key, strlen(key), SQLITE_STATIC);
|
||||||
rc=sqlite3_step(stmt);
|
rc=sqlite3_step(stmt);
|
||||||
@ -136,15 +127,8 @@ db_query_by_value(char *db_name, char *value)
|
|||||||
sqlite3 *db;
|
sqlite3 *db;
|
||||||
|
|
||||||
int rc;
|
int rc;
|
||||||
char *sqlbuffer;
|
|
||||||
char *result;
|
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);
|
rc = sqlite3_open(db_name, &db);
|
||||||
if (rc)
|
if (rc)
|
||||||
{
|
{
|
||||||
@ -153,9 +137,8 @@ db_query_by_value(char *db_name, char *value)
|
|||||||
return("");
|
return("");
|
||||||
}
|
}
|
||||||
sqlite3_busy_timeout(db, 2000);
|
sqlite3_busy_timeout(db, 2000);
|
||||||
sqlbuffer=stracpy("SELECT * FROM storage WHERE value like ?;");
|
rc=sqlite3_prepare_v2(db, "SELECT key FROM storage WHERE value = ?;", -1, &stmt, NULL);
|
||||||
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
|
rc=sqlite3_bind_text(stmt, 1, value, strlen(value), SQLITE_STATIC);
|
||||||
rc=sqlite3_bind_text(stmt, 1, value, strlen(value) + 1, SQLITE_STATIC);
|
|
||||||
while (sqlite3_step(stmt) == SQLITE_ROW) {
|
while (sqlite3_step(stmt) == SQLITE_ROW) {
|
||||||
if ((const char*) sqlite3_column_text(stmt,1)!= NULL) {
|
if ((const char*) sqlite3_column_text(stmt,1)!= NULL) {
|
||||||
result=stracpy((const char *)sqlite3_column_text(stmt, 1));
|
result=stracpy((const char *)sqlite3_column_text(stmt, 1));
|
||||||
@ -178,7 +161,6 @@ db_query_by_key(char *db_name, char *key)
|
|||||||
sqlite3 *db;
|
sqlite3 *db;
|
||||||
|
|
||||||
int rc;
|
int rc;
|
||||||
char *sqlbuffer;
|
|
||||||
char *result;
|
char *result;
|
||||||
|
|
||||||
rc = sqlite3_open(db_name, &db);
|
rc = sqlite3_open(db_name, &db);
|
||||||
@ -189,15 +171,13 @@ db_query_by_key(char *db_name, char *key)
|
|||||||
return("");
|
return("");
|
||||||
}
|
}
|
||||||
sqlite3_busy_timeout(db, 2000);
|
sqlite3_busy_timeout(db, 2000);
|
||||||
sqlbuffer=stracpy("SELECT * FROM storage WHERE key like ?;");
|
rc=sqlite3_prepare_v2(db, "SELECT * FROM storage WHERE key = ?;", -1, &stmt, NULL);
|
||||||
rc=sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
|
rc=sqlite3_bind_text(stmt, 1, key, strlen(key), SQLITE_STATIC);
|
||||||
rc=sqlite3_bind_text(stmt, 1, key, strlen(key) + 1, 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));
|
|
||||||
//DBG("%s",result);
|
|
||||||
} else {
|
|
||||||
result=stracpy("");
|
result=stracpy("");
|
||||||
|
while (sqlite3_step(stmt) == SQLITE_ROW) {
|
||||||
|
if ((char*) sqlite3_column_text(stmt,1)!= NULL) {
|
||||||
|
result=stracpy((const unsigned char *)sqlite3_column_text(stmt, 1));
|
||||||
|
//DBG("%s",result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rc=sqlite3_finalize(stmt);
|
rc=sqlite3_finalize(stmt);
|
||||||
|
@ -59,8 +59,7 @@ static unsigned char *
|
|||||||
readFromStorage(unsigned char *key)
|
readFromStorage(unsigned char *key)
|
||||||
{
|
{
|
||||||
|
|
||||||
char * val = "";
|
char * val;
|
||||||
val = (unsigned char *) malloc (32384);
|
|
||||||
|
|
||||||
if (local_storage_ready==0)
|
if (local_storage_ready==0)
|
||||||
{
|
{
|
||||||
@ -70,7 +69,7 @@ readFromStorage(unsigned char *key)
|
|||||||
|
|
||||||
val = db_query_by_key(local_storage_filename, 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);
|
return (val);
|
||||||
}
|
}
|
||||||
@ -157,18 +156,14 @@ localstorage_getitem(JSContext *ctx, unsigned int argc, JS::Value *vp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned char *val;
|
unsigned char *val;
|
||||||
val = (unsigned char * ) malloc(32000);
|
|
||||||
val = readFromStorage(key);
|
val = readFromStorage(key);
|
||||||
|
|
||||||
//DBG("%s %s\n", key, val);
|
//DBG("%s %s\n", key, val);
|
||||||
|
|
||||||
if (strlen(val)>0)
|
|
||||||
{
|
|
||||||
args.rval().setString(JS_NewStringCopyZ(ctx, val));
|
args.rval().setString(JS_NewStringCopyZ(ctx, val));
|
||||||
} else {
|
|
||||||
args.rval().setString(JS_NewStringCopyZ(ctx, ""));
|
|
||||||
|
|
||||||
}
|
mem_free(val);
|
||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user