From e2e63f81e5ac06ecf5461cc0a8fd68077707de5d Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 6 Sep 2009 22:48:27 -0400 Subject: woops, forgot to `bzr add ./*' before commiting --- wrapper/debug.h | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++ wrapper/plugins | 1 + wrapper/structures.h | 60 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 143 insertions(+) create mode 100644 wrapper/debug.h create mode 120000 wrapper/plugins create mode 100644 wrapper/structures.h diff --git a/wrapper/debug.h b/wrapper/debug.h new file mode 100644 index 0000000..882ae11 --- /dev/null +++ b/wrapper/debug.h @@ -0,0 +1,82 @@ +/* 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_debug_c_SEEN +#define FILE_plugin_debug_c_SEEN + +#include +#include "structures.h" + +size_t +xstrlen (const char *s) +{ + printf("xstrlen(%p)\n",s); + size_t size=0; + while (s[size] != '\0') { + printf("%i = %p `%c'\n",size,&s[size],s[size]); + size++; + } + return size; +} + +void +print_tree_list (struct tree_list *node, unsigned int ind) +{ + if (node != NULL) { + unsigned int i; + for (i=0; i < ind; i++) printf(" "); + puts(node->node); + print_tree_list(node->child,ind++); + print_tree_list(node->next ,ind ); + } +} + +/* hack of the above */ + +void +_plugin_print_command (struct tree_list *command) +{ + if (command != NULL) { + struct command_plugin *node=(struct command_plugin *)command->node; + printf(" - %s\n",node->name); + if (node->depends != NULL) + printf(" depend string: %s\n",node->depends); + if (node->depend->plugin == NULL) { + puts (" depend: "); + } else { + printf(" depend: %s / %s\n", + node->depend->plugin->name, + node->depend->name); + } + _plugin_print_plugin_command(command->next); + } +} + +void +_plugin_print_plugin (struct tree_list *node) +{ + if (node != NULL ) { + puts(node->node); + _plugin_print_command(node->child,ind++); + _plugin_print_plugin(node->next ,ind ); + } +} + +#endif + diff --git a/wrapper/plugins b/wrapper/plugins new file mode 120000 index 0000000..b1f2dbf --- /dev/null +++ b/wrapper/plugins @@ -0,0 +1 @@ +../plugins/ \ No newline at end of file diff --git a/wrapper/structures.h b/wrapper/structures.h new file mode 100644 index 0000000..fd53d09 --- /dev/null +++ b/wrapper/structures.h @@ -0,0 +1,60 @@ +/* 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_structures_h_SEEN +#define FILE_structures_h_SEEN + +#include "string.h" + +/*----------------------------structures----------------------------*/ + +/* a generic binary tree emulating a n-ary tree via linked list */ +struct tree_list +{ + void *node; + struct tree_list *child;/* left leaf */ + struct tree_list *next; /* right leaf */ +}; + +/* a generic binary tree */ +struct tree_node +{ + void *node; + struct tree_node *left; + struct tree_node *right; +}; + +/*----------------------------functions-----------------------------*/ + +/* find a node with `name'. in the current layer of tree_list */ +struct tree_list * +ds_tree_list_find (struct tree_list *node, char *name) +{ + if (strcmp(node->node,name) == 0) + return node; + else { + if (node->next==NULL) + return NULL; + else + return ds_tree_list_find(node->next,name); + } +} + +#endif + -- cgit v1.1-4-g5e80