diff options
Diffstat (limited to 'wrapper/plugin.h')
-rw-r--r-- | wrapper/plugin.h | 136 |
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 - |