void printTree(TreeKeyIdx treeKey, TreeKeyIdx *target = 0, int level = 1) { if (!target) target = &treeKey; unsigned long currentOffset = target->getOffset(); std::cout << ((currentOffset == treeKey.getOffset()) ? "==>" : ""); for (int i = 0; i < level; i++) std::cout << "\t"; std::cout << treeKey.getLocalName() << "/\n"; if (treeKey.firstChild()) { printTree(treeKey, target, level+1); treeKey.parent(); } if (treeKey.nextSibling()) printTree(treeKey, target, level); }
void setEntryText(RawGenBook *book) { SWBuf body; TreeKeyIdx *treeKey = (TreeKeyIdx *)(SWKey *)(*book); if (treeKey->getOffset()) { char buf[1023]; std::cout << "Enter New Entry Text ('.' on a line by itself to end): \n"; do { fgets(buf, 1000, stdin); SWBuf text = buf; text.trim(); if ((text[0] == '.') && (text[1] == 0)) break; body += text; body += "\n"; } while (true); (*book) << body.c_str(); } else std::cout << "Can't add entry text to root node\n"; }
int TreeKeyIdx::_compare (const TreeKeyIdx & ikey) { return (getOffset() - ikey.getOffset()); }