From 8c68fa0be51f9f12e971b01c6dc9c358a99cfb02 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sat, 19 May 2012 21:56:23 +0100 Subject: [PATCH] Added common module for glib compatibility --- Makefile | 3 ++- common.c | 29 +++++++++++++++++++++++++++++ common.h | 34 ++++++++++++++++++++++++++++++++++ prof_autocomplete.c | 1 + 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 common.c create mode 100644 common.h diff --git a/Makefile b/Makefile index 88dc5973..d44477df 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ CPPLIB = -lstdc++ CFLAGS = -I ~/include -O3 $(WARNS) $(LIBS) `pkg-config --cflags glib-2.0` OBJS = log.o windows.o title_bar.o status_bar.o input_win.o jabber.o \ profanity.o util.o command.o history.o contact_list.o prof_history.o \ - contact.o preferences.o prof_autocomplete.o main.o + contact.o preferences.o prof_autocomplete.o common.o main.o TESTOBJS = test_contact_list.o contact_list.o contact.o \ test_util.o test_prof_history.o prof_history.o util.o \ test_prof_autocomplete.o prof_autocomplete.o @@ -15,6 +15,7 @@ TESTOBJS = test_contact_list.o contact_list.o contact.o \ profanity: $(OBJS) $(CC) -o profanity $(OBJS) $(LIBS) +common.o: common.h log.o: log.h windows.o: windows.h util.h contact_list.h preferences.h title_bar.o: windows.h diff --git a/common.c b/common.c new file mode 100644 index 00000000..a015514d --- /dev/null +++ b/common.c @@ -0,0 +1,29 @@ +/* + * common.c + * + * Copyright (C) 2012 James Booth + * + * This file is part of Profanity. + * + * Profanity 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 3 of the License, or + * (at your option) any later version. + * + * Profanity 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. + * + * You should have received a copy of the GNU General Public License + * along with Profanity. If not, see . + * + */ + +#include + +void p_slist_free_full(GSList *items, GDestroyNotify free_func) +{ + g_slist_foreach (items, (GFunc) free_func, NULL); + g_slist_free (items); +} diff --git a/common.h b/common.h new file mode 100644 index 00000000..9966408a --- /dev/null +++ b/common.h @@ -0,0 +1,34 @@ +/* + * common.h + * + * Copyright (C) 2012 James Booth + * + * This file is part of Profanity. + * + * Profanity 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 3 of the License, or + * (at your option) any later version. + * + * Profanity 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. + * + * You should have received a copy of the GNU General Public License + * along with Profanity. If not, see . + * + */ + +#ifndef COMMON_H +#define COMMON_H + +#include + +#if !GLIB_CHECK_VERSION(2,28,0) +#define g_slist_free_full(items, free_func) p_slist_free_full(items, free_func) +#endif + +void p_slist_free_full(GSList *items, GDestroyNotify free_func); + +#endif diff --git a/prof_autocomplete.c b/prof_autocomplete.c index 85e78862..aed720e1 100644 --- a/prof_autocomplete.c +++ b/prof_autocomplete.c @@ -25,6 +25,7 @@ #include +#include "common.h" #include "prof_autocomplete.h" struct p_autocomplete_t {