use it on the command read in the menu parsing for pipe menus.
use it on the command read for execute/restart actions.
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);
#include "prop.h"
#include "translate.h"
#include "parser/parse.h"
+#include "openbox.h"
gboolean config_focus_new;
gboolean config_focus_follow;
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">
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))) {
c = parse_string(doc, node);
config_menu_files = g_slist_append(config_menu_files,
- expand_tilde(c));
+ ob_expand_tilde(c));
g_free(c);
}
}
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);
{
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);
+}
KeyCode ob_keycode(ObKey key);
+gchar *ob_expand_tilde(const gchar *f);
+
#endif