summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--NEWS10
-rw-r--r--doc/en/autogen/user/irc_commands.txt31
-rw-r--r--doc/fr/autogen/user/irc_commands.txt31
-rw-r--r--doc/it/autogen/user/irc_commands.txt31
-rw-r--r--po/cs.po67
-rw-r--r--po/de.po71
-rw-r--r--po/es.po67
-rw-r--r--po/fr.po102
-rw-r--r--po/hu.po68
-rw-r--r--po/it.po67
-rw-r--r--po/pl.po67
-rw-r--r--po/ru.po68
-rw-r--r--po/weechat.pot51
-rw-r--r--src/plugins/alias/alias.c4
-rw-r--r--src/plugins/irc/irc-command.c403
16 files changed, 854 insertions, 288 deletions
diff --git a/ChangeLog b/ChangeLog
index f5ffd1e1e..19c5a236a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)
diff --git a/NEWS b/NEWS
index 33a7addc0..9c9ce0296 100644
--- a/NEWS
+++ b/NEWS
@@ -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
........................................
-&bull; *`/ame`* `message`::
+&bull; *`/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
........................................
-&bull; *`/amsg`* `text`::
+&bull; *`/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
........................................
&bull; *`/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
........................................
-&bull; *`/ame`* `message`::
+&bull; *`/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
........................................
-&bull; *`/amsg`* `texte`::
+&bull; *`/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
........................................
&bull; *`/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
........................................
-&bull; *`/ame`* `messaggio`::
+&bull; *`/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
........................................
-&bull; *`/amsg`* `testo`::
+&bull; *`/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
........................................
&bull; *`/away`* `[-all] [messaggio]`::
diff --git a/po/cs.po b/po/cs.po
index c176b3076..86edba2f4 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: 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\""
diff --git a/po/de.po b/po/de.po
index 099f913b6..93bb01734 100644
--- a/po/de.po
+++ b/po/de.po
@@ -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\""
diff --git a/po/es.po b/po/es.po
index 94557d58f..92f171173 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: 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\""
diff --git a/po/fr.po b/po/fr.po
index d5d332f90..3738fdb2d 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: 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"
diff --git a/po/hu.po b/po/hu.po
index 47648332a..d25959183 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: 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"
diff --git a/po/it.po b/po/it.po
index beb42280f..ee62c7bb8 100644
--- a/po/it.po
+++ b/po/it.po
@@ -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 ""
diff --git a/po/pl.po b/po/pl.po
index e4018b22a..19616a923 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -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\""
diff --git a/po/ru.po b/po/ru.po
index 33c209dc5..5b489cf49 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: 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]"),