From 53ad9e51bbb04c3de86046663a81a43e2aba95cd Mon Sep 17 00:00:00 2001 From: Mason Larobina Date: Sun, 6 Sep 2009 20:41:54 +0800 Subject: Config type checking, events +SOCKET_SET -COOKIE & dump config on load. --- uzbl-core.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'uzbl-core.h') diff --git a/uzbl-core.h b/uzbl-core.h index 010cbe5..bde1e43 100644 --- a/uzbl-core.h +++ b/uzbl-core.h @@ -70,6 +70,7 @@ typedef struct { gchar* keycmd; gchar* searchtx; gboolean verbose; + gboolean config_loaded; } State; @@ -188,10 +189,10 @@ typedef void sigfunc(int); enum event_type { LOAD_START, LOAD_COMMIT, LOAD_FINISH, LOAD_ERROR, KEY_PRESS, KEY_RELEASE, DOWNLOAD_REQ, COMMAND_EXECUTED, - LINK_HOVER, TITLE_CHANGED, GEOMETRY_CHANGED, - WEBINSPECTOR, COOKIE, NEW_WINDOW, SELECTION_CHANGED, - VARIABLE_SET, FIFO_SET, - + LINK_HOVER, TITLE_CHANGED, GEOMETRY_CHANGED, + WEBINSPECTOR, NEW_WINDOW, SELECTION_CHANGED, + VARIABLE_SET, FIFO_SET, SOCKET_SET, + /* must be last entry */ LAST_EVENT }; -- cgit v1.2.3 From 6e92d603955f3cb3635cb01a21830f6c510d4e5b Mon Sep 17 00:00:00 2001 From: Mason Larobina Date: Mon, 7 Sep 2009 00:49:50 +0800 Subject: Removed uzbl.state.config_loaded variable. --- uzbl-core.c | 34 ++++++++++------------------------ uzbl-core.h | 1 - 2 files changed, 10 insertions(+), 25 deletions(-) (limited to 'uzbl-core.h') diff --git a/uzbl-core.c b/uzbl-core.c index 9541cfa..39ff9d8 100644 --- a/uzbl-core.c +++ b/uzbl-core.c @@ -1966,36 +1966,30 @@ set_var_value(const gchar *name, gchar *val) { if( (c = g_hash_table_lookup(uzbl.comm.proto_var, name)) ) { if(!c->writeable) return FALSE; - if (uzbl.state.config_loaded) - msg = g_string_new(name); + msg = g_string_new(name); /* check for the variable type */ if (c->type == TYPE_STR) { buf = expand(val, 0); g_free(*c->ptr.s); *c->ptr.s = buf; - if (uzbl.state.config_loaded) - g_string_append_printf(msg, " str %s", buf); + g_string_append_printf(msg, " str %s", buf); } else if(c->type == TYPE_INT) { buf = expand(val, 0); *c->ptr.i = (int)strtoul(buf, &endp, 10); g_free(buf); - if (uzbl.state.config_loaded) - g_string_append_printf(msg, " int %d", *c->ptr.i); + g_string_append_printf(msg, " int %d", *c->ptr.i); } else if (c->type == TYPE_FLOAT) { buf = expand(val, 0); *c->ptr.f = strtod(buf, &endp); g_free(buf); - if (uzbl.state.config_loaded) - g_string_append_printf(msg, " float %f", *c->ptr.f); + g_string_append_printf(msg, " float %f", *c->ptr.f); } - if (uzbl.state.config_loaded) { - send_event(VARIABLE_SET, msg->str); - g_string_free(msg,TRUE); - } + send_event(VARIABLE_SET, msg->str); + g_string_free(msg,TRUE); /* invoke a command specific function */ if(c->func) c->func(); @@ -2019,12 +2013,10 @@ set_var_value(const gchar *name, gchar *val) { g_hash_table_insert(uzbl.comm.proto_var, g_strdup(name), (gpointer) c); - if (uzbl.state.config_loaded) { - msg = g_string_new(name); - g_string_append_printf(msg, " str %s", buf); - send_event(VARIABLE_SET, msg->str); - g_string_free(msg,TRUE); - } + msg = g_string_new(name); + g_string_append_printf(msg, " str %s", buf); + send_event(VARIABLE_SET, msg->str); + g_string_free(msg,TRUE); } return TRUE; } @@ -2661,7 +2653,6 @@ void settings_init () { State *s = &uzbl.state; Network *n = &uzbl.net; - uzbl.state.config_loaded = FALSE; int i; for (i = 0; default_config[i].command != NULL; i++) { @@ -2693,11 +2684,6 @@ settings_init () { printf ("No configuration file loaded.\n"); } - /* The config has now been loaded so dump the complete hash table for the - * event manager to parse */ - uzbl.state.config_loaded = TRUE; - dump_config(); - g_signal_connect_after(n->soup_session, "request-started", G_CALLBACK(handle_cookies), NULL); } diff --git a/uzbl-core.h b/uzbl-core.h index bde1e43..aaaeca1 100644 --- a/uzbl-core.h +++ b/uzbl-core.h @@ -70,7 +70,6 @@ typedef struct { gchar* keycmd; gchar* searchtx; gboolean verbose; - gboolean config_loaded; } State; -- cgit v1.2.3 From 13cd8f34e86fe9bd17fffd770eb0c1ee57bd1815 Mon Sep 17 00:00:00 2001 From: Mason Larobina Date: Mon, 7 Sep 2009 01:34:28 +0800 Subject: Added the command and functions to dump_config_as_events --- uzbl-core.c | 105 ++++++++++++++++++++++++++++++++++++++---------------------- uzbl-core.h | 6 ++++ 2 files changed, 72 insertions(+), 39 deletions(-) (limited to 'uzbl-core.h') diff --git a/uzbl-core.c b/uzbl-core.c index 39ff9d8..fd4fb8d 100644 --- a/uzbl-core.c +++ b/uzbl-core.c @@ -886,43 +886,44 @@ VIEWFUNC(go_forward) /* -- command to callback/function map for things we cannot attach to any signals */ struct {const char *key; CommandInfo value;} cmdlist[] = -{ /* key function no_split */ - { "back", {view_go_back, 0} }, - { "forward", {view_go_forward, 0} }, - { "scroll_vert", {scroll_vert, 0} }, - { "scroll_horz", {scroll_horz, 0} }, - { "scroll_begin", {scroll_begin, 0} }, - { "scroll_end", {scroll_end, 0} }, - { "reload", {view_reload, 0}, }, - { "reload_ign_cache", {view_reload_bypass_cache, 0} }, - { "stop", {view_stop_loading, 0}, }, - { "zoom_in", {view_zoom_in, 0}, }, //Can crash (when max zoom reached?). - { "zoom_out", {view_zoom_out, 0}, }, - { "toggle_zoom_type", {toggle_zoom_type, 0}, }, - { "uri", {load_uri, TRUE} }, - { "js", {run_js, TRUE} }, - { "script", {run_external_js, 0} }, - { "toggle_status", {toggle_status_cb, 0} }, - { "spawn", {spawn, 0} }, - { "sync_spawn", {spawn_sync, 0} }, // needed for cookie handler - { "sh", {spawn_sh, 0} }, - { "sync_sh", {spawn_sh_sync, 0} }, // needed for cookie handler - { "talk_to_socket", {talk_to_socket, 0} }, - { "exit", {close_uzbl, 0} }, - { "search", {search_forward_text, TRUE} }, - { "search_reverse", {search_reverse_text, TRUE} }, - { "dehilight", {dehilight, 0} }, - { "toggle_insert_mode", {toggle_insert_mode, 0} }, - { "set", {set_var, TRUE} }, - //{ "get", {get_var, TRUE} }, - { "bind", {act_bind, TRUE} }, - { "dump_config", {act_dump_config, 0} }, - { "keycmd", {keycmd, TRUE} }, - { "keycmd_nl", {keycmd_nl, TRUE} }, - { "keycmd_bs", {keycmd_bs, 0} }, - { "chain", {chain, 0} }, - { "print", {print, TRUE} }, - { "update_gui", {update_gui, TRUE} } +{ /* key function no_split */ + { "back", {view_go_back, 0} }, + { "forward", {view_go_forward, 0} }, + { "scroll_vert", {scroll_vert, 0} }, + { "scroll_horz", {scroll_horz, 0} }, + { "scroll_begin", {scroll_begin, 0} }, + { "scroll_end", {scroll_end, 0} }, + { "reload", {view_reload, 0}, }, + { "reload_ign_cache", {view_reload_bypass_cache, 0} }, + { "stop", {view_stop_loading, 0}, }, + { "zoom_in", {view_zoom_in, 0}, }, //Can crash (when max zoom reached?). + { "zoom_out", {view_zoom_out, 0}, }, + { "toggle_zoom_type", {toggle_zoom_type, 0}, }, + { "uri", {load_uri, TRUE} }, + { "js", {run_js, TRUE} }, + { "script", {run_external_js, 0} }, + { "toggle_status", {toggle_status_cb, 0} }, + { "spawn", {spawn, 0} }, + { "sync_spawn", {spawn_sync, 0} }, // needed for cookie handler + { "sh", {spawn_sh, 0} }, + { "sync_sh", {spawn_sh_sync, 0} }, // needed for cookie handler + { "talk_to_socket", {talk_to_socket, 0} }, + { "exit", {close_uzbl, 0} }, + { "search", {search_forward_text, TRUE} }, + { "search_reverse", {search_reverse_text, TRUE} }, + { "dehilight", {dehilight, 0} }, + { "toggle_insert_mode", {toggle_insert_mode, 0} }, + { "set", {set_var, TRUE} }, + //{ "get", {get_var, TRUE} }, + { "bind", {act_bind, TRUE} }, + { "dump_config", {act_dump_config, 0} }, + { "dump_config_as_events", {act_dump_config_as_events, 0} }, + { "keycmd", {keycmd, TRUE} }, + { "keycmd_nl", {keycmd_nl, TRUE} }, + { "keycmd_bs", {keycmd_bs, 0} }, + { "chain", {chain, 0} }, + { "print", {print, TRUE} }, + { "update_gui", {update_gui, TRUE} } }; void @@ -1009,6 +1010,11 @@ act_dump_config() { dump_config(); } +void +act_dump_config_as_events() { + dump_config_as_events(); +} + void set_keycmd() { run_keycmd(FALSE); @@ -2829,6 +2835,27 @@ void dump_var_hash(gpointer k, gpointer v, gpointer ud) { (void) ud; uzbl_cmdprop *c = v; + + if(!c->dump) + return; + + if(c->type == TYPE_STR) + printf("set %s = %s\n", (char *)k, *c->ptr.s ? *c->ptr.s : " "); + else if(c->type == TYPE_INT) + printf("set %s = %d\n", (char *)k, *c->ptr.i); + else if(c->type == TYPE_FLOAT) + printf("set %s = %f\n", (char *)k, *c->ptr.f); +} + +void +dump_config() { + g_hash_table_foreach(uzbl.comm.proto_var, dump_var_hash, NULL); +} + +void +dump_var_hash_as_event(gpointer k, gpointer v, gpointer ud) { + (void) ud; + uzbl_cmdprop *c = v; GString *msg; if(!c->dump) @@ -2849,8 +2876,8 @@ dump_var_hash(gpointer k, gpointer v, gpointer ud) { } void -dump_config() { - g_hash_table_foreach(uzbl.comm.proto_var, dump_var_hash, NULL); +dump_config_as_events() { + g_hash_table_foreach(uzbl.comm.proto_var, dump_var_hash_as_event, NULL); } void diff --git a/uzbl-core.h b/uzbl-core.h index aaaeca1..a5470e1 100644 --- a/uzbl-core.h +++ b/uzbl-core.h @@ -463,6 +463,9 @@ act_bind(WebKitWebView *page, GArray *argv, GString *result); void act_dump_config(); +void +act_dump_config_as_events(); + void dump_var_hash(gpointer k, gpointer v, gpointer ud); @@ -472,6 +475,9 @@ dump_key_hash(gpointer k, gpointer v, gpointer ud); void dump_config(); +void +dump_config_as_events(); + void retrieve_geometry(); -- cgit v1.2.3