X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Factions%2Frestart.c;h=dc9a218a6985b69c437020b9cdd7182351868bb5;hb=d179d6428ae585a3b8a13479bfe4586e41de2ff9;hp=fff0a87f8558a09c56ef2276de4880e4769eec89;hpb=f55ae9e56945892825928cfb021b5e739d0d5224;p=chaz%2Fopenbox diff --git a/openbox/actions/restart.c b/openbox/actions/restart.c index fff0a87f..dc9a218a 100644 --- a/openbox/actions/restart.c +++ b/openbox/actions/restart.c @@ -1,35 +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("command", node)) || - (n = parse_find_node("execute", node))) + if ((n = obt_xml_find_node(node, "command")) || + (n = obt_xml_find_node(node, "execute"))) { - gchar *s = parse_string(doc, n); - o->cmd = parse_expand_tilde(s); + gchar *s = obt_xml_node_string(n); + o->cmd = obt_paths_expand_tilde(s); g_free(s); } return o; @@ -38,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 */