about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2012-05-19 21:56:23 +0100
committerJames Booth <boothj5@gmail.com>2012-05-19 21:56:23 +0100
commit8c68fa0be51f9f12e971b01c6dc9c358a99cfb02 (patch)
treef62a95261a34e71879cf46015ada858efdafe1f0
parentf5338158321b6eb838adc08f139654a653bae6f4 (diff)
downloadprofani-tty-8c68fa0be51f9f12e971b01c6dc9c358a99cfb02.tar.gz
Added common module for glib compatibility
-rw-r--r--Makefile3
-rw-r--r--common.c29
-rw-r--r--common.h34
-rw-r--r--prof_autocomplete.c1
4 files changed, 66 insertions, 1 deletions
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 <boothj5@gmail.com>
+ * 
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <glib.h>
+
+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 <boothj5@gmail.com>
+ * 
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef COMMON_H
+#define COMMON_H
+
+#include <glib.h>
+
+#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 <glib.h>
 
+#include "common.h"
 #include "prof_autocomplete.h"
 
 struct p_autocomplete_t {