Пример #1
0
static void event_nick(IRC_SERVER_REC *server, const char *data,
		       const char *orignick)
{
	char *params, *nick;

	g_return_if_fail(data != NULL);
	g_return_if_fail(orignick != NULL);

	params = event_get_params(data, 1, &nick);

	if (g_ascii_strcasecmp(orignick, server->nick) == 0) {
		/* You changed your nick */
		if (server->last_nick != NULL &&
		    g_ascii_strcasecmp(server->last_nick, nick) == 0) {
                        /* changed with /NICK - keep it as wanted nick */
			g_free(server->connrec->nick);
			server->connrec->nick = g_strdup(nick);
		}

		server_change_nick(SERVER(server), nick);
	}

        nicklist_rename(SERVER(server), orignick, nick);
	g_free(params);
}
Пример #2
0
/*
 * args0 = "Name"
 * args1 = "<oldnick> changed nickname to <newnick>"
 */
static void status_name(ICB_SERVER_REC *server, char **args)
{
	NICK_REC *nickrec;
	char *oldnick, *newnick, *p;

	oldnick = g_strdup(args[1]);
	p = strchr(oldnick, ' ');
	if (p != NULL) *p = '\0';

	p = g_strdup(args[1]);
	newnick = strrchr(p, ' ');
	if (newnick != NULL)
	       newnick++;

	nickrec = nicklist_find(CHANNEL(server->group), oldnick);
	if (nickrec != NULL)
		nicklist_rename(SERVER(server), oldnick, newnick);

	/* Update our own nick */
	if (strcmp(oldnick, server->connrec->nick) == 0) {
		server_change_nick(SERVER(server), newnick);
		g_free(server->connrec->nick);
		server->connrec->nick = g_strdup(newnick);
	}

	g_free(oldnick);
	g_free(p);

	printformat(server, server->group->name, MSGLEVEL_CRAP,
		    ICBTXT_STATUS, args[0], args[1]);
}