fprintf(stderr, "Error: data structure has not been constructed properly\n");\r
exit(1);\r
}\r
-\r
- return parent(Par, x);\r
+ if (x == Root())\r
+ return NULLT;\r
+ else\r
+ return parent(Par, x);\r
}\r
\r
// Child(x,i): returns the i-th child of node x, assuming it exists.\r
fprintf(stderr, "Error: data structure has not been constructed properly\n");\r
exit(1);\r
}\r
-\r
+ if (x == Root())\r
+ return NULLT;\r
+ \r
return next_sibling(Par, x);\r
}\r
\r
}\r
\r
\r
-\r
+TagType XMLTree::RegisterTag(unsigned char *tagname)\r
+{\r
+ if (!finished)\r
+ return NULLT;\r
+ \r
+\r
+ TagType id = XMLTree::GetTagId(tagname);\r
+ if (id == NULLT){\r
+ id = ntagnames;\r
+ ntagnames = ntagnames + 1; \r
+ TagName = (unsigned char **) realloc(TagName,ntagnames*(sizeof(unsigned char*)));\r
+ strcpy((char*)TagName[id], (const char *)tagname); \r
+ };\r
+\r
+ return id;\r
+}\r