about summary refs log tree commit diff stats
path: root/src/plugins
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2016-06-30 23:14:05 +0100
committerJames Booth <boothj5@gmail.com>2016-06-30 23:14:05 +0100
commitef6bad483eef8f83393623127e1a27a46fa8b221 (patch)
treee4397de79130f2be53d347f7eec957d917cb0169 /src/plugins
parent56480ce9ea25697215e677d029f0ad25f9cc8b99 (diff)
downloadprofani-tty-ef6bad483eef8f83393623127e1a27a46fa8b221.tar.gz
/plugins unload command and completer
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/plugins.c20
-rw-r--r--src/plugins/plugins.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/plugins.c b/src/plugins/plugins.c
index 5757a174..707ca497 100644
--- a/src/plugins/plugins.c
+++ b/src/plugins/plugins.c
@@ -172,6 +172,12 @@ plugins_load(const char *const name)
     }
 }
 
+gboolean
+plugins_unload(const char *const name)
+{
+    return FALSE;
+}
+
 GSList *
 plugins_get_list(void)
 {
@@ -218,6 +224,20 @@ plugins_unloaded_list(void)
     return result;
 }
 
+GSList*
+plugins_loaded_list(void)
+{
+    GSList *result = NULL;
+    GSList *curr = plugins;
+    while (curr) {
+        ProfPlugin *plugin = curr->data;
+        result = g_slist_append(result, plugin->name);
+        curr = g_slist_next(curr);
+    }
+
+    return result;
+}
+
 char *
 plugins_autocomplete(const char * const input)
 {
diff --git a/src/plugins/plugins.h b/src/plugins/plugins.h
index b03248ab..a5b10a3e 100644
--- a/src/plugins/plugins.h
+++ b/src/plugins/plugins.h
@@ -100,11 +100,13 @@ typedef struct prof_plugin_t {
 void plugins_init(void);
 GSList* plugins_get_list(void);
 GSList *plugins_unloaded_list(void);
+GSList *plugins_loaded_list(void);
 char* plugins_autocomplete(const char *const input);
 void plugins_reset_autocomplete(void);
 void plugins_shutdown(void);
 
 gboolean plugins_load(const char *const name);
+gboolean plugins_unload(const char *const name);
 
 void plugins_on_start(void);
 void plugins_on_shutdown(void);