int command_silc_connect(void *data, struct t_gui_buffer *buffer, int argc, char **argv, char **argv_eol) { char *servername; struct t_gui_buffer *server_buffer; SilcPluginServerList server; if (argc < 3) { weechat_printf(buffer, "you need to specify a servername to connect to"); return WEECHAT_RC_ERROR; } servername = argv[2]; // create a new buffer for this connection but merge it into the main window server_buffer = weechat_buffer_new(servername, NULL, NULL, NULL, NULL); weechat_printf(server_buffer, "SILC: trying to connect to %s", servername); weechat_buffer_merge(server_buffer, weechat_buffer_search_main()); if (!silc_client_connect_to_server(silc_plugin->client, NULL, silc_plugin->public_key, silc_plugin->private_key, servername, 706, silc_plugin_connected, server_buffer)) { weechat_printf(server_buffer, "%sSILC: connection to server failed", weechat_prefix("error")); weechat_buffer_close(server_buffer); } server = add_server(servername, NULL, NULL, server_buffer); return WEECHAT_RC_OK; }
void trigger_callback_run_command (struct t_trigger *trigger, struct t_gui_buffer *buffer, struct t_hashtable *pointers, struct t_hashtable *extra_vars, int display_monitor) { char *command_eval; int i; if (!trigger->commands) return; if (!buffer) { buffer = weechat_buffer_search_main (); if (!buffer) return; } for (i = 0; trigger->commands[i]; i++) { command_eval = weechat_string_eval_expression (trigger->commands[i], pointers, extra_vars, NULL); if (command_eval) { /* display debug info on trigger buffer */ if (trigger_buffer && display_monitor) { weechat_printf_tags (trigger_buffer, "no_trigger", _("%s running command %s\"%s%s%s\"%s " "on buffer %s%s%s"), "\t", weechat_color ("chat_delimiters"), weechat_color ("reset"), command_eval, weechat_color ("chat_delimiters"), weechat_color ("reset"), weechat_color ("chat_buffer"), weechat_buffer_get_string (buffer, "full_name"), weechat_color ("reset")); } weechat_command (buffer, command_eval); trigger->hook_count_cmd++; } free (command_eval); } }