=================================================================== RCS file: /cvs/djgpp/djgpp/src/mkdoc/mkdoc.cc,v retrieving revision 1.40 retrieving revision 1.41 diff -p -u -r1.40 -r1.41 --- djgpp/src/mkdoc/mkdoc.cc 2008/08/18 07:41:55 1.40 +++ /cvs/djgpp/djgpp/src/mkdoc/mkdoc.cc 2008/08/18 08:48:49 1.41 @@ -115,13 +115,14 @@ struct TreeNode { }; template -struct Tree { +class Tree { TreeNode *nodes; - Tree(); - ~Tree(); - void add(TreeNode *n); - void Traverse(void (*tf)(const TreeNode *)) const; - TreeNode *find(const char *name); +public: + Tree() : nodes(NULL) {} + ~Tree() { delete nodes; } + void Add(TreeNode *); + TreeNode *Find(const char *); + void Traverse(void (*tf)(const TreeNode *)) const { nodes->Traverse(tf); } void Print1(void) const; }; @@ -724,20 +725,8 @@ const char *TreeNode::up(void) co } template -Tree::Tree() -{ - nodes = 0; -} - -template -Tree::~Tree() -{ - delete nodes; -} - -template void -Tree::add(TreeNode *tp) +Tree::Add(TreeNode *tp) { TreeNode **np = &nodes; while (*np) @@ -761,15 +750,8 @@ Tree::add(TreeNode *tp) } template -void -Tree::Traverse(void (*tf)(const TreeNode *)) const -{ - nodes->Traverse(tf); -} - -template TreeNode * -Tree::find(const char *name) +Tree::Find(const char *name) { char *sname = make_sname(name); TreeNode *tn = nodes; @@ -788,7 +770,7 @@ Tree::find(const char *name) } free(sname); tn = new TreeNode(name, new Tree); - add(tn); + Add(tn); return tn; } @@ -909,8 +891,8 @@ static void scan_directory(const char *w curnode = new Node(lines, name, filename); sprintf(buf, "@c From file %s\n", filename); lines.Add(buf); - nodes.add(new TreeNode(name, &lines)); - categories.find(cat)->node->add(new TreeNode(name, NULL)); + nodes.Add(new TreeNode(name, &lines)); + categories.Find(cat)->node->Add(new TreeNode(name, NULL)); } else {