X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Console%2FNode.cc;h=5e1e42786e51370b34db4a9a730d41dfc98305ba;hb=f85e1ac1d9bddeafd54b2171b8c7dd611842f7d3;hp=f21ab663d86249d8bcb6bc8c46db46b5eecf7486;hpb=9c0078ac0054789badff2a987364ed0448b080ef;p=senf.git diff --git a/Console/Node.cc b/Console/Node.cc index f21ab66..5e1e427 100644 --- a/Console/Node.cc +++ b/Console/Node.cc @@ -73,20 +73,28 @@ senf::console::DirectoryNode::remove(std::string const & name) throw UnknownNodeNameException() << ": '" << name << "'"; GenericNode::ptr node (i->second); children_.erase(i); + node->parent_ = 0; + node->name_.clear(); return node; } prefix_ void senf::console::DirectoryNode::add(GenericNode::ptr node) { BOOST_ASSERT( ! node->parent() ); + if (node->name().empty()) { + node->name("unnamed"); + SENF_LOG((senf::log::MESSAGE)("Adding 'unnamed' node")); + } if (children_.find(node->name()) != children_.end()) { unsigned suffix (0); std::string newName; do { ++suffix; - newName = node->name() + boost::lexical_cast(suffix); + newName = node->name() + "-" + boost::lexical_cast(suffix); } while (children_.find(newName) != children_.end()); - name(*node, newName); + SENF_LOG((senf::log::MESSAGE)("Uniquifying node '" << node->name() << "' to '" + << newName << "'")); + node->name(newName); } children_.insert(std::make_pair(node->name(),node)); node->parent_ = this;