summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/xline.h4
-rw-r--r--src/xline.cpp16
2 files changed, 20 insertions, 0 deletions
diff --git a/include/xline.h b/include/xline.h
index d1fe0e882..4be5922d0 100644
--- a/include/xline.h
+++ b/include/xline.h
@@ -517,6 +517,10 @@ class CoreExport XLineManager : public classbase
*/
XLineLookup* GetAll(const std::string &type);
+ /** Remove all lines of a certain type.
+ */
+ void DelAll(const std::string &type);
+
/** Return all known types of line currently stored by the XLineManager.
* @return A vector containing all known line types currently stored in the main list.
*/
diff --git a/src/xline.cpp b/src/xline.cpp
index 5d5a95516..0878ec286 100644
--- a/src/xline.cpp
+++ b/src/xline.cpp
@@ -116,6 +116,22 @@ XLineLookup* XLineManager::GetAll(const std::string &type)
return &(n->second);
}
+void XLineManager::DelAll(const std::string &type)
+{
+ ContainerIter n = lookup_lines.find(type);
+
+ if (n == lookup_lines.end())
+ return;
+
+ LookupIter x;
+
+ /* Delete all of a given type (this should probably use DelLine, but oh well) */
+ while ((x = n->second.begin()) != n->second.end())
+ {
+ ExpireLine(n, x);
+ }
+}
+
std::vector<std::string> XLineManager::GetAllTypes()
{
std::vector<std::string> items;