diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-08-28 17:55:16 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-08-28 17:55:16 +0000 |
commit | 2deb8b3830b76bbca728b1302d1c2e235b50ed70 (patch) | |
tree | d48104a127b80c380b7a2c8ea55fbae983fd1d1d /src/channels.cpp | |
parent | 77663a52c6147637fcdd2a6bf1797840daa8bff5 (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
Diffstat (limited to 'src/channels.cpp')
-rw-r--r-- | src/channels.cpp | 10 |
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; } } |