focus the channel if it's already open (issue #406)

This commit is contained in:
misdre 2013-02-24 23:04:48 +01:00
parent f16646f446
commit 6db9a86366
1 changed files with 15 additions and 6 deletions

View File

@ -2348,17 +2348,26 @@ static int
cmd_join (struct session *sess, char *tbuf, char *word[], char *word_eol[]) cmd_join (struct session *sess, char *tbuf, char *word[], char *word_eol[])
{ {
char *chan = word[2]; char *chan = word[2];
session *sess_find;
if (*chan) if (*chan)
{ {
char *po, *pass = word[3]; char *po, *pass = word[3];
sess->server->p_join (sess->server, chan, pass);
if (sess->channel[0] == 0 && sess->waitchannel[0]) sess_find = find_channel (sess->server, chan);
if (!sess_find)
{ {
po = strchr (chan, ','); sess->server->p_join (sess->server, chan, pass);
if (po) if (sess->channel[0] == 0 && sess->waitchannel[0])
*po = 0; {
safe_strcpy (sess->waitchannel, chan, CHANLEN); po = strchr (chan, ',');
if (po)
*po = 0;
safe_strcpy (sess->waitchannel, chan, CHANLEN);
}
} }
else
fe_ctrl_gui (sess_find, 2, 0); /* bring-to-front */
return TRUE; return TRUE;
} }
return FALSE; return FALSE;