From b543af60b3b625f978bec0eacc7da31cd9d347f6 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 1 Sep 2003 00:53:55 +0000 Subject: [PATCH] move expand_tilde to ob_expand_tilde in openbox.c to make it global. use it on the command read in the menu parsing for pipe menus. use it on the command read for execute/restart actions. --- openbox/action.c | 7 +++++-- openbox/config.c | 15 +++------------ openbox/menu.c | 2 +- openbox/openbox.c | 10 ++++++++++ openbox/openbox.h | 2 ++ 5 files changed, 21 insertions(+), 15 deletions(-) diff --git a/openbox/action.c b/openbox/action.c index d24e81e6..7d06f12e 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -730,8 +730,11 @@ ObAction *action_parse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) if (parse_attr_string("name", node, &actname)) { if ((act = action_from_string(actname))) { if (act->func == action_execute || act->func == action_restart) { - if ((n = parse_find_node("execute", node->xmlChildrenNode))) - act->data.execute.path = parse_string(doc, n); + if ((n = parse_find_node("execute", node->xmlChildrenNode))) { + gchar *s = parse_string(doc, n); + act->data.execute.path = expand_tilde(s); + g_free(s); + } } else if (act->func == action_showmenu) { if ((n = parse_find_node("menu", node->xmlChildrenNode))) act->data.showmenu.name = parse_string(doc, n); diff --git a/openbox/config.c b/openbox/config.c index 24da3060..21f03d3e 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -4,6 +4,7 @@ #include "prop.h" #include "translate.h" #include "parser/parse.h" +#include "openbox.h" gboolean config_focus_new; gboolean config_focus_follow; @@ -39,16 +40,6 @@ GSList *config_menu_files; gint config_resist_win; gint config_resist_edge; -gchar *expand_tilde(const gchar *f) -{ - if (!f) - return NULL; - else if (f[0] != '~') - return g_strdup(f); - else - return g_strconcat(g_get_home_dir(), f+1, NULL); -} - /* @@ -228,7 +219,7 @@ static void parse_theme(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, g_free(config_theme); c = parse_string(doc, n); - config_theme = expand_tilde(c); + config_theme = ob_expand_tilde(c); g_free(c); } if ((n = parse_find_node("titleLayout", node))) { @@ -343,7 +334,7 @@ static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d) c = parse_string(doc, node); config_menu_files = g_slist_append(config_menu_files, - expand_tilde(c)); + ob_expand_tilde(c)); g_free(c); } } diff --git a/openbox/menu.c b/openbox/menu.c index cf405720..8cc1c872 100644 --- a/openbox/menu.c +++ b/openbox/menu.c @@ -203,7 +203,7 @@ static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, if ((menu = menu_new(name, title, NULL))) { if (parse_attr_string("execute", node, &script)) { - menu->execute = g_strdup(script); + menu->execute = ob_expand_tilde(script); } else { state->menus = g_slist_prepend(state->menus, menu); parse_tree(i, doc, node->xmlChildrenNode); diff --git a/openbox/openbox.c b/openbox/openbox.c index 52146960..21f3a606 100644 --- a/openbox/openbox.c +++ b/openbox/openbox.c @@ -414,3 +414,13 @@ ObState ob_state() { return state; } + +gchar *ob_expand_tilde(const gchar *f) +{ + if (!f) + return NULL; + else if (f[0] != '~') + return g_strdup(f); + else + return g_strconcat(g_get_home_dir(), f+1, NULL); +} diff --git a/openbox/openbox.h b/openbox/openbox.h index 2f325dff..a01e792c 100644 --- a/openbox/openbox.h +++ b/openbox/openbox.h @@ -48,4 +48,6 @@ Cursor ob_cursor(ObCursor cursor); KeyCode ob_keycode(ObKey key); +gchar *ob_expand_tilde(const gchar *f); + #endif -- 2.45.2