From bddd6fb07906e660260ef0fced05440ecac8d9e9 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 24 Oct 2009 02:23:22 -0400 Subject: switching to git --- wrapper/plugin-depend.h | 113 +++++++++++------------------------------------- 1 file changed, 25 insertions(+), 88 deletions(-) (limited to 'wrapper/plugin-depend.h') diff --git a/wrapper/plugin-depend.h b/wrapper/plugin-depend.h index 6b18bde..580c03f 100644 --- a/wrapper/plugin-depend.h +++ b/wrapper/plugin-depend.h @@ -1,5 +1,7 @@ -/* Copyright (C) 2009 Luke Shumaker - system depends: +/* wrapper/plugin-parse.h -- parse rvs plugin config files + system depends: + Copyright (C) 2009 Luke Shumaker + This file is part of rvs. rvs is free software; you can redistribute it and/or modify it @@ -20,127 +22,62 @@ #ifndef FILE_plugin_depend_h_SEEN #define FILE_plugin_depend_h_SEEN -#include -#include - -#include "rvs.h" +#include "plugins.h" #include "plugin-find.h" /* translates a string in format `plugin/command' into a pointer to the command DON'T plan on using the string again, it will be mutilated! (so we go ahead and free() it and set the pointer to NULL) */ +extern struct plugin_command * plugin_depend_parse (char **string, struct plugin *plugins, - struct plugin_command *root) -{ - struct plugin_command *command=NULL; - - if (*string==NULL) - command=root; - else { - /* *string is in the format `plugin/command' */ - /* char *del=delimeter */ - char *del=strchr(*string,'/'); - del[0]='\0'; - /* *string = PLUGIN_NAME */ - /* &del[1] = COMMAND_NAME */ - struct plugin *plugin; - plugin =plugin_find_plugin(plugins, *string ); - if (plugin==NULL) - error(EXIT_FAILURE,0,"cannot find plugin `%s'",*string); - command=plugin_find_plugin_command(plugin->commands, &del[1] ); - if (command==NULL) - error(EXIT_FAILURE,0, - "plugin `%s' does not contain command `%s'", - *string,&del[1]); - xfree(*string); - *string=NULL; - } - return command; -} + struct plugin_command *root); /* used by plugin_depend_add */ +extern void _plugin_depend_add (struct plugin_command *prev, - struct plugin_command *next) -{ - if (prev->d_next==NULL) { - prev->d_next=next; - } else { - _plugin_depend_add(prev->d_next,next); - } -} + struct plugin_command *next); /* plugin_depend_add(depend,depender) */ +extern void plugin_depend_add (struct plugin_command *depend, - struct plugin_command *depender) -{ - if (depend->d_child==NULL) { - depend->d_child=depender; - } else { - _plugin_depend_add(depend->d_child,depender); - } -} + struct plugin_command *depender); /* take care of depends for `command' */ +extern void plugin_depend_command (struct plugin_command *command, struct plugin *plugins, - struct plugin_command *root, int ind) -{ - if (command!=NULL) { - if (command->depend == NULL) { - /* the depend still needs to be parsed */ - command->depend=plugin_depend_parse( - &(command->depends),plugins,root); - } - plugin_depend_add(command->depend,command); - } -} + struct plugin_command *root, int ind); /* take care of commands for a `plugin', and those after it (linked list) */ +extern void plugin_depend_plugin_all (struct plugin *plugin, struct plugin *plugins, - struct plugin_command *root) -{ - plugin_depend_command(plugin->commands,plugins,root,0); - if (plugin->next != NULL) { - plugin_depend_plugin_all(plugin->next,plugins,root); - } -} - + struct plugin_command *root); + /* take care of all depends */ +extern struct plugin_command * -plugin_depend_all (struct plugin *plugins) -{ - struct plugin_command *root=plugin_mk_command(); - - plugin_depend_plugin_all(plugins,plugins,root); - return root; -} +plugin_depend_all (struct plugin *plugins); +extern void _plugin_depend_list (struct plugin_command_list *commands, struct plugin *plugins, - struct plugin_command *root,int ind) -{ - if (commands!=NULL) { - plugin_depend_command(commands->command,plugins,root,ind++); - _plugin_depend_list(commands->next,plugins,root,ind++); - } -} + struct plugin_command *root,int ind); +extern struct plugin_command * plugin_depend_list (struct plugin_command_list *commands, - struct plugin *plugins) -{ - struct plugin_command *root=plugin_mk_command(); - _plugin_depend_list(commands,plugins,root,0); - return root; -} + struct plugin *plugins); + + + #endif -- cgit v1.2.3-2-g168b