+\r
+static void crawl_class(struct ir_class_t*);\r
+static void crawl_set(struct ir_set_t*,int);\r
+void ir_test(void)\r
+{ uprintf("IR From Directory: %s\n",getcwd(NULL,255));\r
+ crawl_class(&root_class);\r
+}\r
+\r
+#define pspace(num) for (i = 0; i < (num); i++) putchar('.')\r
+static\r
+void crawl_class\r
+( struct ir_class_t* class )\r
+{ struct ir_class_t* iter;\r
+ wprintf("%U/\n", class->name);\r
+ if(chdir((char*)class->name))\r
+ eprintf("CHDIR %U from %s\n",class->name,getcwd(NULL,255));\r
+ if (class->nextchild != NULL)\r
+ crawl_class(class->nextchild);\r
+ if (class->root_set != NULL)\r
+ crawl_set(class->root_set, 0);\r
+ if (class->nextsib != NULL)\r
+ { if (chdir(".."))\r
+ eprintf("CHDIR ..\n");\r
+ for (iter = class->nextsib; iter != NULL; iter = iter->nextsib)\r
+ crawl_class(iter);\r
+ if(chdir((char*)class->name))\r
+ eprintf("CHDIR %U from %s\n",class->name,getcwd(NULL,255));\r
+ }\r
+ uprintf("\n%U\\\n",class->name);\r
+ if (chdir(".."))\r
+ eprintf("CHDIR ..\n");\r
+}\r
+\r
+static\r
+void crawl_set\r
+( struct ir_set_t* set,\r
+ int depth\r
+)\r
+{ struct ir_set_t* iter;\r
+ int i;\r
+ pspace(depth * 10);\r
+ i = 0;\r
+ for(iter = set; iter != NULL; iter = iter->nextchild, ++i)\r
+ uprintf("[%8U]", iter->name);\r
+ if (i)\r
+ putchar('\n');\r
+ i = 0;\r
+ for(iter = set->nextchild; iter != NULL; iter = iter->nextchild)\r
+ if (iter->nextsib != NULL)\r
+ crawl_set(iter->nextsib, ++i);\r
+ for(iter = set->nextsib; iter != NULL; iter = iter->nextsib)\r
+ crawl_set(iter, depth);\r
+}\r