aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Brendan Taylor <whateley@gmail.com>2011-02-17 13:08:04 -0700
committerGravatar Brendan Taylor <whateley@gmail.com>2011-02-17 13:08:04 -0700
commite3b04d3ae9fb6dfeff5e6099784586b54591814e (patch)
tree1977957d62a56538e954d22c6670ac235f54ec6c /src
parent1d2e5fad17d7e396dc6b7f5748bffd2a23e80e25 (diff)
minor refactor of VARIABLE_SET event code
Diffstat (limited to 'src')
-rw-r--r--src/uzbl-core.c78
1 files changed, 34 insertions, 44 deletions
diff --git a/src/uzbl-core.c b/src/uzbl-core.c
index 6809441..26b3dba 100644
--- a/src/uzbl-core.c
+++ b/src/uzbl-core.c
@@ -1222,6 +1222,36 @@ valid_name(const gchar* name) {
return strpbrk(name, invalid_chars) == NULL;
}
+void
+send_set_var_event(const char *name, const uzbl_cmdprop *c) {
+ /* check for the variable type */
+ switch(c->type) {
+ case TYPE_STR:
+ send_event (VARIABLE_SET, NULL,
+ TYPE_NAME, name,
+ TYPE_NAME, "str",
+ TYPE_STR, *c->ptr.s ? *c->ptr.s : " ",
+ NULL);
+ break;
+ case TYPE_INT:
+ send_event (VARIABLE_SET, NULL,
+ TYPE_NAME, name,
+ TYPE_NAME, "int",
+ TYPE_INT, *c->ptr.i,
+ NULL);
+ break;
+ case TYPE_FLOAT:
+ send_event (VARIABLE_SET, NULL,
+ TYPE_NAME, name,
+ TYPE_NAME, "float",
+ TYPE_FLOAT, *c->ptr.f,
+ NULL);
+ break;
+ default:
+ g_assert_not_reached();
+ }
+}
+
gboolean
set_var_value(const gchar *name, gchar *val) {
uzbl_cmdprop *c = NULL;
@@ -1236,32 +1266,19 @@ set_var_value(const gchar *name, gchar *val) {
buf = g_strdup(val);
g_free(*c->ptr.s);
*c->ptr.s = buf;
- send_event (VARIABLE_SET, NULL,
- TYPE_NAME, name,
- TYPE_NAME, "str",
- TYPE_STR, *c->ptr.s ? *c->ptr.s : " ",
- NULL);
break;
case TYPE_INT:
*c->ptr.i = (int)strtoul(val, &endp, 10);
- send_event (VARIABLE_SET, NULL,
- TYPE_NAME, name,
- TYPE_NAME, "int",
- TYPE_INT, *c->ptr.i,
- NULL);
break;
case TYPE_FLOAT:
*c->ptr.f = strtod(val, &endp);
- send_event (VARIABLE_SET, NULL,
- TYPE_NAME, name,
- TYPE_NAME, "float",
- TYPE_FLOAT, *c->ptr.f,
- NULL);
break;
default:
g_assert_not_reached();
}
+ send_set_var_event(name, c);
+
/* invoke a command specific function */
if(c->func) c->func();
} else {
@@ -1579,35 +1596,8 @@ dump_var_hash_as_event(gpointer k, gpointer v, gpointer ud) {
(void) ud;
uzbl_cmdprop *c = v;
- if(!c->dump)
- return;
-
- /* check for the variable type */
- switch(c->type) {
- case TYPE_STR:
- send_event (VARIABLE_SET, NULL,
- TYPE_NAME, (char*)k,
- TYPE_NAME, "str",
- TYPE_STR, *c->ptr.s ? *c->ptr.s : " ",
- NULL);
- break;
- case TYPE_INT:
- send_event (VARIABLE_SET, NULL,
- TYPE_NAME, (char*)k,
- TYPE_NAME, "int",
- TYPE_INT, *c->ptr.i,
- NULL);
- break;
- case TYPE_FLOAT:
- send_event (VARIABLE_SET, NULL,
- TYPE_NAME, (char*)k,
- TYPE_NAME, "float",
- TYPE_FLOAT, *c->ptr.f,
- NULL);
- break;
- default:
- g_assert_not_reached();
- }
+ if(c->dump)
+ send_set_var_event(k, c);
}
void