这篇教程C++ CMD_IRC_SERVER函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CMD_IRC_SERVER函数的典型用法代码示例。如果您正苦于以下问题:C++ CMD_IRC_SERVER函数的具体用法?C++ CMD_IRC_SERVER怎么用?C++ CMD_IRC_SERVER使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CMD_IRC_SERVER函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: command_2selfstatic void command_2self(const char *data, IRC_SERVER_REC *server){ char *target, *text; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &target, &text)) return; if (*target == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); irc_send_cmdv(server, "%s %s :%s", current_command, target, text); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:13,
示例2: cmd_op/* SYNTAX: OP <nicks> */static void cmd_op(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ IRC_CHANNEL_REC *channel; char *nicks; CMD_IRC_SERVER(server); nicks = get_nicks(server, item, data, 0, -1, &channel); if (nicks != NULL && *nicks != '/0') channel_set_singlemode(channel, nicks, "+o"); g_free_not_null(nicks);}
开发者ID:svn2github,项目名称:irssi,代码行数:14,
示例3: cmd_wall/* SYNTAX: WALL [<channel>] <message> */static void cmd_wall(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ char *channame, *msg, *args, *recoded; void *free_arg; IRC_CHANNEL_REC *chanrec; GSList *tmp, *nicks; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTCHAN | PARAM_FLAG_GETREST, item, &channame, &msg)) return; if (*msg == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); chanrec = irc_channel_find(server, channame); if (chanrec == NULL) cmd_param_error(CMDERR_CHAN_NOT_FOUND); /* See if the server has advertised support of wallchops */ if (g_hash_table_lookup(chanrec->server->isupport, "statusmsg") || g_hash_table_lookup(chanrec->server->isupport, "wallchops")) irc_send_cmdv(server, "NOTICE @%s :%s", chanrec->name, msg); else { /* Fall back to manually noticing each op */ nicks = NULL; g_hash_table_foreach(chanrec->nicks, (GHFunc) cmd_wall_hash, &nicks); args = g_strconcat(chanrec->name, " ", msg, NULL); msg = parse_special_string(settings_get_str("wall_format"), SERVER(server), item, args, NULL, 0); g_free(args); recoded = recode_out(SERVER(server), msg, channame); for (tmp = nicks; tmp != NULL; tmp = tmp->next) { NICK_REC *rec = tmp->data; if (rec != chanrec->ownnick) { irc_send_cmdv(server, "NOTICE %s :%s", rec->nick, recoded); } } g_free(recoded); g_free(msg); g_slist_free(nicks); } cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:51,
示例4: cmd_server_purge/* SYNTAX: SERVER PURGE [<target>] */static void cmd_server_purge(const char *data, IRC_SERVER_REC *server){ char *target; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 1, &target)) return; irc_server_purge_output(server, *target == '/0' ? NULL : target); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:15,
示例5: cmd_oper/* SYNTAX: OPER [<nick> [<password>]] */static void cmd_oper(const char *data, IRC_SERVER_REC *server){ char *nick, *password; void *free_arg; CMD_IRC_SERVER(server); /* asking for password is handled by fe-common */ if (!cmd_get_params(data, &free_arg, 2, &nick, &password)) return; if (*password == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); irc_send_cmdv(server, "OPER %s %s", nick, password); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:16,
示例6: cmd_ver/* SYNTAX: VER [<nick> | <channel> | *] */static void cmd_ver(gchar *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ char *str; g_return_if_fail(data != NULL); CMD_IRC_SERVER(server); if (*data == '/0' && !IS_QUERY(item)) cmd_return_error(CMDERR_NOT_ENOUGH_PARAMS); str = g_strdup_printf("%s VERSION", *data == '/0' ? window_item_get_target(item) : data); signal_emit("command ctcp", 3, str, server, item); g_free(str);}
开发者ID:Liaf,项目名称:irssi,代码行数:16,
示例7: cmd_wallchops/* SYNTAX: WALLCHOPS <channel> <message> */static void cmd_wallchops(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ char *channame, *msg; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTCHAN | PARAM_FLAG_GETREST, item, &channame, &msg)) return; if (*msg == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); irc_send_cmdv(server, "WALLCHOPS %s :%s", channame, msg); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:17,
示例8: cmd_wallchopsstatic void cmd_wallchops(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ char *channame, *msg; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTCHAN | PARAM_FLAG_GETREST, item, &channame, &msg)) return; if (*msg == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); signal_emit("message irc own_wall", 3, server, msg, channame); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:17,
示例9: cmd_kickban/* SYNTAX: KICKBAN [<channel>] <nicks> <reason> */static void cmd_kickban(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ IRC_CHANNEL_REC *chanrec; char *channel, *nicks, *reason, *kickcmd, *bancmd, *recoded; char **nicklist, *spacenicks; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 3 | PARAM_FLAG_OPTCHAN | PARAM_FLAG_GETREST, item, &channel, &nicks, &reason)) return; if (*channel == '/0' || *nicks == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); chanrec = irc_channel_find(server, channel); if (chanrec == NULL) cmd_param_error(CMDERR_CHAN_NOT_FOUND); if (!chanrec->wholist) cmd_param_error(CMDERR_CHAN_NOT_SYNCED); nicklist = g_strsplit(nicks, ",", -1); spacenicks = g_strjoinv(" ", nicklist); g_strfreev(nicklist); recoded = recode_out(SERVER(server), reason, channel); kickcmd = g_strdup_printf("%s %s %s", chanrec->name, nicks, recoded); g_free(recoded); bancmd = g_strdup_printf("%s %s", chanrec->name, spacenicks); g_free(spacenicks); if (settings_get_bool("kick_first_on_kickban")) { signal_emit("command kick", 3, kickcmd, server, chanrec); signal_emit("command ban", 3, bancmd, server, chanrec); } else { signal_emit("command ban", 3, bancmd, server, chanrec); signal_emit("command kick", 3, kickcmd, server, chanrec); } g_free(kickcmd); g_free(bancmd); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:47,
示例10: cmd_mode/* SYNTAX: MODE <your nick>|<channel> [<mode> [<mode parameters>]] */static void cmd_mode(const char *data, IRC_SERVER_REC *server, IRC_CHANNEL_REC *channel){ IRC_CHANNEL_REC *chanrec; char *target, *mode; void *free_arg; CMD_IRC_SERVER(server); if (*data == '+' || *data == '-') { target = "*"; if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_GETREST, &mode)) return; } else { if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &target, &mode)) return; } if (strcmp(target, "*") == 0) { if (!IS_IRC_CHANNEL(channel)) cmd_param_error(CMDERR_NOT_JOINED); target = channel->name; } if (*target == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); if (*mode == '/0') { chanrec = irc_channel_find(server, target); if (chanrec != NULL) target = chanrec->name; irc_send_cmdv(server, "MODE %s", target); } else if (ischannel(*target)) channel_set_mode(server, target, mode); else { if (g_strcasecmp(target, server->nick) == 0) { server_redirect_event(server, "mode user", 1, target, -1, NULL, "event mode", "requested usermode change", NULL); } irc_send_cmdv(server, "MODE %s %s", target, mode); } cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:46,
示例11: cmd_away/* SYNTAX: AWAY [-one | -all] [<reason>] */static void cmd_away(const char *data, IRC_SERVER_REC *server){ GHashTable *optlist; char *reason; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS | PARAM_FLAG_GETREST, "away", &optlist, &reason)) return; if (g_hash_table_lookup(optlist, "one") != NULL) server_send_away(server, reason); else g_slist_foreach(servers, (GFunc) server_send_away, reason); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:19,
示例12: cmd_nick/* SYNTAX: NICK <new nick> */static void cmd_nick(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ char *nick; void *free_arg; g_return_if_fail(data != NULL); CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 1, &nick)) return; g_free(server->last_nick); server->last_nick = g_strdup(nick); irc_send_cmdv(server, "NICK %s", nick); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:19,
示例13: cmd_nctcpstatic void cmd_nctcp(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ const char *target, *text; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &target, &text)) return; if (g_strcmp0(target, "*") == 0) target = item == NULL ? "" : window_item_get_target(item); if (*target == '/0' || *text == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); signal_emit("message irc own_notice", 3, server, text, target); cmd_params_free(free_arg);}
开发者ID:Liaf,项目名称:irssi,代码行数:19,
示例14: cmd_topic/* SYNTAX: TOPIC [-delete] [<channel>] [<topic>] */static void cmd_topic(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ GHashTable *optlist; char *channame, *topic; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTCHAN | PARAM_FLAG_OPTIONS | PARAM_FLAG_GETREST, item, "topic", &optlist, &channame, &topic)) return; irc_send_cmdv(server, *topic == '/0' && g_hash_table_lookup(optlist, "delete") == NULL ? "TOPIC %s" : "TOPIC %s :%s", channame, topic); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:20,
示例15: cmd_ping/* SYNTAX: PING [<nick> | <channel> | *] */static void cmd_ping(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ GTimeVal tv; char *str; CMD_IRC_SERVER(server); if (*data == '/0') { if (!IS_QUERY(item)) cmd_return_error(CMDERR_NOT_ENOUGH_PARAMS); data = window_item_get_target(item); } g_get_current_time(&tv); str = g_strdup_printf("%s PING %ld %ld", data, tv.tv_sec, tv.tv_usec); signal_emit("command ctcp", 3, str, server, item); g_free(str);}
开发者ID:btamada,项目名称:irssi,代码行数:20,
示例16: cmd_kick/* SYNTAX: KICK [<channel>] <nicks> [<reason>] */static void cmd_kick(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ char *channame, *nicks, *reason; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 3 | PARAM_FLAG_GETREST | PARAM_FLAG_OPTCHAN, item, &channame, &nicks, &reason)) return; if (*channame == '/0' || *nicks == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); if (!ischannel(*channame)) cmd_param_error(CMDERR_NOT_JOINED); g_string_sprintf(tmpstr, "KICK %s %s :%s", channame, nicks, reason); irc_send_cmd_split(server, tmpstr->str, 3, server->max_kicks_in_cmd); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:21,
示例17: cmd_ping/* SYNTAX: PING <nicks> */static void cmd_ping(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ GTimeVal tv; char *str; CMD_IRC_SERVER(server); if (*data == '/0' || strcmp(data, "*") == 0) { if (!IS_IRC_ITEM(item)) cmd_return_error(CMDERR_NOT_JOINED); data = item->name; } g_get_current_time(&tv); str = g_strdup_printf("%s PING %ld %ld", data, tv.tv_sec, tv.tv_usec); signal_emit("command ctcp", 3, str, server, item); g_free(str);}
开发者ID:svn2github,项目名称:irssi,代码行数:21,
示例18: cmd_invite/* SYNTAX: INVITE <nick> [<channel>] */static void cmd_invite(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ char *nick, *channame; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2, &nick, &channame)) return; if (*nick == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); if (*channame == '/0' || strcmp(channame, "*") == 0) { if (!IS_IRC_CHANNEL(item)) cmd_param_error(CMDERR_NOT_JOINED); channame = IRC_CHANNEL(item)->name; } irc_send_cmdv(server, "INVITE %s %s", nick, channame); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:22,
示例19: cmd_notice/* SYNTAX: NOTICE <targets> <message> */static void cmd_notice(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ char *target, *msg; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &target, &msg)) return; if (strcmp(target, "*") == 0) target = item == NULL ? NULL : item->name; if (*target == '/0' || *msg == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); g_string_sprintf(tmpstr, "NOTICE %s :%s", target, msg); irc_send_cmd_split(server, tmpstr->str, 2, server->max_msgs_in_cmd); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:22,
示例20: cmd_list/* SYNTAX: LIST [-yes] [<channel>] */static void cmd_list(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ GHashTable *optlist; char *str; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS | PARAM_FLAG_GETREST, "list", &optlist, &str)) return; if (*str == '/0' && g_hash_table_lookup(optlist, "yes") == NULL && (server->channels_formed <= 0 || server->channels_formed > LIST_MAX_CHANNELS_PASS)) cmd_param_error(CMDERR_NOT_GOOD_IDEA); irc_send_cmdv(server, "LIST %s", str); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:22,
示例21: cmd_wallstatic void cmd_wall(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ IRC_CHANNEL_REC *chanrec; const char *channame, *msg; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTCHAN | PARAM_FLAG_GETREST, item, &channame, &msg)) return; if (*msg == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); chanrec = irc_channel_find(server, channame); if (chanrec == NULL) cmd_param_error(CMDERR_CHAN_NOT_FOUND); signal_emit("message irc own_wall", 3, server, msg, chanrec->visible_name); cmd_params_free(free_arg);}
开发者ID:Liaf,项目名称:irssi,代码行数:22,
示例22: cmd_ban/* SYNTAX: BAN [<channel>] [<nicks>] */static void cmd_ban(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ IRC_CHANNEL_REC *chanrec; char *channel, *nicks; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTCHAN | PARAM_FLAG_GETREST | PARAM_FLAG_STRIP_TRAILING_WS, item, &channel, &nicks)) return; if (*nicks != '/0') { /* setting ban - don't handle here */ cmd_params_free(free_arg); return; } /* display bans */ chanrec = IRC_CHANNEL(item); if (chanrec == NULL && *channel == '/0') cmd_param_error(CMDERR_NOT_JOINED); if (*channel != '/0' && g_strcmp0(channel, "*") != 0) chanrec = irc_channel_find(server, channel); if (chanrec == NULL || !chanrec->synced) { /* not joined to such channel or not yet synced, ask ban lists from server */ bans_ask_channel(channel, server, item); } else { bans_show_channel(chanrec, server); } signal_stop(); cmd_params_free(free_arg);}
开发者ID:Liaf,项目名称:irssi,代码行数:40,
示例23: cmd_me/* SYNTAX: ME <message> */static void cmd_me(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ const char *target; char *recoded; CMD_IRC_SERVER(server); if (!IS_IRC_ITEM(item)) return; if (server == NULL || !server->connected) cmd_return_error(CMDERR_NOT_CONNECTED); target = window_item_get_target(item); recoded = recode_out(SERVER(server), data, target); signal_emit("message irc own_action", 3, server, recoded, item->visible_name); irc_send_cmdv(server, "PRIVMSG %s :/001ACTION %s/001", target, recoded); g_free(recoded);}
开发者ID:svn2github,项目名称:irssi,代码行数:24,
示例24: cmd_nctcp/* SYNTAX: NCTCP <targets> <ctcp command> [<ctcp data>] */static void cmd_nctcp(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ const char *target; char *ctcpcmd, *ctcpdata; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 3 | PARAM_FLAG_GETREST, &target, &ctcpcmd, &ctcpdata)) return; if (strcmp(target, "*") == 0) target = item == NULL ? NULL : window_item_get_target(item); if (*target == '/0' || *ctcpcmd == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); g_strup(ctcpcmd); g_string_sprintf(tmpstr, "NOTICE %s :/001%s %s/001", target, ctcpcmd, ctcpdata); irc_send_cmd_split(server, tmpstr->str, 2, server->max_msgs_in_cmd); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:24,
示例25: cmd_part/* SYNTAX: PART [<channels>] [<message>] */static void cmd_part(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ char *channame, *msg; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST | PARAM_FLAG_OPTCHAN, item, &channame, &msg)) return; if (*channame == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); if (*msg == '/0') msg = (char *) settings_get_str("part_message"); if (server->cmdcount > MAX_COMMANDS_ON_PART_UNTIL_PURGE) irc_server_purge_output(server, channame); irc_send_cmdv(server, *msg == '/0' ? "PART %s" : "PART %s :%s", channame, msg); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:24,
示例26: cmd_me/* SYNTAX: ME <message> */static void cmd_me(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ const char *target; char *subdata; char **splitdata; int n = 0; CMD_IRC_SERVER(server); if (!IS_IRC_ITEM(item)) return; if (server == NULL || !server->connected) cmd_return_error(CMDERR_NOT_CONNECTED); target = window_item_get_target(item); splitdata = irc_server_split_action(server, target, data); while ((subdata = splitdata[n++])) { irc_server_send_action(server, target, subdata); signal_emit("message irc own_action", 3, server, subdata, item->visible_name); } g_strfreev(splitdata);}
开发者ID:Liaf,项目名称:irssi,代码行数:24,
示例27: cmd_wall/* SYNTAX: WALL [<channel>] <message> */static void cmd_wall(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ char *channame, *msg, *args; void *free_arg; IRC_CHANNEL_REC *chanrec; GSList *tmp, *nicks; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTCHAN | PARAM_FLAG_GETREST, item, &channame, &msg)) return; if (*msg == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); chanrec = irc_channel_find(server, channame); if (chanrec == NULL) cmd_param_error(CMDERR_CHAN_NOT_FOUND); /* send notice to all ops */ nicks = NULL; g_hash_table_foreach(chanrec->nicks, (GHFunc) cmd_wall_hash, &nicks); args = g_strconcat(chanrec->name, " ", msg, NULL); msg = parse_special_string(settings_get_str("wall_format"), SERVER(server), item, args, NULL, 0); g_free(args); for (tmp = nicks; tmp != NULL; tmp = tmp->next) { NICK_REC *rec = tmp->data; if (rec != chanrec->ownnick) irc_send_cmdv(server, "NOTICE %s :%s", rec->nick, msg); } g_free(msg); g_slist_free(nicks); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:38,
示例28: cmd_whowas/* SYNTAX: WHOWAS [<nicks> [<count> [server]]] */static void cmd_whowas(const char *data, IRC_SERVER_REC *server){ char *nicks, *rest, *nicks_redir; void *free_arg; int free_nick; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &nicks, &rest)) return; if (*nicks == '/0') nicks = server->nick; nicks_redir = get_redirect_nicklist(nicks, &free_nick); server_redirect_event(server, "whowas", 1, nicks_redir, -1, NULL, "event 301", "whowas away", /* 301 can come as a reply to /MSG, /WHOIS or /WHOWAS */ "event 314", "whowas event", NULL); if (free_nick) g_free(nicks_redir); server->whowas_found = FALSE; irc_send_cmdv(server, *rest == '/0' ? "WHOWAS %s" : "WHOWAS %s %s", nicks, rest); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:25,
示例29: cmd_noticestatic void cmd_notice(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item){ const char *target, *msg; char *recoded; void *free_arg; CMD_IRC_SERVER(server); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &target, &msg)) return; if (strcmp(target, "*") == 0) target = item == NULL ? "" : window_item_get_target(item); if (*target == '/0' || *msg == '/0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); recoded = recode_out(SERVER(server), msg, target); signal_emit("message irc own_notice", 3, server, recoded, target); g_free(recoded); cmd_params_free(free_arg);}
开发者ID:svn2github,项目名称:irssi,代码行数:24,
示例30: command_selfstatic void command_self(const char *data, IRC_SERVER_REC *server){ CMD_IRC_SERVER(server); irc_send_cmdv(server, *data == '/0' ? "%s" : "%s %s", current_command, data);}
开发者ID:svn2github,项目名称:irssi,代码行数:6,
注:本文中的CMD_IRC_SERVER函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ CMICMDBASE_GETOPTION函数代码示例 C++ CMDQ_ERR函数代码示例 |