diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2010-05-22 10:51:43 +0200 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2010-05-22 10:51:43 +0200 |
commit | 2dee40dd1a7c0cca2adb262e32d92791abd37fa8 (patch) | |
tree | 5c469c1c4e21bed153589b5b32fe11749267cb9c | |
parent | 6253e3ac375b9203cf232329069cbd695a7ded5a (diff) | |
download | weechat-2dee40dd1a7c0cca2adb262e32d92791abd37fa8.zip |
Add isupport value in IRC servers (content of IRC message 005), with new infos: irc_server_isupport and irc_server_isupport_value
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | doc/en/autogen/plugin_api/infos.txt | 4 | ||||
-rw-r--r-- | doc/fr/autogen/plugin_api/infos.txt | 4 | ||||
-rw-r--r-- | doc/it/autogen/plugin_api/infos.txt | 4 | ||||
-rw-r--r-- | po/cs.po | 12 | ||||
-rw-r--r-- | po/de.po | 12 | ||||
-rw-r--r-- | po/es.po | 12 | ||||
-rw-r--r-- | po/fr.po | 14 | ||||
-rw-r--r-- | po/hu.po | 12 | ||||
-rw-r--r-- | po/it.po | 12 | ||||
-rw-r--r-- | po/pl.po | 12 | ||||
-rw-r--r-- | po/ru.po | 12 | ||||
-rw-r--r-- | po/weechat.pot | 11 | ||||
-rw-r--r-- | src/plugins/irc/irc-info.c | 48 | ||||
-rw-r--r-- | src/plugins/irc/irc-protocol.c | 33 | ||||
-rw-r--r-- | src/plugins/irc/irc-server.c | 62 | ||||
-rw-r--r-- | src/plugins/irc/irc-server.h | 3 | ||||
-rw-r--r-- | src/plugins/irc/irc-upgrade.c | 3 |
18 files changed, 260 insertions, 14 deletions
@@ -1,7 +1,7 @@ WeeChat ChangeLog ================= FlashCode <flashcode@flashtux.org> -v0.3.3-dev, 2010-05-21 +v0.3.3-dev, 2010-05-22 Version 0.3.3 (under dev!) @@ -13,6 +13,8 @@ Version 0.3.3 (under dev!) process) * api: add function "string_expand_home", fix bug with replacement of home in paths +* irc: add isupport value in servers (content of IRC message 005), with new + infos: irc_server_isupport and irc_server_isupport_value * irc: add message in private buffer when nick is back on server after a /quit * irc: add new options irc.network.autoreconnect_delay_growing and irc.network.autoreconnect_delay_max (task #10338) diff --git a/doc/en/autogen/plugin_api/infos.txt b/doc/en/autogen/plugin_api/infos.txt index c674f7485..815d746b5 100644 --- a/doc/en/autogen/plugin_api/infos.txt +++ b/doc/en/autogen/plugin_api/infos.txt @@ -16,6 +16,10 @@ | irc | irc_nick_from_host | get nick from IRC host | IRC host (like `:nick!name@server.com`) +| irc | irc_server_isupport | 1 if server supports this feature (from IRC message 005) | server,feature + +| irc | irc_server_isupport_value | value of feature, if supported by server (from IRC message 005) | server,feature + | weechat | charset_internal | WeeChat internal charset | - | weechat | charset_terminal | terminal charset | - diff --git a/doc/fr/autogen/plugin_api/infos.txt b/doc/fr/autogen/plugin_api/infos.txt index 3f7c48121..9267ae291 100644 --- a/doc/fr/autogen/plugin_api/infos.txt +++ b/doc/fr/autogen/plugin_api/infos.txt @@ -16,6 +16,10 @@ | irc | irc_nick_from_host | retourne le pseudo à partir d'un host IRC | host IRC (comme `:pseudo!nom@serveur.com`) +| irc | irc_server_isupport | 1 si le serveur supporte cette fonctionnalité (du message IRC 005) | serveur,fonctionnalité + +| irc | irc_server_isupport_value | valeur de la fonctionnalité, si supportée par le serveur (du message IRC 005) | serveur,fonctionnalité + | weechat | charset_internal | charset interne à WeeChat | - | weechat | charset_terminal | charset du terminal | - diff --git a/doc/it/autogen/plugin_api/infos.txt b/doc/it/autogen/plugin_api/infos.txt index 221dec85f..de92aaead 100644 --- a/doc/it/autogen/plugin_api/infos.txt +++ b/doc/it/autogen/plugin_api/infos.txt @@ -16,6 +16,10 @@ | irc | irc_nick_from_host | ottiene nick dall'host IRC | host IRC (come `:nick!nome@server.com`) +| irc | irc_server_isupport | 1 if server supports this feature (from IRC message 005) | server,feature + +| irc | irc_server_isupport_value | value of feature, if supported by server (from IRC message 005) | server,feature + | weechat | charset_internal | set caratteri interno di WeeChat | - | weechat | charset_terminal | set caratteri terminale | - @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.3-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-05-21 18:07+0200\n" +"POT-Creation-Date: 2010-05-22 09:52+0200\n" "PO-Revision-Date: 2010-05-20 12:20+0200\n" "Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4686,6 +4686,16 @@ msgstr "získat ukazatel bufferu pro IRC server/kanál/přezdívku" msgid "server,channel,nick (channel and nicks are optional)" msgstr "server,kanál,přezdívka (kanál a přezdívka jsou volitelné)" +msgid "1 if server supports this feature (from IRC message 005)" +msgstr "" + +#, fuzzy +msgid "server,feature" +msgstr "jméno serveru" + +msgid "value of feature, if supported by server (from IRC message 005)" +msgstr "" + msgid "list of IRC servers" msgstr "seznam IRC serverů" @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.3-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-05-21 18:07+0200\n" +"POT-Creation-Date: 2010-05-22 09:52+0200\n" "PO-Revision-Date: 2010-05-20 12:20+0200\n" "Last-Translator: Nils G <weechatter@arcor.de>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4863,6 +4863,16 @@ msgstr "hole Buffer Pointer für einen IRC Server/Channel/Nick" msgid "server,channel,nick (channel and nicks are optional)" msgstr "server,channel,nick (Channel und Nicks sind optional)" +msgid "1 if server supports this feature (from IRC message 005)" +msgstr "" + +#, fuzzy +msgid "server,feature" +msgstr "Servername" + +msgid "value of feature, if supported by server (from IRC message 005)" +msgstr "" + msgid "list of IRC servers" msgstr "Liste der IRC-Server" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.3-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-05-21 18:07+0200\n" +"POT-Creation-Date: 2010-05-22 09:52+0200\n" "PO-Revision-Date: 2010-05-20 12:31+0200\n" "Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4755,6 +4755,16 @@ msgstr "devuelve el puntero del buffer de un servidor/canal/apodo IRC" msgid "server,channel,nick (channel and nicks are optional)" msgstr "servidor,canal,apodo (canal y apodo es opcional)" +msgid "1 if server supports this feature (from IRC message 005)" +msgstr "" + +#, fuzzy +msgid "server,feature" +msgstr "nombre del servidor" + +msgid "value of feature, if supported by server (from IRC message 005)" +msgstr "" + msgid "list of IRC servers" msgstr "lista de servidores IRC" @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.3-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-05-21 18:07+0200\n" -"PO-Revision-Date: 2010-05-21 18:08+0200\n" +"POT-Creation-Date: 2010-05-22 09:52+0200\n" +"PO-Revision-Date: 2010-05-22 09:53+0200\n" "Last-Translator: FlashCode <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language: French\n" @@ -4801,6 +4801,16 @@ msgstr "retourne le pointeur vers le tampon pour un serveur/canal/pseudo IRC" msgid "server,channel,nick (channel and nicks are optional)" msgstr "serveur,canal,pseudo (canal et pseudo sont optionnels)" +msgid "1 if server supports this feature (from IRC message 005)" +msgstr "1 si le serveur supporte cette fonctionnalité (du message IRC 005)" + +msgid "server,feature" +msgstr "serveur,fonctionnalité" + +msgid "value of feature, if supported by server (from IRC message 005)" +msgstr "" +"valeur de la fonctionnalité, si supportée par le serveur (du message IRC 005)" + msgid "list of IRC servers" msgstr "liste des serveurs IRC" @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.3-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-05-21 18:07+0200\n" +"POT-Creation-Date: 2010-05-22 09:52+0200\n" "PO-Revision-Date: 2010-05-20 12:20+0200\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4508,6 +4508,16 @@ msgstr "szobák listája ahová be akarunk lépni csatlakozás után" msgid "server,channel,nick (channel and nicks are optional)" msgstr "" +msgid "1 if server supports this feature (from IRC message 005)" +msgstr "" + +#, fuzzy +msgid "server,feature" +msgstr "cél: szerver neve" + +msgid "value of feature, if supported by server (from IRC message 005)" +msgstr "" + #, fuzzy msgid "list of IRC servers" msgstr "IRC szerver portja" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Weechat 0.3.3-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-05-21 18:07+0200\n" +"POT-Creation-Date: 2010-05-22 09:52+0200\n" "PO-Revision-Date: 2010-05-20 12:26+0200\n" "Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4762,6 +4762,16 @@ msgstr "ottiene puntatore al buffer per un server/canale/nick IRC" msgid "server,channel,nick (channel and nicks are optional)" msgstr "server,canale,nick (canale e nick sono opzionali)" +msgid "1 if server supports this feature (from IRC message 005)" +msgstr "" + +#, fuzzy +msgid "server,feature" +msgstr "nome server" + +msgid "value of feature, if supported by server (from IRC message 005)" +msgstr "" + msgid "list of IRC servers" msgstr "elenco di server IRC" @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.3-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-05-21 18:07+0200\n" +"POT-Creation-Date: 2010-05-22 09:52+0200\n" "PO-Revision-Date: 2010-05-20 12:22+0200\n" "Last-Translator: Krzysztof Koroscik <soltys@szluug.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4735,6 +4735,16 @@ msgstr "pobiera wskaźnik dla serwera/kanału/nicku IRC" msgid "server,channel,nick (channel and nicks are optional)" msgstr "serwer,kanał,nick (kanał oraz nick są opcjonalne)" +msgid "1 if server supports this feature (from IRC message 005)" +msgstr "" + +#, fuzzy +msgid "server,feature" +msgstr "nazwa srwera" + +msgid "value of feature, if supported by server (from IRC message 005)" +msgstr "" + msgid "list of IRC servers" msgstr "lista serwerów IRC" @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.3-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-05-21 18:07+0200\n" +"POT-Creation-Date: 2010-05-22 09:52+0200\n" "PO-Revision-Date: 2010-05-20 12:22+0200\n" "Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -4509,6 +4509,16 @@ msgstr "Список каналов, на которые заходить при msgid "server,channel,nick (channel and nicks are optional)" msgstr "" +msgid "1 if server supports this feature (from IRC message 005)" +msgstr "" + +#, fuzzy +msgid "server,feature" +msgstr "цель: название сервера" + +msgid "value of feature, if supported by server (from IRC message 005)" +msgstr "" + #, fuzzy msgid "list of IRC servers" msgstr "порт IRC сервера" diff --git a/po/weechat.pot b/po/weechat.pot index 5d8495d73..1a632c655 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-05-21 18:07+0200\n" +"POT-Creation-Date: 2010-05-22 09:52+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -3859,6 +3859,15 @@ msgstr "" msgid "server,channel,nick (channel and nicks are optional)" msgstr "" +msgid "1 if server supports this feature (from IRC message 005)" +msgstr "" + +msgid "server,feature" +msgstr "" + +msgid "value of feature, if supported by server (from IRC message 005)" +msgstr "" + msgid "list of IRC servers" msgstr "" diff --git a/src/plugins/irc/irc-info.c b/src/plugins/irc/irc-info.c index 54496830b..0e437a37b 100644 --- a/src/plugins/irc/irc-info.c +++ b/src/plugins/irc/irc-info.c @@ -67,7 +67,7 @@ irc_info_get_info_cb (void *data, const char *info_name, const char *arguments) { char *pos_comma, *pos_comma2, *server, *channel, *host; - const char *nick; + const char *nick, *isupport_value; static char str_true[2] = "1"; struct t_irc_server *ptr_server; struct t_irc_channel *ptr_channel; @@ -180,6 +180,46 @@ irc_info_get_info_cb (void *data, const char *info_name, } } } + else if (weechat_strcasecmp (info_name, "irc_server_isupport") == 0) + { + isupport_value = NULL; + pos_comma = strchr (arguments, ','); + if (pos_comma) + { + server = weechat_strndup (arguments, pos_comma - arguments); + if (server) + { + ptr_server = irc_server_search (server); + if (ptr_server) + { + isupport_value = irc_server_get_isupport_value (ptr_server, + pos_comma + 1); + } + } + } + if (isupport_value) + return str_true; + return NULL; + } + else if (weechat_strcasecmp (info_name, "irc_server_isupport_value") == 0) + { + isupport_value = NULL; + pos_comma = strchr (arguments, ','); + if (pos_comma) + { + server = weechat_strndup (arguments, pos_comma - arguments); + if (server) + { + ptr_server = irc_server_search (server); + if (ptr_server) + { + isupport_value = irc_server_get_isupport_value (ptr_server, + pos_comma + 1); + } + } + } + return isupport_value; + } return NULL; } @@ -422,6 +462,12 @@ irc_info_init () weechat_hook_info ("irc_buffer", N_("get buffer pointer for an IRC server/channel/nick"), N_("server,channel,nick (channel and nicks are optional)"), &irc_info_get_info_cb, NULL); + weechat_hook_info ("irc_server_isupport", N_("1 if server supports this feature (from IRC message 005)"), + N_("server,feature"), + &irc_info_get_info_cb, NULL); + weechat_hook_info ("irc_server_isupport_value", N_("value of feature, if supported by server (from IRC message 005)"), + N_("server,feature"), + &irc_info_get_info_cb, NULL); /* infolist hooks */ weechat_hook_infolist ("irc_server", N_("list of IRC servers"), diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index b562ffe70..2dc44bcfb 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -1868,7 +1868,8 @@ IRC_PROTOCOL_CALLBACK(001) IRC_PROTOCOL_CALLBACK(005) { - char *pos, *pos2; + char *pos, *pos2, *pos_start; + int length_isupport, length; /* * 005 message looks like: @@ -1883,7 +1884,8 @@ IRC_PROTOCOL_CALLBACK(005) irc_protocol_cb_numeric (server, nick, address, host, command, ignored, argc, argv, argv_eol); - + + /* save prefix */ pos = strstr (argv_eol[3], "PREFIX="); if (pos) { @@ -1898,6 +1900,33 @@ IRC_PROTOCOL_CALLBACK(005) pos2[0] = ' '; } + /* save whole message (concatenate to existing isupport, if any) */ + pos_start = NULL; + pos = strstr (argv_eol[3], " :"); + length = (pos) ? pos - argv_eol[3] : (int)strlen (argv_eol[3]); + if (server->isupport) + { + length_isupport = strlen (server->isupport); + server->isupport = realloc (server->isupport, + length_isupport + /* existing */ + 1 + length + 1); /* new */ + if (server->isupport) + pos_start = server->isupport + length_isupport; + } + else + { + server->isupport = malloc (1 + length + 1); + if (server->isupport) + pos_start = server->isupport; + } + + if (pos_start) + { + pos_start[0] = ' '; + memcpy (pos_start + 1, argv_eol[3], length); + pos_start[length + 1] = '\0'; + } + return WEECHAT_RC_OK; } diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index c14d697dd..50a0cfa58 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -298,6 +298,57 @@ irc_server_get_nick_index (struct t_irc_server *server) } /* + * irc_server_get_isupport_value: return value of an item in "isupport" (copy + * of IRC message 005) + * if featureis found but has no value, empty + * string is returned + * if feature is not found, NULL is returned + */ + +const char * +irc_server_get_isupport_value (struct t_irc_server *server, const char *feature) +{ + char feature2[64], *pos_feature, *pos_equal, *pos_space; + int length; + static char value[256]; + + if (!server || !server->isupport || !feature) + return NULL; + + /* search feature with value */ + snprintf (feature2, sizeof (feature2), " %s=", feature); + pos_feature = strstr (server->isupport, feature2); + if (pos_feature) + { + /* feature found with value, return value */ + pos_feature++; + pos_equal = strchr (pos_feature, '='); + pos_space = strchr (pos_feature, ' '); + if (pos_space) + length = pos_space - pos_equal - 1; + else + length = strlen (pos_equal) + 1; + if (length > (int)sizeof (value) - 1) + length = (int)sizeof (value) - 1; + memcpy (value, pos_equal + 1, length); + value[length] = '\0'; + return value; + } + + /* search feature without value */ + feature2[strlen (feature2) - 1] = ' '; + pos_feature = strstr (server->isupport, feature2); + if (pos_feature) + { + value[0] = '\0'; + return value; + } + + /* feature not found in isupport */ + return NULL; +} + +/* * irc_server_alloc: allocate a new server and add it to the servers queue */ @@ -355,6 +406,7 @@ irc_server_alloc (const char *name) new_server->nick_first_tried = 0; new_server->nick = NULL; new_server->nick_modes = NULL; + new_server->isupport = NULL; new_server->prefix = NULL; new_server->reconnect_delay = 0; new_server->reconnect_start = 0; @@ -754,6 +806,8 @@ irc_server_free_data (struct t_irc_server *server) free (server->nick); if (server->nick_modes) free (server->nick_modes); + if (server->isupport) + free (server->isupport); if (server->prefix) free (server->prefix); if (server->away_message) @@ -2965,6 +3019,11 @@ irc_server_disconnect (struct t_irc_server *server, int reconnect) server->nick_modes = NULL; weechat_bar_item_update ("input_prompt"); } + if (server->isupport) + { + free (server->isupport); + server->isupport = NULL; + } if (server->prefix) { free (server->prefix); @@ -3553,6 +3612,8 @@ irc_server_add_to_infolist (struct t_infolist *infolist, return 0; if (!weechat_infolist_new_var_string (ptr_item, "nick_modes", server->nick_modes)) return 0; + if (!weechat_infolist_new_var_string (ptr_item, "isupport", server->isupport)) + return 0; if (!weechat_infolist_new_var_string (ptr_item, "prefix", server->prefix)) return 0; if (!weechat_infolist_new_var_integer (ptr_item, "reconnect_delay", server->reconnect_delay)) @@ -3791,6 +3852,7 @@ irc_server_print_log () weechat_log_printf (" nick_first_tried . . : %d", ptr_server->nick_first_tried); weechat_log_printf (" nick . . . . . . . . : '%s'", ptr_server->nick); weechat_log_printf (" nick_modes . . . . . : '%s'", ptr_server->nick_modes); + weechat_log_printf (" isupport . . . . . . : '%s'", ptr_server->isupport); weechat_log_printf (" prefix . . . . . . . : '%s'", ptr_server->prefix); weechat_log_printf (" reconnect_delay. . . : %d", ptr_server->reconnect_delay); weechat_log_printf (" reconnect_start. . . : %ld", ptr_server->reconnect_start); diff --git a/src/plugins/irc/irc-server.h b/src/plugins/irc/irc-server.h index adf3e4f2f..9e202bf80 100644 --- a/src/plugins/irc/irc-server.h +++ b/src/plugins/irc/irc-server.h @@ -137,6 +137,7 @@ struct t_irc_server /* when (re-)connecting to server */ char *nick; /* current nickname */ char *nick_modes; /* nick modes */ + char *isupport; /* copy of message 005 (ISUPPORT) */ char *prefix; /* nick prefix allowed (from msg 005) */ int reconnect_delay; /* current reconnect delay (growing) */ time_t reconnect_start; /* this time + delay = reconnect time */ @@ -190,6 +191,8 @@ extern void irc_server_set_addresses (struct t_irc_server *server, extern void irc_server_set_nicks (struct t_irc_server *server, const char *nicks); extern void irc_server_set_nick (struct t_irc_server *server, const char *nick); extern int irc_server_get_nick_index (struct t_irc_server *server); +extern const char *irc_server_get_isupport_value (struct t_irc_server *server, + const char *feature); extern struct t_irc_server *irc_server_alloc (const char *name); extern int irc_server_alloc_with_url (const char *irc_url); extern void irc_server_apply_command_line_options (struct t_irc_server *server, diff --git a/src/plugins/irc/irc-upgrade.c b/src/plugins/irc/irc-upgrade.c index 35ac6c2fb..45cf23f13 100644 --- a/src/plugins/irc/irc-upgrade.c +++ b/src/plugins/irc/irc-upgrade.c @@ -253,6 +253,9 @@ irc_upgrade_read_cb (void *data, str = weechat_infolist_string (infolist, "nick_modes"); if (str) irc_upgrade_current_server->nick_modes = strdup (str); + str = weechat_infolist_string (infolist, "isupport"); + if (str) + irc_upgrade_current_server->isupport = strdup (str); str = weechat_infolist_string (infolist, "prefix"); if (str) irc_upgrade_current_server->prefix = strdup (str); |