projects
/
dana
/
openbox-history.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4f7a70f
)
create actions from string in a way that won't crash
author
Dana Jansens
<danakj@orodu.net>
Wed, 11 Jul 2007 18:39:47 +0000
(18:39 +0000)
committer
Dana Jansens
<danakj@orodu.net>
Wed, 11 Jul 2007 18:39:47 +0000
(18:39 +0000)
openbox/actions.c
patch
|
blob
|
history
diff --git
a/openbox/actions.c
b/openbox/actions.c
index
5f146b7
..
3bfb3b3
100644
(file)
--- a/
openbox/actions.c
+++ b/
openbox/actions.c
@@
-31,6
+31,7
@@
static void actions_definition_ref(ObActionsDefinition *def);
static void actions_definition_unref(ObActionsDefinition *def);
static gboolean actions_interactive_begin_act(ObActionsAct *act, guint state);
static void actions_interactive_end_act();
static void actions_definition_unref(ObActionsDefinition *def);
static gboolean actions_interactive_begin_act(ObActionsAct *act, guint state);
static void actions_interactive_end_act();
+static ObActionsAct* actions_build_act_from_string(const gchar *name);
static ObActionsAct *interactive_act = NULL;
static guint interactive_initial_state = 0;
static ObActionsAct *interactive_act = NULL;
static guint interactive_initial_state = 0;
@@
-123,7
+124,7
@@
static void actions_definition_unref(ObActionsDefinition *def)
}
}
}
}
-ObActionsAct* actions_
parse
_string(const gchar *name)
+ObActionsAct* actions_
build_act_from
_string(const gchar *name)
{
GSList *it;
ObActionsDefinition *def = NULL;
{
GSList *it;
ObActionsDefinition *def = NULL;
@@
-151,6
+152,17
@@
ObActionsAct* actions_parse_string(const gchar *name)
return act;
}
return act;
}
+ObActionsAct* actions_parse_string(const gchar *name)
+{
+ ObActionsAct *act = NULL;
+
+ if ((act = actions_build_act_from_string(name)))
+ if (act->def->setup)
+ act->options = act->def->setup(NULL, NULL, NULL);
+
+ return act;
+}
+
ObActionsAct* actions_parse(ObParseInst *i,
xmlDocPtr doc,
xmlNodePtr node)
ObActionsAct* actions_parse(ObParseInst *i,
xmlDocPtr doc,
xmlNodePtr node)
@@
-159,7
+171,7
@@
ObActionsAct* actions_parse(ObParseInst *i,
ObActionsAct *act = NULL;
if (parse_attr_string("name", node, &name)) {
ObActionsAct *act = NULL;
if (parse_attr_string("name", node, &name)) {
- if ((act = actions_
parse
_string(name)))
+ if ((act = actions_
build_act_from
_string(name)))
/* there is more stuff to parse here */
if (act->def->setup)
act->options = act->def->setup(i, doc, node->xmlChildrenNode);
/* there is more stuff to parse here */
if (act->def->setup)
act->options = act->def->setup(i, doc, node->xmlChildrenNode);