copy:\r
name = (uint8_t*)namepages.head->header.head;\r
iter = name_src;\r
- for (head_mem = PL_HEADMEM(namepages); *iter && *iter != '_' && head_mem; head_mem--)\r
+ for (head_mem = PL_HEADMEM(namepages); *iter && *iter != '_' && *iter != '.' && head_mem; head_mem--)\r
*(namepages.head->header.head)++ = *iter++;\r
if (head_mem < 1) //not enough room\r
{ pagelist_alloc(namepages);\r
return name;\r
}\r
\r
-static void crawl_class(struct ir_class_t*,int);\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,0);\r
+ crawl_class(&root_class);\r
}\r
\r
-#define pspace(num) for (i = 0; i < (num); i++) putchar(' ')\r
+#define pspace(num) for (i = 0; i < (num); i++) putchar('.')\r
static\r
void crawl_class\r
-( struct ir_class_t* class,\r
- int depth\r
-)\r
+( struct ir_class_t* class )\r
{ struct ir_class_t* iter;\r
- /*if(chdir((char*)class->name))\r
- eprintf("CHDIR %U\n",class->name);\r
- else\r
- wprintf("chdir %U\n",class->name);*/\r
- if (class->nextchild != NULL)\r
- { iter = class->nextchild;\r
- do {\r
- crawl_class(iter,depth + 1);\r
- /*if (chdir(".."))\r
- eprintf("CHDIR ..\n");*/\r
- } while ((iter = iter->nextsib) != NULL);\r
+ for (iter = class->nextchild; iter != NULL; iter = iter->nextsib)\r
+ { wprintf("%U/\n", iter->name);\r
+ if(chdir((char*)iter->name))\r
+ eprintf("CHDIR %U from %s\n",iter->name,getcwd(NULL,255));\r
+ crawl_class(iter);\r
+ if (iter->root_set != NULL)\r
+ crawl_set(iter->root_set, 0);\r
+ uprintf("%U\\\n",iter->name);\r
+ if (chdir(".."))\r
+ eprintf("CHDIR ..\n");\r
}\r
- wprintf("%U/\n", class->name);\r
- if (class->root_set != NULL)\r
- crawl_set(class->root_set,0);\r
- uprintf("\n%U\\\n",class->name);\r
}\r
\r
static\r
( struct ir_set_t* set,\r
int depth\r
)\r
-{ struct ir_set_t* iter;\r
- int i = depth * 10;\r
- pspace(i);\r
- i = 0;\r
- for(iter = set->nextchild; iter != NULL; iter = iter->nextchild)\r
- { uprintf("[%8U]", iter->name);\r
- }\r
- for(iter = set->nextchild; iter != NULL; iter = iter->nextchild)\r
- { if (iter->nextsib != NULL)\r
- crawl_set(iter->nextsib, i);\r
+{ struct ir_set_t* setlist[64], ** slp, * iter;\r
+ int i;\r
+ pspace(depth * 12);\r
+ i = depth;\r
+ slp = setlist;\r
+ for(iter = set; iter != NULL; iter = iter->nextchild)\r
+ { uprintf("[%10U]", iter->name);\r
+ *slp++ = iter;\r
i++;\r
}\r
- for(iter = set->nextchild; iter != NULL; iter = iter->nextchild)\r
- crawl_set(iter, depth + 1);\r
+ --i;\r
putchar('\n');\r
+ for(iter = *--slp; slp >= setlist; iter = *--slp, --i)\r
+ if (iter->nextsib != NULL)\r
+ crawl_set(iter->nextsib,i);\r
}\r