aboutsummaryrefslogtreecommitdiffstats
path: root/src/channels.cpp
diff options
context:
space:
mode:
authorGravatar brain2006-09-10 19:48:30 +0000
committerGravatar brain2006-09-10 19:48:30 +0000
commit1a3297e97427c3dd6c0d25c6c0591fbbdb94d8a7 (patch)
tree03cd44ffb6650ac29c50387daf44f4abae1bc807 /src/channels.cpp
parentMake it neater (diff)
* Fix ChanModes::ModeString to not try and set a key as a user mode ;)
* Tweak the way cyclehosts works, so that mode change is not echoed back to user who changes their host/ident git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5208 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/channels.cpp')
-rw-r--r--src/channels.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/channels.cpp b/src/channels.cpp
index 732b253cc..8dd8b490e 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -690,28 +690,25 @@ void chanrec::WriteChannelWithServ(const char* ServName, const std::string &text
/* write formatted text from a source user to all users on a channel except
* for the sender (for privmsg etc) */
-void chanrec::WriteAllExceptSender(userrec* user, char status, char* text, ...)
+void chanrec::WriteAllExceptSender(userrec* user, bool serversource, char status, char* text, ...)
{
char textbuffer[MAXBUF];
va_list argsPtr;
- if (!user || !text)
+ if (!text)
return;
va_start(argsPtr, text);
vsnprintf(textbuffer, MAXBUF, text, argsPtr);
va_end(argsPtr);
- this->WriteAllExceptSender(user, status, std::string(textbuffer));
+ this->WriteAllExceptSender(user, serversource, status, std::string(textbuffer));
}
-void chanrec::WriteAllExceptSender(userrec* user, char status, const std::string& text)
+void chanrec::WriteAllExceptSender(userrec* user, bool serversource, char status, const std::string& text)
{
CUList *ulist;
- if (!user)
- return;
-
switch (status)
{
case '@':
@@ -731,7 +728,12 @@ void chanrec::WriteAllExceptSender(userrec* user, char status, const std::string
for (CUList::iterator i = ulist->begin(); i != ulist->end(); i++)
{
if ((IS_LOCAL(i->second)) && (user != i->second))
- i->second->WriteFrom(user,text);
+ {
+ if (serversource)
+ i->second->WriteServ(text);
+ else
+ i->second->WriteFrom(user,text);
+ }
}
}