+const char* ELine::Displayable()
+{
+ return matchtext.c_str();
+}
+
+const char* KLine::Displayable()
+{
+ return matchtext.c_str();
+}
+
+const char* GLine::Displayable()
+{
+ return matchtext.c_str();
+}
+
+const char* ZLine::Displayable()
+{
+ return ipaddr;
+}
+
+const char* QLine::Displayable()
+{
+ return nick;
+}
+
+bool KLine::IsBurstable()
+{
+ return false;
+}
+
+bool XLineManager::RegisterFactory(XLineFactory* xlf)
+{
+ XLineFactMap::iterator n = line_factory.find(xlf->GetType());
+
+ if (n != line_factory.end())
+ return false;
+
+ line_factory[xlf->GetType()] = xlf;
+
+ return true;
+}
+
+bool XLineManager::UnregisterFactory(XLineFactory* xlf)
+{
+ XLineFactMap::iterator n = line_factory.find(xlf->GetType());
+
+ if (n == line_factory.end())
+ return false;
+
+ line_factory.erase(n);
+
+ return true;
+}
+
+XLineFactory* XLineManager::GetFactory(const std::string &type)
+{
+ XLineFactMap::iterator n = line_factory.find(type);
+
+ if (n == line_factory.end())
+ return NULL;
+
+ return n->second;
+}