summaryrefslogtreecommitdiff
path: root/wrapper/plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'wrapper/plugin.h')
-rw-r--r--wrapper/plugin.h136
1 files changed, 0 insertions, 136 deletions
diff --git a/wrapper/plugin.h b/wrapper/plugin.h
deleted file mode 100644
index 4672895..0000000
--- a/wrapper/plugin.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Copyright (C) 2009 Luke Shumaker
-
- This file is part of rvs.
-
- rvs 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 2, or (at your
- option) any later version.
-
- rvs 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 rvs; see the file COPYING.
- If not, write to the Free Software Foundation,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-#ifndef FILE_plugin_h_SEEN
-#define FILE_plugin_h_SEEN
-
-#include "rvs.h"
-
-/* a plugin */
-/* a generic binary tree emulating a n-ary tree via linked list */
-struct plugin
-{
- char *name;
- struct plugin_command *commands;/* left leaf */
- struct plugin *next; /* right leaf */
-};
-
-/* a single plugin command */
-struct plugin_command
-{
- /* node */
- char *name;
- struct plugin *plugin; /* which plugin does it belong to? */
- struct plugin_command *depend; /* what does this depend on? */
- char *depends;/* what does this depend on? (string) */
-
- /* linked list */
- struct plugin_command *next;
-};
-
-/* create a blank plugin_command */
-struct plugin_command *
-mkcommand()
-{
- struct plugin_command *command;
- command=(struct plugin_command *)xmalloc(sizeof(*command));
-
- /* node */
- command->name=NULL;
- command->plugin=NULL;
- command->depend=NULL;
- command->depends=NULL;
-
- /* linked list */
- command->next=NULL;
-
- return command;
-}
-
-
-struct plugin *
-plugin_find_plugin(struct plugin *node, char *name)
-{
-
- if (node==NULL)
- return node;
- else {
- if (strcmp(node->name,name) == 0)
- return node;
- else
- return plugin_find_plugin(node->next,name);
- }
-}
-
-struct plugin_command *
-plugin_find_plugin_command(struct plugin_command *node, char *name)
-{
- if (node==NULL)
- return node;
- else {
- if (strcmp(node->name,name) == 0)
- return node;
- else
- return plugin_find_plugin_command(node->next,name);
- }
-}
-
-/* returns the first command with `name' it finds
- Perhaps it should return a linked list of all commands with `name'?
- This would require a dedicated struct for the function.
- That makes me kind of want to move it to another file. */
-struct plugin_command *
-plugin_find_command(struct plugin *plugin, char *name)
-{
- struct plugin_command *ret;
- ret=plugin_find_plugin_command(plugin->commands,name);
- if (ret == NULL)
- ret=plugin_find_command(plugin->next,name);
- return ret;
-}
-
-void
-plugin_free_command(struct plugin_command *command)
-{
- if (command!=NULL) {
- #ifdef DEBUG
- printf(" + %s\n",command->name);
- #endif
- xfree(command->name);
- xfree(command->depends);
- xfree(command);
- plugin_free_command(command->next);
- }
-}
-
-void
-plugin_free_plugin(struct plugin *plugin)
-{
- if (plugin!=NULL) {
- #ifdef DEBUG
- printf(" - %s\n",plugin->name);
- #endif
- xfree(plugin->name);
- plugin_free_command(plugin->commands);
- plugin_free_plugin(plugin->next);
- }
-}
-
-#endif
-