=================================================================== RCS file: /cvs/djgpp/djgpp/src/mkdoc/mkdoc.cc,v retrieving revision 1.21 retrieving revision 1.22 diff -p -u -r1.21 -r1.22 --- djgpp/src/mkdoc/mkdoc.cc 2008/08/16 17:22:56 1.21 +++ /cvs/djgpp/djgpp/src/mkdoc/mkdoc.cc 2008/08/16 17:36:50 1.22 @@ -155,6 +155,7 @@ struct TreeNode { N *node; TreeNode(char *name, N *n); void Traverse(void (*tf)(TreeNode *)); + int Compare(char *sn); void pnode(char *up); }; @@ -644,6 +645,13 @@ TreeNode::Traverse(void (*tf)(TreeNod } template +int +TreeNode::Compare(char *sn) +{ + return strcmp(sname, sn); +} + +template Tree::Tree() { nodes = 0; @@ -656,7 +664,7 @@ Tree::add(TreeNode *tp) TreeNode **np = &nodes; while (*np) { - if (strcmp((*np)->sname, tp->sname) < 0) + if ((*np)->Compare(tp->sname) < 0) { tp->prev = *np; np = &((*np)->after); @@ -689,12 +697,13 @@ Tree::find(char *name) TreeNode *tn = nodes; while (tn) { - if (strcmp(tn->sname, sname) == 0) + int c = tn->Compare(sname); + if (c == 0) { free(sname); return tn; } - if (strcmp(sname, tn->sname) < 0) + if (c > 0) tn = tn->before; else tn = tn->after;