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 (parse_attr_string("name", node, &actname)) {
if ((act = action_from_string(actname))) { if ((act = action_from_string(actname))) {
if (act->func == action_execute || act->func == action_restart) { if (act->func == action_execute || act->func == action_restart) {
if ((n = parse_find_node("execute", node->xmlChildrenNode))) if ((n = parse_find_node("execute", node->xmlChildrenNode))) {
act->data.execute.path = parse_string(doc, n); gchar *s = parse_string(doc, n);
act->data.execute.path = expand_tilde(s);
g_free(s);
}
} else if (act->func == action_showmenu) { } else if (act->func == action_showmenu) {
if ((n = parse_find_node("menu", node->xmlChildrenNode))) if ((n = parse_find_node("menu", node->xmlChildrenNode)))
act->data.showmenu.name = parse_string(doc, n); act->data.showmenu.name = parse_string(doc, n);

View file

@ -4,6 +4,7 @@
#include "prop.h" #include "prop.h"
#include "translate.h" #include "translate.h"
#include "parser/parse.h" #include "parser/parse.h"
#include "openbox.h"
gboolean config_focus_new; gboolean config_focus_new;
gboolean config_focus_follow; gboolean config_focus_follow;
@ -39,16 +40,6 @@ GSList *config_menu_files;
gint config_resist_win; gint config_resist_win;
gint config_resist_edge; 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"> <keybind key="C-x">
@ -228,7 +219,7 @@ static void parse_theme(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
g_free(config_theme); g_free(config_theme);
c = parse_string(doc, n); c = parse_string(doc, n);
config_theme = expand_tilde(c); config_theme = ob_expand_tilde(c);
g_free(c); g_free(c);
} }
if ((n = parse_find_node("titleLayout", node))) { 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); c = parse_string(doc, node);
config_menu_files = g_slist_append(config_menu_files, config_menu_files = g_slist_append(config_menu_files,
expand_tilde(c)); ob_expand_tilde(c));
g_free(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 ((menu = menu_new(name, title, NULL))) {
if (parse_attr_string("execute", node, &script)) { if (parse_attr_string("execute", node, &script)) {
menu->execute = g_strdup(script); menu->execute = ob_expand_tilde(script);
} else { } else {
state->menus = g_slist_prepend(state->menus, menu); state->menus = g_slist_prepend(state->menus, menu);
parse_tree(i, doc, node->xmlChildrenNode); parse_tree(i, doc, node->xmlChildrenNode);

View file

@ -414,3 +414,13 @@ ObState ob_state()
{ {
return 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); KeyCode ob_keycode(ObKey key);
gchar *ob_expand_tilde(const gchar *f);
#endif #endif