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.
This commit is contained in:
Dana Jansens 2003-09-01 00:53:55 +00:00
parent 43c5c01d33
commit b543af60b3
5 changed files with 21 additions and 15 deletions

View file

@ -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);

View file

@ -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);
}
/*
<keybind key="C-x">
@ -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);
}
}

View file

@ -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);

View file

@ -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);
}

View file

@ -48,4 +48,6 @@ Cursor ob_cursor(ObCursor cursor);
KeyCode ob_keycode(ObKey key);
gchar *ob_expand_tilde(const gchar *f);
#endif