Commit Diff
Diff:
c74115f25c8ea3f67c75120c0a1398975bac03ad
74514b8c233eebc95fe0cc1116074dcf6899d841
Commit:
74514b8c233eebc95fe0cc1116074dcf6899d841
Tree:
008bb228d4926ef1a2effe06a370b87bff3f4185
Author:
Federico G. Schwindt <fgsch@lodoss.net>
Committer:
Federico G. Schwindt <fgsch@lodoss.net>
Date:
Sun Aug 4 20:16:03 2013 UTC
Message:
Convert more code to use Channel_HasMode
blob - d06caa3161f255f45d891ebea39210bc0282c574
blob + 6f20b03fb9297e006f897017d429f10a9328f880
--- src/ngircd/irc-channel.c
+++ src/ngircd/irc-channel.c
@@ -657,7 +657,7 @@ IRC_LIST( CLIENT *Client, REQUEST *Req )
GLOBAL bool
IRC_CHANINFO( CLIENT *Client, REQUEST *Req )
{
- char modes_add[COMMAND_LEN], l[16], *ptr;
+ char modes_add[COMMAND_LEN], l[16];
CLIENT *from;
CHANNEL *chan;
int arg_topic;
@@ -688,9 +688,8 @@ IRC_CHANINFO( CLIENT *Client, REQUEST *Req )
return CONNECTED;
if (Req->argv[1][0] == '+') {
- ptr = Channel_Modes(chan);
- if (!*ptr) {
- /* OK, this channel doesn't have modes jet,
+ if (!Channel_Modes(chan)) {
+ /* OK, this channel doesn't have modes yet,
* set the received ones: */
Channel_SetModes(chan, &Req->argv[1][1]);
@@ -706,22 +705,16 @@ IRC_CHANINFO( CLIENT *Client, REQUEST *Req )
}
strcpy(modes_add, "");
- ptr = Channel_Modes(chan);
- while (*ptr) {
- if (*ptr == 'l') {
- snprintf(l, sizeof(l), " %lu",
- Channel_MaxUsers(chan));
- strlcat(modes_add, l,
- sizeof(modes_add));
- }
- if (*ptr == 'k') {
- strlcat(modes_add, " ",
- sizeof(modes_add));
- strlcat(modes_add, Channel_Key(chan),
- sizeof(modes_add));
- }
- ptr++;
+ if (Channel_HasMode(chan, 'l')) {
+ snprintf(l, sizeof(l), " %lu",
+ Channel_MaxUsers(chan));
+ strlcat(modes_add, l, sizeof(modes_add));
}
+ if (Channel_HasMode(chan, 'k')) {
+ strlcat(modes_add, " ", sizeof(modes_add));
+ strlcat(modes_add, Channel_Key(chan),
+ sizeof(modes_add));
+ }
/* Inform members of this channel */
IRC_WriteStrChannelPrefix(Client, chan, from, false,
@@ -734,8 +727,7 @@ IRC_CHANINFO( CLIENT *Client, REQUEST *Req )
if (arg_topic > 0) {
/* We got a topic */
- ptr = Channel_Topic( chan );
- if (!*ptr && Req->argv[arg_topic][0]) {
+ if (!Channel_Topic( chan ) && Req->argv[arg_topic][0]) {
/* OK, there is no topic jet */
Channel_SetTopic(chan, Client, Req->argv[arg_topic]);
IRC_WriteStrChannelPrefix(Client, chan, from, false,
IRCNow