changeset 23657:ae3263bfd3f5

Another Perl loader patch from Zsombor Welker, this one adds some missing pref related functions. Fixes #4844
author Daniel Atallah <daniel.atallah@gmail.com>
date Thu, 07 Aug 2008 03:27:21 +0000
parents 907f5f41e32a
children 9d7ebd28d339
files libpurple/plugins/perl/common/Prefs.xs
diffstat 1 files changed, 60 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/plugins/perl/common/Prefs.xs	Thu Aug 07 03:10:44 2008 +0000
+++ b/libpurple/plugins/perl/common/Prefs.xs	Thu Aug 07 03:27:21 2008 +0000
@@ -60,6 +60,28 @@
 	g_list_free(t_GL);
 
 void
+purple_prefs_add_path(name, value)
+	const char *name
+	const char *value
+
+void
+purple_prefs_add_path_list(name, value)
+	const char *name
+	SV *value
+PREINIT:
+	GList *t_GL;
+	int i, t_len;
+PPCODE:
+	t_GL = NULL;
+	t_len = av_len((AV *)SvRV(value));
+
+	for (i = 0; i < t_len; i++)
+		t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(value), i, 0)));
+
+	purple_prefs_add_path_list(name, t_GL);
+	g_list_free(t_GL);
+
+void
 purple_prefs_destroy()
 
 guint
@@ -89,6 +111,21 @@
 purple_prefs_exists(name)
 	const char *name
 
+const char *
+purple_prefs_get_path(name)
+	const char *name
+
+void
+purple_prefs_get_path_list(name)
+	const char *name
+PREINIT:
+	GList *l;
+PPCODE:
+	for (l = purple_prefs_get_path_list(name); l != NULL; l = g_list_delete_link(l, l)) {
+		XPUSHs(sv_2mortal(newSVpv(l->data, 0)));
+		g_free(l->data);
+	}
+
 gboolean
 purple_prefs_get_bool(name)
 	const char *name
@@ -174,6 +211,29 @@
 	g_list_free(t_GL);
 
 void
+purple_prefs_set_path(name, value)
+	const char *name
+	const char *value
+
+void
+purple_prefs_set_path_list(name, value)
+	const char *name
+	SV *value
+PREINIT:
+	GList *t_GL;
+	int i, t_len;
+PPCODE:
+	t_GL = NULL;
+	t_len = av_len((AV *)SvRV(value));
+
+	for (i = 0; i < t_len; i++)
+		t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(value), i, 0)));
+
+	purple_prefs_set_path_list(name, t_GL);
+	g_list_free(t_GL);
+
+
+void
 purple_prefs_trigger_callback(name)
 	const char *name