about summary refs log tree commit diff stats
path: root/src/plugins
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2016-08-01 22:09:25 +0100
committerJames Booth <boothj5@gmail.com>2016-08-01 22:09:25 +0100
commitb2508be8f4f91c44846b5bf69d239a22293d2bc6 (patch)
tree38821064023b948ba44295f816c7fca4dc5945ab /src/plugins
parentb72bb3a1572d5050f129ae5c644449b5302dacf6 (diff)
downloadprofani-tty-b2508be8f4f91c44846b5bf69d239a22293d2bc6.tar.gz
Return boolean on prof_settings_string_list_remove_all()
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/api.c4
-rw-r--r--src/plugins/api.h2
-rw-r--r--src/plugins/python_api.c13
-rw-r--r--src/plugins/settings.c6
-rw-r--r--src/plugins/settings.h2
5 files changed, 18 insertions, 9 deletions
diff --git a/src/plugins/api.c b/src/plugins/api.c
index 2c903b97..e89ce454 100644
--- a/src/plugins/api.c
+++ b/src/plugins/api.c
@@ -440,10 +440,10 @@ api_settings_string_list_remove(const char *const group, const char *const key,
     return plugin_settings_string_list_remove(group, key, value);
 }
 
-void
+int
 api_settings_string_list_remove_all(const char *const group, const char *const key)
 {
-    plugin_settings_string_list_remove_all(group, key);
+    return plugin_settings_string_list_remove_all(group, key);
 }
 
 int
diff --git a/src/plugins/api.h b/src/plugins/api.h
index 1e6c4bd2..28dfee57 100644
--- a/src/plugins/api.h
+++ b/src/plugins/api.h
@@ -87,7 +87,7 @@ void api_settings_set_int(const char *const group, const char *const key, int va
 char** api_settings_get_string_list(const char *const group, const char *const key);
 void api_settings_string_list_add(const char *const group, const char *const key, const char *const value);
 int api_settings_string_list_remove(const char *const group, const char *const key, const char *const value);
-void api_settings_string_list_remove_all(const char *const group, const char *const key);
+int api_settings_string_list_remove_all(const char *const group, const char *const key);
 
 void api_incoming_message(const char *const barejid, const char *const resource, const char *const message);
 
diff --git a/src/plugins/python_api.c b/src/plugins/python_api.c
index 805f3558..27314d83 100644
--- a/src/plugins/python_api.c
+++ b/src/plugins/python_api.c
@@ -850,10 +850,13 @@ python_api_settings_get_string_list(PyObject *self, PyObject *args)
         PyObject *py_curr = Py_BuildValue("s", c_list[i]);
         int res = PyList_Append(py_list, py_curr);
         if (res != 0) {
+            g_strfreev(c_list);
             Py_RETURN_NONE;
         }
     }
 
+    g_strfreev(c_list);
+
     return Py_BuildValue("O", py_list);
 }
 
@@ -918,19 +921,23 @@ python_api_settings_string_list_remove_all(PyObject *self, PyObject *args)
     PyObject *key = NULL;
 
     if (!PyArg_ParseTuple(args, "OO", &group, &key)) {
-        Py_RETURN_NONE;
+        return Py_BuildValue("O", Py_False);
     }
 
     char *group_str = python_str_or_unicode_to_string(group);
     char *key_str = python_str_or_unicode_to_string(key);
 
     allow_python_threads();
-    api_settings_string_list_remove_all(group_str, key_str);
+    int res = api_settings_string_list_remove_all(group_str, key_str);
     free(group_str);
     free(key_str);
     disable_python_threads();
 
-    Py_RETURN_NONE;
+    if (res) {
+        return Py_BuildValue("O", Py_True);
+    } else {
+        return Py_BuildValue("O", Py_False);
+    }
 }
 
 static PyObject*
diff --git a/src/plugins/settings.c b/src/plugins/settings.c
index 8a42095a..77d3fb4b 100644
--- a/src/plugins/settings.c
+++ b/src/plugins/settings.c
@@ -155,15 +155,17 @@ plugin_settings_string_list_remove(const char *const group, const char *const ke
     return res;
 }
 
-void
+int
 plugin_settings_string_list_remove_all(const char *const group, const char *const key)
 {
     if (!g_key_file_has_key(settings, group, key, NULL)) {
-        return;
+        return 0;
     }
 
     g_key_file_remove_key(settings, group, key, NULL);
     _save_settings();
+
+    return 1;
 }
 
 static void
diff --git a/src/plugins/settings.h b/src/plugins/settings.h
index 8d1a6954..f3a5bf6d 100644
--- a/src/plugins/settings.h
+++ b/src/plugins/settings.h
@@ -47,6 +47,6 @@ void plugin_settings_set_int(const char *const group, const char *const key, int
 char** plugin_settings_get_string_list(const char *const group, const char *const key);
 void plugin_settings_string_list_add(const char *const group, const char *const key, const char *const value);
 int plugin_settings_string_list_remove(const char *const group, const char *const key, const char *const value);
-void plugin_settings_string_list_remove_all(const char *const group, const char *const key);
+int plugin_settings_string_list_remove_all(const char *const group, const char *const key);
 
 #endif