diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | NEWS | 10 | ||||
-rw-r--r-- | doc/en/autogen/user/irc_commands.txt | 31 | ||||
-rw-r--r-- | doc/fr/autogen/user/irc_commands.txt | 31 | ||||
-rw-r--r-- | doc/it/autogen/user/irc_commands.txt | 31 | ||||
-rw-r--r-- | po/cs.po | 67 | ||||
-rw-r--r-- | po/de.po | 71 | ||||
-rw-r--r-- | po/es.po | 67 | ||||
-rw-r--r-- | po/fr.po | 102 | ||||
-rw-r--r-- | po/hu.po | 68 | ||||
-rw-r--r-- | po/it.po | 67 | ||||
-rw-r--r-- | po/pl.po | 67 | ||||
-rw-r--r-- | po/ru.po | 68 | ||||
-rw-r--r-- | po/weechat.pot | 51 | ||||
-rw-r--r-- | src/plugins/alias/alias.c | 4 | ||||
-rw-r--r-- | src/plugins/irc/irc-command.c | 403 |
16 files changed, 854 insertions, 288 deletions
@@ -1,7 +1,7 @@ WeeChat ChangeLog ================= FlashCode <flashcode@flashtux.org> -v0.3.1-dev, 2009-12-31 +v0.3.1-dev, 2010-01-08 Version 0.3.1 (under dev!) @@ -24,6 +24,8 @@ Version 0.3.1 (under dev!) * alias: fix bug with buffer for execution of alias, when called from plugin API with function "command" (bug #27697) * alias: fix bug with arguments (bug #27440) +* irc: add new commands /allchan and /allserv with excluding option, commands + /ame and /amsg are now aliases, new aliases /aaway and /anick * irc: add options to customize target buffer for messages (task #7381) * irc: use self-signed certificate to auto identify on IRC server (CertFP) (task #7492, debian #453348) @@ -1,6 +1,16 @@ WeeChat News ============ +FlashCode, 2010-01-08:: + WeeChat 0.3.1 is under development. + + + IRC commands /ame and /amsg are now aliases, if you are upgrading from + version 0.3.0, you must create aliases with following commands: + * `/alias aaway allserv /away` + * `/alias ame allchan /me` + * `/alias amsg allchan /amsg *` + * `/alias anick allserv /nick` + FlashCode, 2009-09-06:: WeeChat 0.3.0 released. + diff --git a/doc/en/autogen/user/irc_commands.txt b/doc/en/autogen/user/irc_commands.txt index d0b49be45..ae916934c 100644 --- a/doc/en/autogen/user/irc_commands.txt +++ b/doc/en/autogen/user/irc_commands.txt @@ -6,20 +6,39 @@ target: server ........................................ -• *`/ame`* `message`:: +• *`/allchan`* `[-current] [-exclude=channel[,channel...]] command [arguments]`:: ........................................ - send a CTCP action to all channels of all connected servers + execute a command on all channels of all connected servers - message: message to send + -current: execute command for channels of curent server only + -exclude: exclude some channels ('*' is allowed at beginning or end of channel name, to exclude many channels) + command: command to execute + arguments: arguments for command + + Examples: + execute '/me is testing' on all channels: + /allchan me is testing + say 'hello' everywhere but not on #weechat: + /allchan -exclude=#weechat msg * hello + say 'hello' everywhere but not on #weechat and channels beginning with #linux: + /allchan -exclude=#weechat,#linux* msg * hello ........................................ -• *`/amsg`* `text`:: +• *`/allserv`* `[-exclude=server[,server...]] command [arguments]`:: ........................................ - send message to all channels of all connected servers + execute a command on all connected servers - text: text to send + -exclude: exclude some servers ('*' is allowed at beginning or end of server name, to exclude many servers) + command: command to execute + arguments: arguments for command + + Examples: + change nick on all servers: + /allserv nick newnick + set away on all servers: + /allserv away I'm away ........................................ • *`/away`* `[-all] [message]`:: diff --git a/doc/fr/autogen/user/irc_commands.txt b/doc/fr/autogen/user/irc_commands.txt index 9b6fdbdd1..452346990 100644 --- a/doc/fr/autogen/user/irc_commands.txt +++ b/doc/fr/autogen/user/irc_commands.txt @@ -6,20 +6,39 @@ cible: serveur ........................................ -• *`/ame`* `message`:: +• *`/allchan`* `[-current] [-exclude=canal[,canal...]] commande [paramètres]`:: ........................................ - envoyer une action CTCP à tous les canaux de tous les serveurs connectés + exécuter une commande sur tous les canaux de tous les serveurs connectés - message: message à envoyer + -current: exécuter la commande pour les canaux du serveur courant seulement + -exclude: exclure certains canaux ('*' est autorisé au début ou à la fin du nom du canal, pour exclure plusieurs canaux) + commande: commande à exécuter + paramètres: paramètres pour la commande + + Exemples : + exécuter '/me teste' sur tous les canaux : + /allchan me teste + dire 'bonjour' partout sauf sur #weechat : + /allchan -exclude=#weechat msg * bonjour + dire 'bonjour' partout sauf sur #weechat et les canaux commençant par #linux : + /allchan -exclude=#weechat,#linux* msg * bonjour ........................................ -• *`/amsg`* `texte`:: +• *`/allserv`* `[-exclude=serveur[,serveur...]] commande [paramètres]`:: ........................................ - envoyer un message à tous les canaux de tous les serveurs connectés + exécuter une commande sur tous les serveurs connectés - texte: texte à envoyer + -exclude: exclude certains serveurs ('*' is est autorisé en début ou fin du nom du serveur, pour exclure plusieurs serveurs) + commande: commande à exécuter + paramètres: paramètres pour la commande + + Exemples : + changer de pseudo sur tous les serveurs : + /allserv nick newnick + positionner l'absence sur tous les serveurs : + /allserv away Je suis absent ........................................ • *`/away`* `[-all] [message]`:: diff --git a/doc/it/autogen/user/irc_commands.txt b/doc/it/autogen/user/irc_commands.txt index dee7f903a..f0a666e8a 100644 --- a/doc/it/autogen/user/irc_commands.txt +++ b/doc/it/autogen/user/irc_commands.txt @@ -6,20 +6,39 @@ destinazione: server ........................................ -• *`/ame`* `messaggio`:: +• *`/allchan`* `[-current] [-exclude=channel[,channel...]] command [arguments]`:: ........................................ - invia un comando CTCP per tutti i canali dei server connessi + execute a command on all channels of all connected servers - messaggio: messaggio da inviare + -current: execute command for channels of curent server only + -exclude: exclude some channels ('*' is allowed at beginning or end of channel name, to exclude many channels) + command: command to execute + arguments: arguments for command + + Examples: + execute '/me is testing' on all channels: + /allchan me is testing + say 'hello' everywhere but not on #weechat: + /allchan -exclude=#weechat msg * hello + say 'hello' everywhere but not on #weechat and channels beginning with #linux: + /allchan -exclude=#weechat,#linux* msg * hello ........................................ -• *`/amsg`* `testo`:: +• *`/allserv`* `[-exclude=server[,server...]] command [arguments]`:: ........................................ - invia un messaggio a tutti i canali di tutti dei server connessi + execute a command on all connected servers - testo: testo da inviare + -exclude: exclude some servers ('*' is allowed at beginning or end of server name, to exclude many servers) + command: command to execute + arguments: arguments for command + + Examples: + change nick on all servers: + /allserv nick newnick + set away on all servers: + /allserv away I'm away ........................................ • *`/away`* `[-all] [messaggio]`:: @@ -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: 2010-01-03 15:15+0100\n" +"POT-Creation-Date: 2010-01-07 21:55+0100\n" "PO-Revision-Date: 2010-01-03 15:15+0100\n" "Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -2755,10 +2755,6 @@ msgid "%s%s: cannot allocate new channel" msgstr "%s%s: nemohu přidělit nový kanál" #, c-format -msgid "%s%s: cannot find nick for sending message" -msgstr "%s%s: nemohu najít přezdívku pro poslání zprávy" - -#, c-format msgid "%s: future away: %s" msgstr "%s: Budoucí zpráva o nepřítomnosit: %s" @@ -2969,23 +2965,49 @@ msgstr "[cíl]" msgid "target: server" msgstr "cíl: server" -msgid "send a CTCP action to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all channels of all connected servers" msgstr "poslat CTCP akci na všechny kanály všech připojených serverů" -msgid "message" -msgstr "zpráva" +msgid "[-current] [-exclude=channel[,channel...]] command [arguments]" +msgstr "" -msgid "message: message to send" -msgstr "zpráva: zpráva, která se má poslat" +msgid "" +" -current: execute command for channels of curent server only\n" +" -exclude: exclude some channels ('*' is allowed at beginning or end of " +"channel name, to exclude many channels)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" execute '/me is testing' on all channels:\n" +" /allchan me is testing\n" +" say 'hello' everywhere but not on #weechat:\n" +" /allchan -exclude=#weechat msg * hello\n" +" say 'hello' everywhere but not on #weechat and channels beginning with " +"#linux:\n" +" /allchan -exclude=#weechat,#linux* msg * hello" +msgstr "" -msgid "send message to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all connected servers" msgstr "poslat zprávu na všechny kanály všech připojených serverů" -msgid "text" -msgstr "text" +msgid "[-exclude=server[,server...]] command [arguments]" +msgstr "" -msgid "text: text to send" -msgstr "text: texk k poslání" +msgid "" +" -exclude: exclude some servers ('*' is allowed at beginning or end of " +"server name, to exclude many servers)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" change nick on all servers:\n" +" /allserv nick newnick\n" +" set away on all servers:\n" +" /allserv away I'm away" +msgstr "" msgid "toggle away status" msgstr "přepnout status nepřítomnosti" @@ -3297,6 +3319,12 @@ msgstr "" msgid "send a CTCP action to the current channel" msgstr "poslat CTCP akci na aktuální kanál" +msgid "message" +msgstr "zpráva" + +msgid "message: message to send" +msgstr "zpráva: zpráva, která se má poslat" + msgid "change channel or user mode" msgstr "změní mód kanálu nebo uživatele" @@ -3792,6 +3820,9 @@ msgstr "" "poslat zprávu všem aktuálně připojeným uživatelům, kteří mají u sebe " "nastaven uživatelský mód 'w'" +msgid "text" +msgstr "text" + msgid "text to send" msgstr "text pro poslání" @@ -5880,6 +5911,12 @@ msgstr "%s%s: nemohu nastavit \"neblokovaci\" volbu na soket" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: vypršel časový limit \"%s\" pro %s" +#~ msgid "%s%s: cannot find nick for sending message" +#~ msgstr "%s%s: nemohu najít přezdívku pro poslání zprávy" + +#~ msgid "text: text to send" +#~ msgstr "text: texk k poslání" + #, fuzzy #~ msgid "%s%s: error creating msgbuffer \"%s\" => \"%s\"" #~ msgstr "%s%s: chyba vytváření znakové sady \"%s\" => \"%s\"" @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-01-03 15:15+0100\n" +"POT-Creation-Date: 2010-01-07 21:55+0100\n" "PO-Revision-Date: 2010-01-03 15:15+0100\n" "Last-Translator: Nils G <weechatter@arcor.de>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -2858,12 +2858,6 @@ msgid "%s%s: cannot allocate new channel" msgstr "%s%s: Neuer Channel konnte nicht alloziert werden" #, c-format -msgid "%s%s: cannot find nick for sending message" -msgstr "" -"%s%s: Kann den Nicknamen nicht finden, an den die Nachricht gesendet werden " -"soll" - -#, c-format msgid "%s: future away: %s" msgstr "%s: Künftige Abwesenheit: %s" @@ -3080,23 +3074,49 @@ msgstr "[Ziel]" msgid "target: server" msgstr "Ziel: Server" -msgid "send a CTCP action to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all channels of all connected servers" msgstr "Nachricht an alle Channels aller verbundenen Server schicken" -msgid "message" -msgstr "Nachricht" +msgid "[-current] [-exclude=channel[,channel...]] command [arguments]" +msgstr "" -msgid "message: message to send" -msgstr "zu sendende Nachricht" +msgid "" +" -current: execute command for channels of curent server only\n" +" -exclude: exclude some channels ('*' is allowed at beginning or end of " +"channel name, to exclude many channels)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" execute '/me is testing' on all channels:\n" +" /allchan me is testing\n" +" say 'hello' everywhere but not on #weechat:\n" +" /allchan -exclude=#weechat msg * hello\n" +" say 'hello' everywhere but not on #weechat and channels beginning with " +"#linux:\n" +" /allchan -exclude=#weechat,#linux* msg * hello" +msgstr "" -msgid "send message to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all connected servers" msgstr "Nachricht an alle Channels aller verbundener Server schicken" -msgid "text" -msgstr "Text" +msgid "[-exclude=server[,server...]] command [arguments]" +msgstr "" -msgid "text: text to send" -msgstr "Text: zu sendender Text" +msgid "" +" -exclude: exclude some servers ('*' is allowed at beginning or end of " +"server name, to exclude many servers)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" change nick on all servers:\n" +" /allserv nick newnick\n" +" set away on all servers:\n" +" /allserv away I'm away" +msgstr "" msgid "toggle away status" msgstr "Abwesenheitsnachricht ein-/ausschalten" @@ -3431,6 +3451,12 @@ msgstr "" msgid "send a CTCP action to the current channel" msgstr "Eine CTCP ACTION an den aktuellen Channel senden" +msgid "message" +msgstr "Nachricht" + +msgid "message: message to send" +msgstr "zu sendende Nachricht" + msgid "change channel or user mode" msgstr "Modus von einem Channel oder User ändern" @@ -3926,6 +3952,9 @@ msgid "" "mode for themselves" msgstr "Nachricht an alle User schicken, die den 'w'-Mode gesetzt haben" +msgid "text" +msgstr "Text" + msgid "text to send" msgstr "zu sendender Text" @@ -6081,6 +6110,14 @@ msgstr "" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: Zeitüberschreitung für \"%s\" mit %s" +#~ msgid "%s%s: cannot find nick for sending message" +#~ msgstr "" +#~ "%s%s: Kann den Nicknamen nicht finden, an den die Nachricht gesendet " +#~ "werden soll" + +#~ msgid "text: text to send" +#~ msgstr "Text: zu sendender Text" + #, fuzzy #~ msgid "%s%s: error creating msgbuffer \"%s\" => \"%s\"" #~ msgstr "%s%s: Fehler bei Zeichensatz Erstellung \"%s\" => \"%s\"" @@ -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: 2010-01-03 15:15+0100\n" +"POT-Creation-Date: 2010-01-07 21:55+0100\n" "PO-Revision-Date: 2010-01-03 15:16+0100\n" "Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -2798,10 +2798,6 @@ msgid "%s%s: cannot allocate new channel" msgstr "%s%s: no se pudo crear un nuevo canal" #, c-format -msgid "%s%s: cannot find nick for sending message" -msgstr "%s%s: no se pudo encontrar el apodo para enviarle el mensaje" - -#, c-format msgid "%s: future away: %s" msgstr "%s: ausencia futura: %s" @@ -3013,24 +3009,50 @@ msgstr "[objetivo]" msgid "target: server" msgstr "objetivo: servidor" -msgid "send a CTCP action to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all channels of all connected servers" msgstr "" "envía una acción CTCP a todos los canales de todos los servidores conectados" -msgid "message" -msgstr "mensaje" +msgid "[-current] [-exclude=channel[,channel...]] command [arguments]" +msgstr "" -msgid "message: message to send" -msgstr "mensaje: mensaje a enviar" +msgid "" +" -current: execute command for channels of curent server only\n" +" -exclude: exclude some channels ('*' is allowed at beginning or end of " +"channel name, to exclude many channels)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" execute '/me is testing' on all channels:\n" +" /allchan me is testing\n" +" say 'hello' everywhere but not on #weechat:\n" +" /allchan -exclude=#weechat msg * hello\n" +" say 'hello' everywhere but not on #weechat and channels beginning with " +"#linux:\n" +" /allchan -exclude=#weechat,#linux* msg * hello" +msgstr "" -msgid "send message to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all connected servers" msgstr "enviar mensaje a todos los canales de todos los servidores conectados" -msgid "text" -msgstr "texto" +msgid "[-exclude=server[,server...]] command [arguments]" +msgstr "" -msgid "text: text to send" -msgstr "texto: texto a enviar" +msgid "" +" -exclude: exclude some servers ('*' is allowed at beginning or end of " +"server name, to exclude many servers)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" change nick on all servers:\n" +" /allserv nick newnick\n" +" set away on all servers:\n" +" /allserv away I'm away" +msgstr "" msgid "toggle away status" msgstr "activa/desactiva el estado ausente" @@ -3359,6 +3381,12 @@ msgstr "" msgid "send a CTCP action to the current channel" msgstr "envía una acción CTCP al canal actual" +msgid "message" +msgstr "mensaje" + +msgid "message: message to send" +msgstr "mensaje: mensaje a enviar" + msgid "change channel or user mode" msgstr "cambia el modo del canal o del usuario" @@ -3854,6 +3882,9 @@ msgstr "" "enviar un mensaje a todos los usuarios conectados que tengan el modo de " "usuario 'w' para ellos mismos" +msgid "text" +msgstr "texto" + msgid "text to send" msgstr "texto a enviar" @@ -5986,6 +6017,12 @@ msgstr "%s%s: no es posible configurar la opción \"nonblock\" para el socket" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: tiempo de espera máximo para \"%s\" con %s" +#~ msgid "%s%s: cannot find nick for sending message" +#~ msgstr "%s%s: no se pudo encontrar el apodo para enviarle el mensaje" + +#~ msgid "text: text to send" +#~ msgstr "texto: texto a enviar" + #, fuzzy #~ msgid "%s%s: error creating msgbuffer \"%s\" => \"%s\"" #~ msgstr "%s%s: error al crear el set de caracteres \"%s\" => \"%s\"" @@ -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: 2010-01-03 15:15+0100\n" -"PO-Revision-Date: 2010-01-03 15:16+0100\n" +"POT-Creation-Date: 2010-01-07 21:55+0100\n" +"PO-Revision-Date: 2010-01-07 21:56+0100\n" "Last-Translator: FlashCode <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "MIME-Version: 1.0\n" @@ -2819,10 +2819,6 @@ msgid "%s%s: cannot allocate new channel" msgstr "%s%s: impossible d'allouer un nouveau canal" #, c-format -msgid "%s%s: cannot find nick for sending message" -msgstr "%s%s: impossible de trouver le pseudo pour envoyer le message" - -#, c-format msgid "%s: future away: %s" msgstr "%s: future absence: %s" @@ -3037,24 +3033,73 @@ msgstr "[cible]" msgid "target: server" msgstr "cible: serveur" -msgid "send a CTCP action to all channels of all connected servers" +msgid "execute a command on all channels of all connected servers" msgstr "" -"envoyer une action CTCP à tous les canaux de tous les serveurs connectés" - -msgid "message" -msgstr "message" - -msgid "message: message to send" -msgstr "message: message à envoyer" +"exécuter une commande sur tous les canaux de tous les serveurs connectés" -msgid "send message to all channels of all connected servers" -msgstr "envoyer un message à tous les canaux de tous les serveurs connectés" +msgid "[-current] [-exclude=channel[,channel...]] command [arguments]" +msgstr "[-current] [-exclude=canal[,canal...]] commande [paramètres]" -msgid "text" -msgstr "texte" - -msgid "text: text to send" -msgstr "texte: texte à envoyer" +msgid "" +" -current: execute command for channels of curent server only\n" +" -exclude: exclude some channels ('*' is allowed at beginning or end of " +"channel name, to exclude many channels)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" execute '/me is testing' on all channels:\n" +" /allchan me is testing\n" +" say 'hello' everywhere but not on #weechat:\n" +" /allchan -exclude=#weechat msg * hello\n" +" say 'hello' everywhere but not on #weechat and channels beginning with " +"#linux:\n" +" /allchan -exclude=#weechat,#linux* msg * hello" +msgstr "" +" -current: exécuter la commande pour les canaux du serveur courant " +"seulement\n" +" -exclude: exclure certains canaux ('*' est autorisé au début ou à la fin " +"du nom du canal, pour exclure plusieurs canaux)\n" +" commande: commande à exécuter\n" +"paramètres: paramètres pour la commande\n" +"\n" +"Exemples :\n" +" exécuter '/me teste' sur tous les canaux :\n" +" /allchan me teste\n" +" dire 'bonjour' partout sauf sur #weechat :\n" +" /allchan -exclude=#weechat msg * bonjour\n" +" dire 'bonjour' partout sauf sur #weechat et les canaux commençant par " +"#linux :\n" +" /allchan -exclude=#weechat,#linux* msg * bonjour" + +msgid "execute a command on all connected servers" +msgstr "exécuter une commande sur tous les serveurs connectés" + +msgid "[-exclude=server[,server...]] command [arguments]" +msgstr "[-exclude=serveur[,serveur...]] commande [paramètres]" + +msgid "" +" -exclude: exclude some servers ('*' is allowed at beginning or end of " +"server name, to exclude many servers)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" change nick on all servers:\n" +" /allserv nick newnick\n" +" set away on all servers:\n" +" /allserv away I'm away" +msgstr "" +" -exclude: exclude certains serveurs ('*' is est autorisé en début ou fin " +"du nom du serveur, pour exclure plusieurs serveurs)\n" +" commande: commande à exécuter\n" +"paramètres: paramètres pour la commande\n" +"\n" +"Exemples :\n" +" changer de pseudo sur tous les serveurs :\n" +" /allserv nick newnick\n" +" positionner l'absence sur tous les serveurs :\n" +" /allserv away Je suis absent" msgid "toggle away status" msgstr "basculer le statut absent" @@ -3382,6 +3427,12 @@ msgstr "" msgid "send a CTCP action to the current channel" msgstr "envoyer une action CTCP au canal courant" +msgid "message" +msgstr "message" + +msgid "message: message to send" +msgstr "message: message à envoyer" + msgid "change channel or user mode" msgstr "changer le mode du canal ou de l'utilisateur" @@ -3878,6 +3929,9 @@ msgstr "" "envoyer un message à tous les utilisateurs connectés qui ont activé le mode " "utilisateur 'w' pour eux-mêmes" +msgid "text" +msgstr "texte" + msgid "text to send" msgstr "texte à envoyer" @@ -6007,3 +6061,9 @@ msgstr "%s%s: impossible de positionner l'option \"nonblock\" pour la socket" #, c-format msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: délai d'attente dépassé pour \"%s\" avec %s" + +#~ msgid "%s%s: cannot find nick for sending message" +#~ msgstr "%s%s: impossible de trouver le pseudo pour envoyer le message" + +#~ msgid "text: text to send" +#~ msgstr "texte: texte à envoyer" @@ -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: 2010-01-03 15:15+0100\n" +"POT-Creation-Date: 2010-01-07 21:55+0100\n" "PO-Revision-Date: 2010-01-03 15:16+0100\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -2673,10 +2673,6 @@ msgid "%s%s: cannot allocate new channel" msgstr "%s nem sikerült új csatornát lefoglalni" #, fuzzy, c-format -msgid "%s%s: cannot find nick for sending message" -msgstr "%s nem található név az üzenet küldéséhez\n" - -#, fuzzy, c-format msgid "%s: future away: %s" msgstr "CTCP %sVERSION%s válasz %s%s%s felhasználótól: %s\n" @@ -2887,23 +2883,49 @@ msgstr "[cél]" msgid "target: server" msgstr "cél: szerver" -msgid "send a CTCP action to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all channels of all connected servers" msgstr "CTCP üzenet küldése az összes csatlakoztatott szerver összes szobájába" -msgid "message" -msgstr "üzenet" +msgid "[-current] [-exclude=channel[,channel...]] command [arguments]" +msgstr "" -msgid "message: message to send" -msgstr "üzenet: küldendő üzenet" +msgid "" +" -current: execute command for channels of curent server only\n" +" -exclude: exclude some channels ('*' is allowed at beginning or end of " +"channel name, to exclude many channels)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" execute '/me is testing' on all channels:\n" +" /allchan me is testing\n" +" say 'hello' everywhere but not on #weechat:\n" +" /allchan -exclude=#weechat msg * hello\n" +" say 'hello' everywhere but not on #weechat and channels beginning with " +"#linux:\n" +" /allchan -exclude=#weechat,#linux* msg * hello" +msgstr "" -msgid "send message to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all connected servers" msgstr "üzenet küldése az összes csatlakoztatott szerver összes szobájába" -msgid "text" -msgstr "szöveg" +msgid "[-exclude=server[,server...]] command [arguments]" +msgstr "" -msgid "text: text to send" -msgstr "szöveg: küldendő szöveg" +msgid "" +" -exclude: exclude some servers ('*' is allowed at beginning or end of " +"server name, to exclude many servers)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" change nick on all servers:\n" +" /allserv nick newnick\n" +" set away on all servers:\n" +" /allserv away I'm away" +msgstr "" msgid "toggle away status" msgstr "távolléti státusz váltása" @@ -3209,6 +3231,12 @@ msgstr "" msgid "send a CTCP action to the current channel" msgstr "CTCP parancs küldése az aktuális szobába" +msgid "message" +msgstr "üzenet" + +msgid "message: message to send" +msgstr "üzenet: küldendő üzenet" + msgid "change channel or user mode" msgstr "szoba vagy felhasználó állapotának változtatása" @@ -3726,6 +3754,9 @@ msgstr "" "üzenet küldése minden olyan felhasználónak, aki a 'w' felhasználói módot " "beállította" +msgid "text" +msgstr "szöveg" + msgid "text to send" msgstr "küldendő üzenet" @@ -5819,6 +5850,13 @@ msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s hiányzó argumentum a(z) \"%s\" opciónak\n" #, fuzzy +#~ msgid "%s%s: cannot find nick for sending message" +#~ msgstr "%s nem található név az üzenet küldéséhez\n" + +#~ msgid "text: text to send" +#~ msgstr "szöveg: küldendő szöveg" + +#, fuzzy #~ msgid "%s%s: error creating msgbuffer \"%s\" => \"%s\"" #~ msgstr "%s nincs elég memória az információs pult üzenethez\n" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Weechat 0.31-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-01-03 15:15+0100\n" +"POT-Creation-Date: 2010-01-07 21:55+0100\n" "PO-Revision-Date: 2010-01-03 15:25+0100\n" "Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -2800,10 +2800,6 @@ msgid "%s%s: cannot allocate new channel" msgstr "%s%s: impossibile allocare un nuovo canale" #, c-format -msgid "%s%s: cannot find nick for sending message" -msgstr "%s%s: impossibile trovare il nick per l'invio del messaggio" - -#, c-format msgid "%s: future away: %s" msgstr "%s: prossima assenza: %s" @@ -3017,23 +3013,49 @@ msgstr "[obiettivo]" msgid "target: server" msgstr "destinazione: server" -msgid "send a CTCP action to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all channels of all connected servers" msgstr "invia un comando CTCP per tutti i canali dei server connessi" -msgid "message" -msgstr "messaggio" +msgid "[-current] [-exclude=channel[,channel...]] command [arguments]" +msgstr "" -msgid "message: message to send" -msgstr "messaggio: messaggio da inviare" +msgid "" +" -current: execute command for channels of curent server only\n" +" -exclude: exclude some channels ('*' is allowed at beginning or end of " +"channel name, to exclude many channels)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" execute '/me is testing' on all channels:\n" +" /allchan me is testing\n" +" say 'hello' everywhere but not on #weechat:\n" +" /allchan -exclude=#weechat msg * hello\n" +" say 'hello' everywhere but not on #weechat and channels beginning with " +"#linux:\n" +" /allchan -exclude=#weechat,#linux* msg * hello" +msgstr "" -msgid "send message to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all connected servers" msgstr "invia un messaggio a tutti i canali di tutti dei server connessi" -msgid "text" -msgstr "testo" +msgid "[-exclude=server[,server...]] command [arguments]" +msgstr "" -msgid "text: text to send" -msgstr "testo: testo da inviare" +msgid "" +" -exclude: exclude some servers ('*' is allowed at beginning or end of " +"server name, to exclude many servers)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" change nick on all servers:\n" +" /allserv nick newnick\n" +" set away on all servers:\n" +" /allserv away I'm away" +msgstr "" msgid "toggle away status" msgstr "attiva/disattiva lo stato di assenza" @@ -3360,6 +3382,12 @@ msgstr "" msgid "send a CTCP action to the current channel" msgstr "invia un'azione CTCP al canale corrente" +msgid "message" +msgstr "messaggio" + +msgid "message: message to send" +msgstr "messaggio: messaggio da inviare" + msgid "change channel or user mode" msgstr "cambia modalità canale o utente" @@ -3855,6 +3883,9 @@ msgstr "" "invia un messaggio a tutti gli utenti attualmente connessi che hanno " "impostato la modalità 'w'" +msgid "text" +msgstr "testo" + msgid "text to send" msgstr "testo da inviare" @@ -5963,6 +5994,12 @@ msgstr "%s%s: impossibile impostare l'opzione \"nonblock\" per il socket" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: timeout per \"%s\" con %s" +#~ msgid "%s%s: cannot find nick for sending message" +#~ msgstr "%s%s: impossibile trovare il nick per l'invio del messaggio" + +#~ msgid "text: text to send" +#~ msgstr "testo: testo da inviare" + #, fuzzy #~ msgid "%s%s: error creating msgbuffer \"%s\" => \"%s\"" #~ msgstr "" @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2010-01-03 15:15+0100\n" +"POT-Creation-Date: 2010-01-07 21:55+0100\n" "PO-Revision-Date: 2010-01-03 15:16+0100\n" "Last-Translator: Krzysztof Koroscik <soltys@szluug.org>\n" "Language-Team: Polish\n" @@ -2790,10 +2790,6 @@ msgid "%s%s: cannot allocate new channel" msgstr "%s%s: nie można przydzielic nowego kanału" #, c-format -msgid "%s%s: cannot find nick for sending message" -msgstr "%s%s: nie można znaleźć nicku do wysłania wiadomości" - -#, c-format msgid "%s: future away: %s" msgstr "%s: przyszła nieobecność: %s" @@ -3005,23 +3001,49 @@ msgstr "[cel]" msgid "target: server" msgstr "cel: serwer" -msgid "send a CTCP action to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all channels of all connected servers" msgstr "wysyła akcje CTCP na wszystkie kanały na połączonych serwerach" -msgid "message" -msgstr "wiadomiość" +msgid "[-current] [-exclude=channel[,channel...]] command [arguments]" +msgstr "" -msgid "message: message to send" -msgstr "wiadomość: wiadomość do wysłania" +msgid "" +" -current: execute command for channels of curent server only\n" +" -exclude: exclude some channels ('*' is allowed at beginning or end of " +"channel name, to exclude many channels)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" execute '/me is testing' on all channels:\n" +" /allchan me is testing\n" +" say 'hello' everywhere but not on #weechat:\n" +" /allchan -exclude=#weechat msg * hello\n" +" say 'hello' everywhere but not on #weechat and channels beginning with " +"#linux:\n" +" /allchan -exclude=#weechat,#linux* msg * hello" +msgstr "" -msgid "send message to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all connected servers" msgstr "wysyła wiadomość na wszystkie kanały na połączonych serwerach" -msgid "text" -msgstr "tekst" +msgid "[-exclude=server[,server...]] command [arguments]" +msgstr "" -msgid "text: text to send" -msgstr "tekst: tekst do wysłania" +msgid "" +" -exclude: exclude some servers ('*' is allowed at beginning or end of " +"server name, to exclude many servers)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" change nick on all servers:\n" +" /allserv nick newnick\n" +" set away on all servers:\n" +" /allserv away I'm away" +msgstr "" msgid "toggle away status" msgstr "zmienia status nieobecności" @@ -3349,6 +3371,12 @@ msgstr "" msgid "send a CTCP action to the current channel" msgstr "wysyła akcję CTCP na aktualny kanał" +msgid "message" +msgstr "wiadomiość" + +msgid "message: message to send" +msgstr "wiadomość: wiadomość do wysłania" + msgid "change channel or user mode" msgstr "zmień ustawienia kanału lub użytkownika" @@ -3841,6 +3869,9 @@ msgstr "" "wysyła wiadomość do wszystkich obecnie połączonych użytkowników, którzy " "ustawili sobie tryb 'w'" +msgid "text" +msgstr "tekst" + msgid "text to send" msgstr "wiadomość do wysłania" @@ -5934,6 +5965,12 @@ msgstr "%s%s: nie można ustawić opcji \"nonblock\" dla gniazda" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: przekroczono czas na \"%s\" z %s" +#~ msgid "%s%s: cannot find nick for sending message" +#~ msgstr "%s%s: nie można znaleźć nicku do wysłania wiadomości" + +#~ msgid "text: text to send" +#~ msgstr "tekst: tekst do wysłania" + #~ msgid "%s%s: error: \"%s\"" #~ msgstr "%s%s: błąd: \"%s\"" @@ -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: 2010-01-03 15:15+0100\n" +"POT-Creation-Date: 2010-01-07 21:55+0100\n" "PO-Revision-Date: 2010-01-03 15:16+0100\n" "Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -2685,10 +2685,6 @@ msgid "%s%s: cannot allocate new channel" msgstr "%s не могу расположить новый канал" #, fuzzy, c-format -msgid "%s%s: cannot find nick for sending message" -msgstr "%s не могу найти адресата сообщения\n" - -#, fuzzy, c-format msgid "%s: future away: %s" msgstr "Планирование статуса на %s%s%s: %s\n" @@ -2900,23 +2896,49 @@ msgstr "[цель]" msgid "target: server" msgstr "цель: сервер" -msgid "send a CTCP action to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all channels of all connected servers" msgstr "отправить действие на все каналы всех подключенных серверов" -msgid "message" -msgstr "сообщение" +msgid "[-current] [-exclude=channel[,channel...]] command [arguments]" +msgstr "" -msgid "message: message to send" -msgstr "сообщение: отправляемое сообщение" +msgid "" +" -current: execute command for channels of curent server only\n" +" -exclude: exclude some channels ('*' is allowed at beginning or end of " +"channel name, to exclude many channels)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" execute '/me is testing' on all channels:\n" +" /allchan me is testing\n" +" say 'hello' everywhere but not on #weechat:\n" +" /allchan -exclude=#weechat msg * hello\n" +" say 'hello' everywhere but not on #weechat and channels beginning with " +"#linux:\n" +" /allchan -exclude=#weechat,#linux* msg * hello" +msgstr "" -msgid "send message to all channels of all connected servers" +#, fuzzy +msgid "execute a command on all connected servers" msgstr "отправить сообщение на все каналы всех поключенных серверов" -msgid "text" -msgstr "текст" +msgid "[-exclude=server[,server...]] command [arguments]" +msgstr "" -msgid "text: text to send" -msgstr "текст: отправляемый текст" +msgid "" +" -exclude: exclude some servers ('*' is allowed at beginning or end of " +"server name, to exclude many servers)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" change nick on all servers:\n" +" /allserv nick newnick\n" +" set away on all servers:\n" +" /allserv away I'm away" +msgstr "" msgid "toggle away status" msgstr "переключает статус \"отошёл\"" @@ -3218,6 +3240,12 @@ msgstr "" msgid "send a CTCP action to the current channel" msgstr "отправить CTCP-действие на текущий канал" +msgid "message" +msgstr "сообщение" + +msgid "message: message to send" +msgstr "сообщение: отправляемое сообщение" + msgid "change channel or user mode" msgstr "сменить режим канала или пользователя" @@ -3728,6 +3756,9 @@ msgid "" "mode for themselves" msgstr "отправляет сообщение всем подключенным пользователям с режимом 'w'" +msgid "text" +msgstr "текст" + msgid "text to send" msgstr "отправляемый текст" @@ -5817,6 +5848,13 @@ msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s нет аргумента для параметра \"%s\"\n" #, fuzzy +#~ msgid "%s%s: cannot find nick for sending message" +#~ msgstr "%s не могу найти адресата сообщения\n" + +#~ msgid "text: text to send" +#~ msgstr "текст: отправляемый текст" + +#, fuzzy #~ msgid "%s%s: error creating msgbuffer \"%s\" => \"%s\"" #~ msgstr "%s недостаточно памяти для сообщения в строке информации\n" diff --git a/po/weechat.pot b/po/weechat.pot index cf3042744..4ba79330a 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-01-03 15:15+0100\n" +"POT-Creation-Date: 2010-01-07 21:55+0100\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" @@ -2313,10 +2313,6 @@ msgid "%s%s: cannot allocate new channel" msgstr "" #, c-format -msgid "%s%s: cannot find nick for sending message" -msgstr "" - -#, c-format msgid "%s: future away: %s" msgstr "" @@ -2521,22 +2517,46 @@ msgstr "" msgid "target: server" msgstr "" -msgid "send a CTCP action to all channels of all connected servers" +msgid "execute a command on all channels of all connected servers" msgstr "" -msgid "message" +msgid "[-current] [-exclude=channel[,channel...]] command [arguments]" msgstr "" -msgid "message: message to send" +msgid "" +" -current: execute command for channels of curent server only\n" +" -exclude: exclude some channels ('*' is allowed at beginning or end of " +"channel name, to exclude many channels)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" execute '/me is testing' on all channels:\n" +" /allchan me is testing\n" +" say 'hello' everywhere but not on #weechat:\n" +" /allchan -exclude=#weechat msg * hello\n" +" say 'hello' everywhere but not on #weechat and channels beginning with " +"#linux:\n" +" /allchan -exclude=#weechat,#linux* msg * hello" msgstr "" -msgid "send message to all channels of all connected servers" +msgid "execute a command on all connected servers" msgstr "" -msgid "text" +msgid "[-exclude=server[,server...]] command [arguments]" msgstr "" -msgid "text: text to send" +msgid "" +" -exclude: exclude some servers ('*' is allowed at beginning or end of " +"server name, to exclude many servers)\n" +" command: command to execute\n" +"arguments: arguments for command\n" +"\n" +"Examples:\n" +" change nick on all servers:\n" +" /allserv nick newnick\n" +" set away on all servers:\n" +" /allserv away I'm away" msgstr "" msgid "toggle away status" @@ -2788,6 +2808,12 @@ msgstr "" msgid "send a CTCP action to the current channel" msgstr "" +msgid "message" +msgstr "" + +msgid "message: message to send" +msgstr "" + msgid "change channel or user mode" msgstr "" @@ -3170,6 +3196,9 @@ msgid "" "mode for themselves" msgstr "" +msgid "text" +msgstr "" + msgid "text to send" msgstr "" diff --git a/src/plugins/alias/alias.c b/src/plugins/alias/alias.c index e83192a91..30015e08b 100644 --- a/src/plugins/alias/alias.c +++ b/src/plugins/alias/alias.c @@ -661,6 +661,10 @@ alias_config_write_default (void *data, weechat_config_write_line (config_file, section_name, NULL); + weechat_config_write_line (config_file, "AAWAY", "%s", "\"allserv /away\""); + weechat_config_write_line (config_file, "AME", "%s", "\"allchan /me\""); + weechat_config_write_line (config_file, "AMSG", "%s", "\"allchan /msg *\""); + weechat_config_write_line (config_file, "ANICK", "%s", "\"allserv /nick\""); weechat_config_write_line (config_file, "BYE", "%s", "\"quit\""); weechat_config_write_line (config_file, "C", "%s", "\"buffer clear\""); weechat_config_write_line (config_file, "CL", "%s", "\"buffer clear\""); diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c index f2d1b84b9..1bb9cefb3 100644 --- a/src/plugins/irc/irc-command.c +++ b/src/plugins/irc/irc-command.c @@ -45,6 +45,37 @@ /* + * irc_command_mode_nicks: send mode change for many nicks on a channel + */ + +void +irc_command_mode_nicks (struct t_irc_server *server, const char *channel, + const char *set, const char *mode, int argc, char **argv) +{ + int i, length; + char *command; + + length = 0; + for (i = 1; i < argc; i++) + length += strlen (argv[i]) + 1; + length += strlen (channel) + (argc * strlen (mode)) + 32; + command = malloc (length); + if (command) + { + snprintf (command, length, "MODE %s %s", channel, set); + for (i = 1; i < argc; i++) + strcat (command, mode); + for (i = 1; i < argc; i++) + { + strcat (command, " "); + strcat (command, argv[i]); + } + irc_server_sendf (server, 0, "%s", command); + free (command); + } +} + +/* * irc_command_admin: find information about the administrator of the server */ @@ -68,186 +99,274 @@ irc_command_admin (void *data, struct t_gui_buffer *buffer, int argc, } /* - * irc_command_me_channel: send a ctcp action to a channel + * irc_command_exec_all_channels: execute a command on all channels + * if server is NULL, command is executed on all + * channels of all connected servers */ void -irc_command_me_channel (struct t_irc_server *server, - struct t_irc_channel *channel, - const char *arguments) +irc_command_exec_all_channels (struct t_irc_server *server, + const char *exclude_channels, + const char *command) { - char *string; + struct t_irc_server *ptr_server; + struct t_irc_channel *ptr_channel; + char **channels, *str_command; + int num_channels, length, excluded, i; - irc_server_sendf (server, 1, "PRIVMSG %s :\01ACTION %s\01", - channel->name, - (arguments && arguments[0]) ? arguments : ""); - string = (arguments && arguments[0]) ? - irc_color_decode (arguments, - weechat_config_boolean (irc_config_network_colors_receive)) : NULL; - weechat_printf (channel->buffer, - "%s%s%s %s%s", - weechat_prefix ("action"), - IRC_COLOR_CHAT_NICK_SELF, - server->nick, - IRC_COLOR_CHAT, - (string) ? string : ""); - if (string) - free (string); -} - -/* - * irc_command_me_all_channels: send a ctcp action to all channels of a server - */ + if (!command || !command[0]) + return; -void -irc_command_me_all_channels (struct t_irc_server *server, const char *arguments) -{ - struct t_irc_channel *ptr_channel; + if (command[0] != '/') + { + length = 1 + strlen (command) + 1; + str_command = malloc (length); + snprintf (str_command, length, "/%s", command); + } + else + str_command = strdup (command); - for (ptr_channel = server->channels; ptr_channel; - ptr_channel = ptr_channel->next_channel) + if (!str_command) + return; + + channels = (exclude_channels && exclude_channels[0]) ? + weechat_string_split (exclude_channels, ",", 0, 0, &num_channels) : NULL; + + for (ptr_server = irc_servers; ptr_server; + ptr_server = ptr_server->next_server) { - if (ptr_channel->type == IRC_CHANNEL_TYPE_CHANNEL) - irc_command_me_channel (server, ptr_channel, arguments); + if (!server || (ptr_server == server)) + { + if (ptr_server->is_connected) + { + for (ptr_channel = ptr_server->channels; ptr_channel; + ptr_channel = ptr_channel->next_channel) + { + if (ptr_channel->type == IRC_CHANNEL_TYPE_CHANNEL) + { + excluded = 0; + if (channels) + { + for (i = 0; i < num_channels; i++) + { + if (weechat_string_match (ptr_channel->name, + channels[i], 0)) + { + excluded = 1; + break; + } + } + } + if (!excluded) + { + weechat_command (ptr_channel->buffer, str_command); + } + } + } + } + } } + + free (str_command); + if (channels) + weechat_string_free_split (channels); } /* - * irc_command_mode_nicks: send mode change for many nicks on a channel + * irc_command_allchan: execute a command on all channels of all connected + * servers */ -void -irc_command_mode_nicks (struct t_irc_server *server, const char *channel, - const char *set, const char *mode, int argc, char **argv) +int +irc_command_allchan (void *data, struct t_gui_buffer *buffer, int argc, + char **argv, char **argv_eol) { - int i, length; - char *command; + int i, current_server; + const char *ptr_exclude_channels, *ptr_command; - length = 0; - for (i = 1; i < argc; i++) - length += strlen (argv[i]) + 1; - length += strlen (channel) + (argc * strlen (mode)) + 32; - command = malloc (length); - if (command) + IRC_GET_SERVER(buffer); + + /* make C compiler happy */ + (void) data; + + if (argc > 1) { - snprintf (command, length, "MODE %s %s", channel, set); - for (i = 1; i < argc; i++) - strcat (command, mode); + current_server = 0; + ptr_exclude_channels = NULL; + ptr_command = argv_eol[1]; for (i = 1; i < argc; i++) { - strcat (command, " "); - strcat (command, argv[i]); + if (weechat_strcasecmp (argv[i], "-current") == 0) + { + current_server = 1; + ptr_command = argv_eol[i + 1]; + } + else if (weechat_strncasecmp (argv[i], "-exclude=", 9) == 0) + { + ptr_exclude_channels = argv[i] + 9; + ptr_command = argv_eol[i + 1]; + } + else + break; + } + + if (ptr_command && ptr_command[0]) + { + weechat_buffer_set (NULL, "hotlist", "-"); + irc_command_exec_all_channels ((current_server) ? ptr_server : NULL, + ptr_exclude_channels, + ptr_command); + weechat_buffer_set (NULL, "hotlist", "+"); } - irc_server_sendf (server, 0, "%s", command); - free (command); } + return WEECHAT_RC_OK; } /* - * irc_command_ame: send a ctcp action to all channels of all connected servers + * irc_command_exec_all_servers: execute a command on all connected channels */ -int -irc_command_ame (void *data, struct t_gui_buffer *buffer, int argc, - char **argv, char **argv_eol) +void +irc_command_exec_all_servers (const char *exclude_servers, const char *command) { struct t_irc_server *ptr_server; - struct t_irc_channel *ptr_channel; + char **servers, *str_command; + int num_servers, length, excluded, i; - /* make C compiler happy */ - (void) data; - (void) buffer; - (void) argv; + if (!command || !command[0]) + return; + + if (command[0] != '/') + { + length = 1 + strlen (command) + 1; + str_command = malloc (length); + snprintf (str_command, length, "/%s", command); + } + else + str_command = strdup (command); - if (argc > 1) + if (!str_command) + return; + + servers = (exclude_servers && exclude_servers[0]) ? + weechat_string_split (exclude_servers, ",", 0, 0, &num_servers) : NULL; + + for (ptr_server = irc_servers; ptr_server; + ptr_server = ptr_server->next_server) { - weechat_buffer_set (NULL, "hotlist", "-"); - for (ptr_server = irc_servers; ptr_server; - ptr_server = ptr_server->next_server) + if (ptr_server->is_connected) { - if (ptr_server->is_connected) + excluded = 0; + if (servers) { - for (ptr_channel = ptr_server->channels; ptr_channel; - ptr_channel = ptr_channel->next_channel) + for (i = 0; i < num_servers; i++) { - if (ptr_channel->type == IRC_CHANNEL_TYPE_CHANNEL) - irc_command_me_channel (ptr_server, ptr_channel, - argv_eol[1]); + if (weechat_string_match (ptr_server->name, + servers[i], 0)) + { + excluded = 1; + break; + } } } + if (!excluded) + { + weechat_command (ptr_server->buffer, str_command); + } } - weechat_buffer_set (NULL, "hotlist", "+"); } - return WEECHAT_RC_OK; + + free (str_command); + if (servers) + weechat_string_free_split (servers); } /* - * irc_command_amsg: send message to all channels of all connected servers + * irc_command_allserv: execute a command on all connected servers */ int -irc_command_amsg (void *data, struct t_gui_buffer *buffer, int argc, - char **argv, char **argv_eol) +irc_command_allserv (void *data, struct t_gui_buffer *buffer, int argc, + char **argv, char **argv_eol) { - struct t_irc_server *ptr_server; - struct t_irc_channel *ptr_channel; - struct t_irc_nick *ptr_nick; - char *string; + int i; + const char *ptr_exclude_servers, *ptr_command; /* make C compiler happy */ (void) data; (void) buffer; - (void) argv; if (argc > 1) { - weechat_buffer_set (NULL, "hotlist", "-"); - for (ptr_server = irc_servers; ptr_server; - ptr_server = ptr_server->next_server) + ptr_exclude_servers = NULL; + ptr_command = argv_eol[1]; + for (i = 1; i < argc; i++) { - if (ptr_server->is_connected) + if (weechat_strncasecmp (argv[i], "-exclude=", 9) == 0) { - for (ptr_channel = ptr_server->channels; ptr_channel; - ptr_channel = ptr_channel->next_channel) - { - if (ptr_channel->type == IRC_CHANNEL_TYPE_CHANNEL) - { - irc_server_sendf (ptr_server, 1, "PRIVMSG %s :%s", - ptr_channel->name, argv_eol[1]); - ptr_nick = irc_nick_search (ptr_channel, - ptr_server->nick); - if (ptr_nick) - { - string = irc_color_decode (argv_eol[1], - weechat_config_boolean (irc_config_network_colors_receive)); - weechat_printf (ptr_channel->buffer, "%s%s", - irc_nick_as_prefix (ptr_nick, - NULL, NULL), - (string) ? string : argv_eol[1]); - if (string) - free (string); - } - else - { - weechat_printf (ptr_server->buffer, - _("%s%s: cannot find nick for " - "sending message"), - weechat_prefix ("error"), - IRC_PLUGIN_NAME); - } - } - } + ptr_exclude_servers = argv[i] + 9; + ptr_command = argv_eol[i + 1]; } + else + break; + } + + if (ptr_command && ptr_command[0]) + { + weechat_buffer_set (NULL, "hotlist", "-"); + irc_command_exec_all_servers (ptr_exclude_servers, ptr_command); + weechat_buffer_set (NULL, "hotlist", "+"); } - weechat_buffer_set (NULL, "hotlist", "+"); } - else - return WEECHAT_RC_ERROR; - return WEECHAT_RC_OK; } /* + * irc_command_me_channel: send a ctcp action to a channel + */ + +void +irc_command_me_channel (struct t_irc_server *server, + struct t_irc_channel *channel, + const char *arguments) +{ + char *string; + + irc_server_sendf (server, 1, "PRIVMSG %s :\01ACTION %s\01", + channel->name, + (arguments && arguments[0]) ? arguments : ""); + string = (arguments && arguments[0]) ? + irc_color_decode (arguments, + weechat_config_boolean (irc_config_network_colors_receive)) : NULL; + weechat_printf (channel->buffer, + "%s%s%s %s%s", + weechat_prefix ("action"), + IRC_COLOR_CHAT_NICK_SELF, + server->nick, + IRC_COLOR_CHAT, + (string) ? string : ""); + if (string) + free (string); +} + +/* + * irc_command_me_all_channels: send a ctcp action to all channels of a server + */ + +void +irc_command_me_all_channels (struct t_irc_server *server, const char *arguments) +{ + struct t_irc_channel *ptr_channel; + + for (ptr_channel = server->channels; ptr_channel; + ptr_channel = ptr_channel->next_channel) + { + if (ptr_channel->type == IRC_CHANNEL_TYPE_CHANNEL) + irc_command_me_channel (server, ptr_channel, arguments); + } +} + +/* * irc_command_away_server: toggle away status for one server */ @@ -3787,18 +3906,42 @@ irc_command_init () N_("[target]"), N_("target: server"), NULL, &irc_command_admin, NULL); - weechat_hook_command ("ame", - N_("send a CTCP action to all channels of all " + weechat_hook_command ("allchan", + N_("execute a command on all channels of all " "connected servers"), - N_("message"), - N_("message: message to send"), - NULL, &irc_command_ame, NULL); - weechat_hook_command ("amsg", - N_("send message to all channels of all connected " - "servers"), - N_("text"), - N_("text: text to send"), - NULL, &irc_command_amsg, NULL); + N_("[-current] [-exclude=channel[,channel...]] " + "command [arguments]"), + N_(" -current: execute command for channels of " + "curent server only\n" + " -exclude: exclude some channels ('*' is " + "allowed at beginning or end of channel name, to " + "exclude many channels)\n" + " command: command to execute\n" + "arguments: arguments for command\n\n" + "Examples:\n" + " execute '/me is testing' on all channels:\n" + " /allchan me is testing\n" + " say 'hello' everywhere but not on #weechat:\n" + " /allchan -exclude=#weechat msg * hello\n" + " say 'hello' everywhere but not on #weechat " + "and channels beginning with #linux:\n" + " /allchan -exclude=#weechat,#linux* msg * hello"), + NULL, &irc_command_allchan, NULL); + weechat_hook_command ("allserv", + N_("execute a command on all connected servers"), + N_("[-exclude=server[,server...]] " + "command [arguments]"), + N_(" -exclude: exclude some servers ('*' is " + "allowed at beginning or end of server name, to " + "exclude many servers)\n" + " command: command to execute\n" + "arguments: arguments for command\n\n" + "Examples:\n" + " change nick on all servers:\n" + " /allserv nick newnick\n" + " set away on all servers:\n" + " /allserv away I'm away"), + NULL, &irc_command_allserv, NULL); weechat_hook_command ("away", N_("toggle away status"), N_("[-all] [message]"), |