X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Factions%2Frestart.c;h=dc9a218a6985b69c437020b9cdd7182351868bb5;hb=HEAD;hp=f7f1dfc0bb40f954b8496990bdeaf4603465b757;hpb=58d8b90122b33f608b5c4c5b91d15207eb2cecf1;p=chaz%2Fopenbox diff --git a/openbox/actions/restart.c b/openbox/actions/restart.c index f7f1dfc0..dc9a218a 100644 --- a/openbox/actions/restart.c +++ b/openbox/actions/restart.c @@ -1,33 +1,32 @@ #include "openbox/actions.h" #include "openbox/openbox.h" +#include "obt/paths.h" typedef struct { gchar *cmd; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); +static gpointer setup_func(xmlNodePtr node); static void free_func(gpointer options); static gboolean run_func(ObActionsData *data, gpointer options); -void action_restart_startup() +void action_restart_startup(void) { - actions_register("Restart", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("Restart", setup_func, free_func, run_func); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_func(xmlNodePtr node) { xmlNodePtr n; Options *o; - o = g_new0(Options, 1); + o = g_slice_new0(Options); - if ((n = parse_find_node("execute", node))) { - gchar *s = parse_string(doc, n); - o->cmd = parse_expand_tilde(s); + if ((n = obt_xml_find_node(node, "command")) || + (n = obt_xml_find_node(node, "execute"))) + { + gchar *s = obt_xml_node_string(n); + o->cmd = obt_paths_expand_tilde(s); g_free(s); } return o; @@ -36,11 +35,8 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) static void free_func(gpointer options) { Options *o = options; - - if (o) { - g_free(o->cmd); - g_free(o); - } + g_free(o->cmd); + g_slice_free(Options, o); } /* Always return FALSE because its not interactive */