From e1c9e116260d56fce4d1722c62434f9ddb2b229d Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 6 Sep 2009 13:03:37 -0400 Subject: rework the structure of the depend functions --- wrapper/plugin-depend.c | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) (limited to 'wrapper') diff --git a/wrapper/plugin-depend.c b/wrapper/plugin-depend.c index f0e62d7..11a87eb 100644 --- a/wrapper/plugin-depend.c +++ b/wrapper/plugin-depend.c @@ -24,7 +24,7 @@ DON'T plan on using the string again, it will be mutilated! (so we go ahead and free() it) */ struct plugin_command * -_plugin_depend_parse(struct plugin *root, char *string) +_plugin_depend_parse (char *string, struct plugin_command *root) { char *c=strchr(string,'/'); c[0]='\0'; @@ -36,7 +36,8 @@ _plugin_depend_parse(struct plugin *root, char *string) /* used by _plugin_depend_add */ void -_plugin_depend_add2(struct plugin_command *prev, struct plugin_command *next) +_plugin_depend_add2 (struct plugin_command *prev, + struct plugin_command *next) { if (prev->d_next==NULL) { prev->d_next=next; @@ -47,7 +48,8 @@ _plugin_depend_add2(struct plugin_command *prev, struct plugin_command *next) /* _plugin_depend_add(depend,depender) */ void -_plugin_depend_add(struct plugin_command *depend, struct plugin_command *depender) +_plugin_depend_add (struct plugin_command *depend, + struct plugin_command *depender) { if (depend->child==NULL) { depend->child=depender; @@ -58,37 +60,48 @@ _plugin_depend_add(struct plugin_command *depend, struct plugin_command *depende /* take care of depends for `command', and those after it (linked list) */ void -_plugin_depend_command(struct plugin_command *command, struct plugin_tree *tree) +_plugin_depend_command (struct plugin_command *command, + struct plugin_command *root) { if (command->depends == NULL) { - command->depend=tree->depends; + command->depend=root; } else { - command->depend=_plugin_depend_parse(tree->plugins,command->depends); + command->depend=_plugin_depend_parse(root,command->depends); command->depends=NULL; } _plugin_depend_add(command->depend,command); if (command->p_next != NULL) - _plugin_depend_command(command->p_next,tree); + _plugin_depend_command(command->p_next,root); } /* take care of commands for a `plugin', and those after it (linked list) */ void -_plugin_depend_plugin(struct plugin *plugin, struct plugin_tree *tree) +_plugin_depend_plugin_all (struct plugin *plugin, struct plugin_command *root) { - _plugin_depend_command(plugin->child,tree); + _plugin_depend_command(plugin->child,root); if (plugin->next != NULL) { - _plugin_depend_plugin(plugin->next,tree); + _plugin_depend_plugin_all(plugin->next,root); } } /* take care of all depends */ -void -_plugin_depend(struct plugin_tree *tree) +struct plugin_command * +_plugin_depend_all (struct plugin_command *plugins) +{ + struct plugin_command *root=mkcommand(); + + _plugin_depend_plugin_all(*plugins,root); + return root; +} + +/* take care of all depends for a particular command */ +struct plugin_command * +_plugin_depend_name (char *name, struct plugin_command *plugins) { - struct plugin_command *command=mkcommand(); - tree->depends=command; + struct plugin_command *root=mkcommand(); - _plugin_depend_plugin(tree->plugins,tree); + /* code goes here */ + return root; } #endif -- cgit v1.2.3-2-g168b