summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-28 17:55:16 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-28 17:55:16 +0000
commit2deb8b3830b76bbca728b1302d1c2e235b50ed70 (patch)
treed48104a127b80c380b7a2c8ea55fbae983fd1d1d
parent77663a52c6147637fcdd2a6bf1797840daa8bff5 (diff)
YOU KNOW I REALLY HATE IT WHEN CLIENT AUTHORS JUST MAKE ASSUMPTIONS ON THINGS LIKE "oh all prefixes in NAMESX will always be in rank order".
So tell me, zed, where the FUCK does it say that? huh?! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5051 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/channels.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/channels.cpp b/src/channels.cpp
index 345ec79dd..780251f5f 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -921,12 +921,20 @@ const char* chanrec::GetAllPrefixChars(userrec* user)
int ctr = 0;
*prefix = 0;
+ /* Cheat and always put the highest first.
+ * This fixes a NASTY ass-umption in xchat.
+ */
+ const char* first = this->GetPrefixChar(user);
+ if (*first)
+ prefix[ctr++] = *first;
+
prefixlist::iterator n = prefixes.find(user);
if (n != prefixes.end())
{
for (std::vector<prefixtype>::iterator x = n->second.begin(); x != n->second.end(); x++)
{
- prefix[ctr++] = x->first;
+ if (x->first != *first)
+ prefix[ctr++] = x->first;
}
}