From b138ffb7ae65aeb56f1b7e1e93272d87e4cee2f7 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Sat, 10 Oct 2009 12:47:55 +0200 Subject: [PATCH] Add IRC commands /samode, /sanick, /sapart, /saquit --- ChangeLog | 2 +- doc/en/autogen/user/irc_commands.txt | 36 ++++++++ doc/fr/autogen/user/irc_commands.txt | 36 ++++++++ po/cs.po | 55 ++++++++++- po/de.po | 58 +++++++++++- po/es.po | 58 +++++++++++- po/fr.po | 48 +++++++++- po/hu.po | 58 +++++++++++- po/pl.po | 55 ++++++++++- po/ru.po | 58 +++++++++++- po/weechat.pot | 40 +++++++- src/plugins/irc/irc-command.c | 133 ++++++++++++++++++++++++++- 12 files changed, 614 insertions(+), 23 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8ebd292b4..014bd2f75 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19,7 +19,7 @@ Version 0.3.1 (under dev!) * alias: allow use of wildcards for /alias list (patch #6925) * alias: allow /unalias to remove multiple aliases (patch #6926) * alias: fix bug with arguments (bug #27440) -* irc: add command /sajoin (task #9770) +* irc: add commands /sajoin, /samode, /sanick, /sapart, /saquit (task #9770) * irc: add options for CTCP, to block/customize CTCP reply (task #9693) * irc: add missing CTCP: clientinfo, finger, source, time, userinfo (task #7270) * irc: improve error management on socket error (recv/send) diff --git a/doc/en/autogen/user/irc_commands.txt b/doc/en/autogen/user/irc_commands.txt index 6ac0d9fd7..1510f7d17 100644 --- a/doc/en/autogen/user/irc_commands.txt +++ b/doc/en/autogen/user/irc_commands.txt @@ -406,6 +406,42 @@ channel: channel name ........................................ +• *`/samode`* `channel mode`:: + +........................................ + change mode on channel, without having operator status + + channel: channel name + mode: mode for channel +........................................ + +• *`/sanick`* `nickname new_nickname`:: + +........................................ + forces a user to use another nick + + nickname: nickname + new_nickname: new nickname +........................................ + +• *`/sapart`* `nickname channel[,channel]`:: + +........................................ + forces a user to leave channel(s) + + nickname: nickname + channel: channel name +........................................ + +• *`/saquit`* `nickname reason`:: + +........................................ + forces a user to quit server with a reason + + nickname: nickname + reason: reason +........................................ + • *`/server`* `[list [servername]] | [listfull [servername]] | [add servername hostname[/port] [-auto | -noauto] [-ipv6] [-ssl]] | [copy servername newservername] | [rename servername newservername] | [keep servername] | [del servername] | [deloutq] | [jump] | [raw]`:: ........................................ diff --git a/doc/fr/autogen/user/irc_commands.txt b/doc/fr/autogen/user/irc_commands.txt index 613cd0ac3..31c60d0fe 100644 --- a/doc/fr/autogen/user/irc_commands.txt +++ b/doc/fr/autogen/user/irc_commands.txt @@ -406,6 +406,42 @@ canal: canal ........................................ +• *`/samode`* `mode canal`:: + +........................................ + changer le mode du canal, sans avoir le statut opérateur + + canal: nom du canal + mode: mode pour le canal +........................................ + +• *`/sanick`* `pseudo nouveau_pseudo`:: + +........................................ + force un utilisateur à utiliser un autre pseudo + + pseudo: pseudo + nouveau_pseudo: nouveau pseudo +........................................ + +• *`/sapart`* `pseudo canal[,canal]`:: + +........................................ + force un utilisateur à quitter un ou plusieurs canaux + + pseudo: pseudo + canal: canal +........................................ + +• *`/saquit`* `pseudo raison`:: + +........................................ + force un utilisateur à quitter le serveur avec une raison + + pseudo: pseudo + raison: raison +........................................ + • *`/server`* `[list [nom_serveur]] | [listfull [nom_serveur]] | [add nom_serveur nom[/port] [-temp] [-auto | -noauto] [-ipv6] [-ssl]] | [copy nom_serveur nouveau_nom_serveur] | [rename nom_serveur nouveau_nom_serveur] | [keep nom_serveur] | [del nom_serveur] | [deloutq] | [jump] | [raw]`:: ........................................ diff --git a/po/cs.po b/po/cs.po index 8b6a59b9e..7faab9933 100644 --- a/po/cs.po +++ b/po/cs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-10 11:59+0200\n" +"POT-Creation-Date: 2009-10-10 12:39+0200\n" "PO-Revision-Date: 2009-09-14 10:56+0200\n" "Last-Translator: Jiri Golembiovsky \n" "Language-Team: weechat-dev \n" @@ -3462,6 +3462,59 @@ msgstr "" "přezdívka: přezdívka, kterou pozvat\n" " kanál: kanál na kterou ji pozvat" +msgid "change mode on channel, without having operator status" +msgstr "" + +#. TRANSLATORS: "channel" and "mode" are arguments +#. for command, translate them separately +#, fuzzy +msgid "channel mode" +msgstr "kanál" + +#, fuzzy +msgid "" +"channel: channel name\n" +" mode: mode for channel" +msgstr "" +"kanál: jméno kanálu na který se připojit\n" +" klíč: klíč pro připojení ke kanálu" + +#, fuzzy +msgid "forces a user to use another nick" +msgstr "násilně odebrat uživatele z kanálu" + +#, fuzzy +msgid "nickname new_nickname" +msgstr "přezdívka: přezdívka" + +#, fuzzy +msgid "" +" nickname: nickname\n" +"new_nickname: new nickname" +msgstr "" +"přezdívka: přezdívka, kterou pozvat\n" +" kanál: kanál na kterou ji pozvat" + +#, fuzzy +msgid "forces a user to leave channel(s)" +msgstr "násilně odebrat uživatele z kanálu" + +#, fuzzy +msgid "forces a user to quit server with a reason" +msgstr "násilně odebrat uživatele z kanálu" + +#, fuzzy +msgid "nickname reason" +msgstr "přezdívka kanál" + +#, fuzzy +msgid "" +"nickname: nickname\n" +" reason: reason" +msgstr "" +"přezdívka: přezdívka, kterou pozvat\n" +" kanál: kanál na kterou ji pozvat" + msgid "register a new service" msgstr "zaregistrovat novou službu" diff --git a/po/de.po b/po/de.po index 84ec5e671..bd7e7266c 100644 --- a/po/de.po +++ b/po/de.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-10 11:59+0200\n" +"POT-Creation-Date: 2009-10-10 12:39+0200\n" "PO-Revision-Date: 2009-10-03 12:07+0200\n" "Last-Translator: Thomas Schuetz \n" "Language-Team: weechat-dev \n" @@ -3302,6 +3302,59 @@ msgstr "" "Nickname: Chatname des Einzuladenden\n" "Channel: Channel, in den er eingeladen werden soll" +msgid "change mode on channel, without having operator status" +msgstr "" + +#. TRANSLATORS: "channel" and "mode" are arguments +#. for command, translate them separately +#, fuzzy +msgid "channel mode" +msgstr "ungültige Channelmaske" + +#, fuzzy +msgid "" +"channel: channel name\n" +" mode: mode for channel" +msgstr "" +"Channel: zu betretender Channel\n" +" Passwort: Channelpasswort (+k-Mode)" + +#, fuzzy +msgid "forces a user to use another nick" +msgstr "einen User aus einem Channel herauskicken" + +#, fuzzy +msgid "nickname new_nickname" +msgstr "Nickname: Nickname" + +#, fuzzy +msgid "" +" nickname: nickname\n" +"new_nickname: new nickname" +msgstr "" +"Nickname: Chatname des Einzuladenden\n" +"Channel: Channel, in den er eingeladen werden soll" + +#, fuzzy +msgid "forces a user to leave channel(s)" +msgstr "einen User aus einem Channel herauskicken" + +#, fuzzy +msgid "forces a user to quit server with a reason" +msgstr "einen User aus einem Channel herauskicken" + +#, fuzzy +msgid "nickname reason" +msgstr "Nickname Text" + +#, fuzzy +msgid "" +"nickname: nickname\n" +" reason: reason" +msgstr "" +"Nickname: Chatname des Einzuladenden\n" +"Channel: Channel, in den er eingeladen werden soll" + msgid "register a new service" msgstr "einen neuen Service eintragen" @@ -5902,9 +5955,6 @@ msgstr "%s fehlende Argumente für die \"--dir\"-Option\n" #~ msgid "%s%s: unknown/missing channel name for \"%s\" command" #~ msgstr "%s fehlende Argumente für den \"%s\"-Befehl\n" -#~ msgid "nickname text" -#~ msgstr "Nickname Text" - #~ msgid "nickname [text]" #~ msgstr "Nickname [Text]" diff --git a/po/es.po b/po/es.po index 03aa0a1b2..496b434f4 100644 --- a/po/es.po +++ b/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-10 11:59+0200\n" +"POT-Creation-Date: 2009-10-10 12:39+0200\n" "PO-Revision-Date: 2009-09-06 21:25+0200\n" "Last-Translator: Elián Hanisch \n" "Language-Team: weechat-dev \n" @@ -3271,6 +3271,59 @@ msgstr "" "apodo: apodo a invitar\n" "canal: canal para la invitación" +msgid "change mode on channel, without having operator status" +msgstr "" + +#. TRANSLATORS: "channel" and "mode" are arguments +#. for command, translate them separately +#, fuzzy +msgid "channel mode" +msgstr "canal" + +#, fuzzy +msgid "" +"channel: channel name\n" +" mode: mode for channel" +msgstr "" +"canal: canal a unirse\n" +"clave: clave para unirse al canal" + +#, fuzzy +msgid "forces a user to use another nick" +msgstr "expulsar forzosamente a un usuario de un canal" + +#, fuzzy +msgid "nickname new_nickname" +msgstr "apodo: apodo" + +#, fuzzy +msgid "" +" nickname: nickname\n" +"new_nickname: new nickname" +msgstr "" +"apodo: apodo a invitar\n" +"canal: canal para la invitación" + +#, fuzzy +msgid "forces a user to leave channel(s)" +msgstr "expulsar forzosamente a un usuario de un canal" + +#, fuzzy +msgid "forces a user to quit server with a reason" +msgstr "expulsar forzosamente a un usuario de un canal" + +#, fuzzy +msgid "nickname reason" +msgstr "usuario texto" + +#, fuzzy +msgid "" +"nickname: nickname\n" +" reason: reason" +msgstr "" +"apodo: apodo a invitar\n" +"canal: canal para la invitación" + msgid "register a new service" msgstr "registrar un nuevo servicio" @@ -5914,9 +5967,6 @@ msgstr "%s falta un argumento para la opción --dir\n" #~ msgid "%s%s: unknown/missing channel name for \"%s\" command" #~ msgstr "%s faltan argumentos para el comando \"%s\"\n" -#~ msgid "nickname text" -#~ msgstr "usuario texto" - #~ msgid "nickname [text]" #~ msgstr "usuario [texto]" diff --git a/po/fr.po b/po/fr.po index 40982185a..17fcd93cf 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-10 11:59+0200\n" -"PO-Revision-Date: 2009-10-10 12:00+0200\n" +"POT-Creation-Date: 2009-10-10 12:39+0200\n" +"PO-Revision-Date: 2009-10-10 12:40+0200\n" "Last-Translator: FlashCode \n" "Language-Team: weechat-dev \n" "MIME-Version: 1.0\n" @@ -3535,6 +3535,50 @@ msgstr "" "pseudo: pseudo\n" " canal: canal" +msgid "change mode on channel, without having operator status" +msgstr "changer le mode du canal, sans avoir le statut opérateur" + +#. TRANSLATORS: "channel" and "mode" are arguments +#. for command, translate them separately +msgid "channel mode" +msgstr "mode canal" + +msgid "" +"channel: channel name\n" +" mode: mode for channel" +msgstr "" +"canal: nom du canal\n" +" mode: mode pour le canal" + +msgid "forces a user to use another nick" +msgstr "force un utilisateur à utiliser un autre pseudo" + +msgid "nickname new_nickname" +msgstr "pseudo nouveau_pseudo" + +msgid "" +" nickname: nickname\n" +"new_nickname: new nickname" +msgstr "" +" pseudo: pseudo\n" +"nouveau_pseudo: nouveau pseudo" + +msgid "forces a user to leave channel(s)" +msgstr "force un utilisateur à quitter un ou plusieurs canaux" + +msgid "forces a user to quit server with a reason" +msgstr "force un utilisateur à quitter le serveur avec une raison" + +msgid "nickname reason" +msgstr "pseudo raison" + +msgid "" +"nickname: nickname\n" +" reason: reason" +msgstr "" +"pseudo: pseudo\n" +"raison: raison" + msgid "register a new service" msgstr "enregister un nouveau service" diff --git a/po/hu.po b/po/hu.po index 30b2aa81b..93a09d582 100644 --- a/po/hu.po +++ b/po/hu.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-10 11:59+0200\n" +"POT-Creation-Date: 2009-10-10 12:39+0200\n" "PO-Revision-Date: 2009-09-20 13:51+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -3385,6 +3385,59 @@ msgstr "" " név: meghívandó név\n" "szoba: meghívandó szoba" +msgid "change mode on channel, without having operator status" +msgstr "" + +#. TRANSLATORS: "channel" and "mode" are arguments +#. for command, translate them separately +#, fuzzy +msgid "channel mode" +msgstr "%d szoba" + +#, fuzzy +msgid "" +"channel: channel name\n" +" mode: mode for channel" +msgstr "" +"szoba: a szoba neve, ahová csatlakozni szeretnénk\n" +"kulcs: a csatlakozáshoz szükséges kulcs" + +#, fuzzy +msgid "forces a user to use another nick" +msgstr "felhasználó erőszakos eltávolítása a szobából" + +#, fuzzy +msgid "nickname new_nickname" +msgstr "név: név" + +#, fuzzy +msgid "" +" nickname: nickname\n" +"new_nickname: new nickname" +msgstr "" +" név: meghívandó név\n" +"szoba: meghívandó szoba" + +#, fuzzy +msgid "forces a user to leave channel(s)" +msgstr "felhasználó erőszakos eltávolítása a szobából" + +#, fuzzy +msgid "forces a user to quit server with a reason" +msgstr "felhasználó erőszakos eltávolítása a szobából" + +#, fuzzy +msgid "nickname reason" +msgstr "név szöveg" + +#, fuzzy +msgid "" +"nickname: nickname\n" +" reason: reason" +msgstr "" +" név: meghívandó név\n" +"szoba: meghívandó szoba" + msgid "register a new service" msgstr "új szolgáltatás regisztrálása" @@ -6048,9 +6101,6 @@ msgstr "%s hiányzó argumentum a(z) \"%s\" opciónak\n" #~ msgid "%s%s: unknown/missing channel name for \"%s\" command" #~ msgstr "%s hiányzó argumentum a \"%s\" parancsnak\n" -#~ msgid "nickname text" -#~ msgstr "név szöveg" - #~ msgid "nickname [text]" #~ msgstr "becenév [szöveg]" diff --git a/po/pl.po b/po/pl.po index f0c40ce8b..cc477d6ca 100644 --- a/po/pl.po +++ b/po/pl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-10 11:59+0200\n" +"POT-Creation-Date: 2009-10-10 12:39+0200\n" "PO-Revision-Date: 2009-09-06 21:25+0200\n" "Last-Translator: Krzysztof Korościk \n" "Language-Team: Polish\n" @@ -3500,6 +3500,59 @@ msgstr "" "nick: nick do zaproszenia\n" " kanał: kanał na który zapraszamy" +msgid "change mode on channel, without having operator status" +msgstr "" + +#. TRANSLATORS: "channel" and "mode" are arguments +#. for command, translate them separately +#, fuzzy +msgid "channel mode" +msgstr "kanał" + +#, fuzzy +msgid "" +"channel: channel name\n" +" mode: mode for channel" +msgstr "" +"kanał: nazwa kanału, na który chcemy wejść\n" +" klucz: hasło wymagane do wejścia na kanał" + +#, fuzzy +msgid "forces a user to use another nick" +msgstr "sułowo usuwa użytkownika z kanału" + +#, fuzzy +msgid "nickname new_nickname" +msgstr "nick: nazwa użytkownika" + +#, fuzzy +msgid "" +" nickname: nickname\n" +"new_nickname: new nickname" +msgstr "" +"nick: nick do zaproszenia\n" +" kanał: kanał na który zapraszamy" + +#, fuzzy +msgid "forces a user to leave channel(s)" +msgstr "sułowo usuwa użytkownika z kanału" + +#, fuzzy +msgid "forces a user to quit server with a reason" +msgstr "sułowo usuwa użytkownika z kanału" + +#, fuzzy +msgid "nickname reason" +msgstr "nick kanał" + +#, fuzzy +msgid "" +"nickname: nickname\n" +" reason: reason" +msgstr "" +"nick: nick do zaproszenia\n" +" kanał: kanał na który zapraszamy" + msgid "register a new service" msgstr "rejestruje nową usługę" diff --git a/po/ru.po b/po/ru.po index f20f24137..be4362cf7 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-10 11:59+0200\n" +"POT-Creation-Date: 2009-10-10 12:39+0200\n" "PO-Revision-Date: 2009-09-20 13:50+0200\n" "Last-Translator: Pavel Shevchuk \n" "Language-Team: weechat-dev \n" @@ -3393,6 +3393,59 @@ msgstr "" " ник: приглашаемый ник\n" "канал: целевой канал" +msgid "change mode on channel, without having operator status" +msgstr "" + +#. TRANSLATORS: "channel" and "mode" are arguments +#. for command, translate them separately +#, fuzzy +msgid "channel mode" +msgstr "%d канал" + +#, fuzzy +msgid "" +"channel: channel name\n" +" mode: mode for channel" +msgstr "" +"канал: название канала\n" +" ключ: ключ для входа на канал" + +#, fuzzy +msgid "forces a user to use another nick" +msgstr "принудительно удалить пользователя с канала" + +#, fuzzy +msgid "nickname new_nickname" +msgstr "ник: ник" + +#, fuzzy +msgid "" +" nickname: nickname\n" +"new_nickname: new nickname" +msgstr "" +" ник: приглашаемый ник\n" +"канал: целевой канал" + +#, fuzzy +msgid "forces a user to leave channel(s)" +msgstr "принудительно удалить пользователя с канала" + +#, fuzzy +msgid "forces a user to quit server with a reason" +msgstr "принудительно удалить пользователя с канала" + +#, fuzzy +msgid "nickname reason" +msgstr "ник текст" + +#, fuzzy +msgid "" +"nickname: nickname\n" +" reason: reason" +msgstr "" +" ник: приглашаемый ник\n" +"канал: целевой канал" + msgid "register a new service" msgstr "зарегистрировать новый сервис" @@ -6035,9 +6088,6 @@ msgstr "%s нет аргумента для параметра \"%s\"\n" #~ msgid "%s%s: unknown/missing channel name for \"%s\" command" #~ msgstr "%s нет аргументов для \"%s\" команды\n" -#~ msgid "nickname text" -#~ msgstr "ник текст" - #~ msgid "nickname [text]" #~ msgstr "ник [текст]" diff --git a/po/weechat.pot b/po/weechat.pot index 830aa4522..38193ef4e 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: 2009-10-10 11:59+0200\n" +"POT-Creation-Date: 2009-10-10 12:39+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2910,6 +2910,44 @@ msgid "" " channel: channel name" msgstr "" +msgid "change mode on channel, without having operator status" +msgstr "" + +#. TRANSLATORS: "channel" and "mode" are arguments +#. for command, translate them separately +msgid "channel mode" +msgstr "" + +msgid "" +"channel: channel name\n" +" mode: mode for channel" +msgstr "" + +msgid "forces a user to use another nick" +msgstr "" + +msgid "nickname new_nickname" +msgstr "" + +msgid "" +" nickname: nickname\n" +"new_nickname: new nickname" +msgstr "" + +msgid "forces a user to leave channel(s)" +msgstr "" + +msgid "forces a user to quit server with a reason" +msgstr "" + +msgid "nickname reason" +msgstr "" + +msgid "" +"nickname: nickname\n" +" reason: reason" +msgstr "" + msgid "register a new service" msgstr "" diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c index f6532e9fd..2cfc761bc 100644 --- a/src/plugins/irc/irc-command.c +++ b/src/plugins/irc/irc-command.c @@ -2761,6 +2761,110 @@ irc_command_sajoin (void *data, struct t_gui_buffer *buffer, int argc, return WEECHAT_RC_OK; } +/* + * irc_command_samode: change mode on channel, without having operator status + */ + +int +irc_command_samode (void *data, struct t_gui_buffer *buffer, int argc, + char **argv, char **argv_eol) +{ + IRC_GET_SERVER_CHANNEL(buffer); + IRC_COMMAND_CHECK_SERVER("samode", 1); + + /* make C compiler happy */ + (void) data; + + if (argc > 2) + { + irc_server_sendf (ptr_server, 0, "SAMODE %s %s", argv[1], argv_eol[2]); + } + else + { + IRC_COMMAND_TOO_FEW_ARGUMENTS(ptr_server->buffer, "samode"); + } + + return WEECHAT_RC_OK; +} + +/* + * irc_command_sanick: forces a user to use another nick + */ + +int +irc_command_sanick (void *data, struct t_gui_buffer *buffer, int argc, + char **argv, char **argv_eol) +{ + IRC_GET_SERVER_CHANNEL(buffer); + IRC_COMMAND_CHECK_SERVER("sanick", 1); + + /* make C compiler happy */ + (void) data; + + if (argc > 2) + { + irc_server_sendf (ptr_server, 0, "SANICK %s %s", argv[1], argv_eol[2]); + } + else + { + IRC_COMMAND_TOO_FEW_ARGUMENTS(ptr_server->buffer, "sanick"); + } + + return WEECHAT_RC_OK; +} + +/* + * irc_command_sapart: forces a user to leave channel(s) + */ + +int +irc_command_sapart (void *data, struct t_gui_buffer *buffer, int argc, + char **argv, char **argv_eol) +{ + IRC_GET_SERVER_CHANNEL(buffer); + IRC_COMMAND_CHECK_SERVER("sapart", 1); + + /* make C compiler happy */ + (void) data; + + if (argc > 2) + { + irc_server_sendf (ptr_server, 0, "SAPART %s %s", argv[1], argv_eol[2]); + } + else + { + IRC_COMMAND_TOO_FEW_ARGUMENTS(ptr_server->buffer, "sapart"); + } + + return WEECHAT_RC_OK; +} + +/* + * irc_command_saquit: forces a user to quit server with a reason + */ + +int +irc_command_saquit (void *data, struct t_gui_buffer *buffer, int argc, + char **argv, char **argv_eol) +{ + IRC_GET_SERVER_CHANNEL(buffer); + IRC_COMMAND_CHECK_SERVER("saquit", 1); + + /* make C compiler happy */ + (void) data; + + if (argc > 2) + { + irc_server_sendf (ptr_server, 0, "SAQUIT %s :%s", argv[1], argv_eol[2]); + } + else + { + IRC_COMMAND_TOO_FEW_ARGUMENTS(ptr_server->buffer, "saquit"); + } + + return WEECHAT_RC_OK; +} + /* * irc_command_server: manage IRC servers */ @@ -4038,7 +4142,34 @@ irc_command_init () N_("nickname channel[,channel]"), N_("nickname: nickname\n" " channel: channel name"), - "%(nicks) %(irc_channels)", &irc_command_sajoin, NULL); + "%(nicks) %(irc_server_channels)", &irc_command_sajoin, NULL); + weechat_hook_command ("samode", + N_("change mode on channel, without having operator " + "status"), + /* TRANSLATORS: "channel" and "mode" are arguments + for command, translate them separately */ + N_("channel mode"), + N_("channel: channel name\n" + " mode: mode for channel"), + "%(irc_server_channels)", &irc_command_samode, NULL); + weechat_hook_command ("sanick", + N_("forces a user to use another nick"), + N_("nickname new_nickname"), + N_(" nickname: nickname\n" + "new_nickname: new nickname"), + "%(nicks) %(nicks)", &irc_command_sanick, NULL); + weechat_hook_command ("sapart", + N_("forces a user to leave channel(s)"), + N_("nickname channel[,channel]"), + N_("nickname: nickname\n" + " channel: channel name"), + "%(nicks) %(irc_server_channels)", &irc_command_sapart, NULL); + weechat_hook_command ("saquit", + N_("forces a user to quit server with a reason"), + N_("nickname reason"), + N_("nickname: nickname\n" + " reason: reason"), + "%(nicks)", &irc_command_saquit, NULL); weechat_hook_command ("service", N_("register a new service"), N_("nickname reserved distribution type reserved "