+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+ keytree.c for the Openbox window manager
+ Copyright (c) 2003 Ben Jansens
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ See the COPYING file for a copy of the GNU General Public License.
+*/
+
#include "keyboard.h"
#include "translate.h"
#include <glib.h>
g_free(it->data);
g_list_free(tree->keylist);
for (sit = tree->actions; sit != NULL; sit = sit->next)
- action_free(sit->data);
+ action_unref(sit->data);
g_slist_free(tree->actions);
}
g_free(tree);
if (g_list_length(keylist) <= 0)
return NULL; /* nothing in the list.. */
- for (it = g_list_last(keylist); it != NULL; it = it->prev) {
+ for (it = g_list_last(keylist); it; it = g_list_previous(it)) {
p = ret;
ret = g_new0(KeyBindingTree, 1);
if (p == NULL) {
/* this is the first built node, the bottom node of the tree */
ret->keylist = g_list_copy(keylist); /* shallow copy */
- for (it = ret->keylist; it != NULL; it = it->next) /* deep copy */
+ for (it = ret->keylist; it; it = g_list_next(it)) /* deep copy */
it->data = g_strdup(it->data);
}
ret->first_child = p;