1 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
3 action_list.c for the Openbox window manager
4 Copyright (c) 2011 Dana Jansens
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 See the COPYING file for a copy of the GNU General Public License.
19 #include "action_list.h"
21 #include "action_filter.h"
25 void action_list_ref(ObActionList *l)
30 void action_list_unref(ObActionList *l)
32 while (l && --l->ref < 1) {
33 ObActionList *n = l->next;
36 action_list_test_destroy(l->u.f.test);
37 action_list_unref(l->u.f.thendo);
38 action_list_unref(l->u.f.elsedo);
41 action_unref(l->u.action);
43 g_slice_free(ObActionList, l);
48 void action_list_test_destroy(ObActionListTest *t)
51 ObActionListTest *n = t->next;
53 action_filter_unref(t->filter);
54 g_slice_free(ObActionListTest, t);
59 ObActionList* action_list_concat(ObActionList *a, ObActionList *b)
61 ObActionList *start = a;
64 while (a->next) a = a->next;