1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-25 03:36:37 +02:00

Index: Changes

===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2428
diff -u -r1.1.1.1.2.1.2.1.2.2428 Changes
--- Changes	10 Jun 2007 03:02:24 -0000	1.1.1.1.2.1.2.1.2.2428
+++ Changes	10 Jun 2007 04:26:04 -0000
@@ -1752,3 +1752,5 @@
 - #0001317 reported by thilo regarding removal of (username) being
   appended to topics set by U:Lined servers.
 - Added missing semicolons to some help.conf entries
+- #0001518 reported by Cnils regarding new WHO functionality: +c with
+  no args now shows all users not in a channel if you are an IRCOp
This commit is contained in:
wolfsage
2007-06-10 04:26:08 +00:00
parent 4238193d07
commit 7b2b77df4e
2 changed files with 23 additions and 3 deletions
+2
View File
@@ -1752,3 +1752,5 @@ MOTDs
- #0001317 reported by thilo regarding removal of (username) being
appended to topics set by U:Lined servers.
- Added missing semicolons to some help.conf entries
- #0001518 reported by Cnils regarding new WHO functionality: +c with
no args now shows all users not in a channel if you are an IRCOp
+21 -3
View File
@@ -237,7 +237,8 @@ static void who_sendhelp(aClient *sptr)
"Flags are specified like channel modes, the flags chigmnsu all have arguments",
"Flags are set to a positive check by +, a negative check by -",
"The flags work as follows:",
"Flag a: user is away",
"Flag a: user is away",
"Flag c: user isn't a member of any channels",
"Flag c <channel>: user is on <channel>,",
" no wildcards accepted",
"Flag g <gcos/realname>: user has string <gcos> in his/her GCOS,",
@@ -314,7 +315,14 @@ int i = 1;
SET_OPTION(wfl.want_away);
break;
case 'c':
DOIT(wfl.channel, wfl.want_channel);
if (IsAnOper(sptr) && i >= argc)
{
SET_OPTION(wfl.want_channel);
}
else
{
DOIT(wfl.channel, wfl.want_channel);
}
break;
case 'g':
REQUIRE_PARAM()
@@ -445,6 +453,16 @@ char has_common_chan = 0;
/* if they only want people on a certain channel. */
if (wfl.want_channel != WHO_DONTCARE)
{
/* Opers only - show users not on any channels */
if (!wfl.channel)
{
int flg;
char *channel = first_visible_channel(sptr, acptr, &flg);
if (*channel == '*')
return WHO_CANSEE;
else
return WHO_CANTSEE;
}
aChannel *chan = find_channel(wfl.channel, NULL);
if (!chan && wfl.want_channel == WHO_WANT)
return WHO_CANTSEE;
@@ -630,7 +648,7 @@ static void do_channel_who(aClient *sptr, aChannel *channel, char *mask)
make_who_status(sptr, acptr, channel, cm, status, cansee);
send_who_reply(sptr, acptr, channel->chname, status, "");
}
}
}
static void make_who_status(aClient *sptr, aClient *acptr, aChannel *channel,