From 7d37cc8f5006e91d8d42beda9d14204f8a2bfe31 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Tue, 19 May 2009 19:04:49 +0200 Subject: [PATCH] Add new command /wait (schedule a command execution in future) --- ChangeLog | 3 +- doc/de/autogen/weechat_commands.xml | 20 ++++ doc/en/autogen/weechat_commands.xml | 20 ++++ doc/fr/autogen/irc_commands.xml | 2 +- doc/fr/autogen/jabber_commands.xml | 2 +- doc/fr/autogen/logger_commands.xml | 14 +-- doc/fr/autogen/weechat_commands.xml | 36 +++++-- po/cs.po | 28 +++++- po/de.po | 28 +++++- po/es.po | 28 +++++- po/fr.po | 98 ++++++++++++++----- po/hu.po | 28 +++++- po/pl.po | 28 +++++- po/ru.po | 28 +++++- po/weechat.pot | 28 +++++- src/core/wee-command.c | 143 +++++++++++++++++++++++++++- 16 files changed, 482 insertions(+), 52 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4212e49c0..b9e4273b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ WeeChat ChangeLog ================= FlashCode -v0.3.0-dev, 2009-05-18 +v0.3.0-dev, 2009-05-19 Version 0.3.0 (under dev!) @@ -78,6 +78,7 @@ Version 0.3.0 (under dev!) * core: remove key functions, replaced by /input command * core: add argument with buffer number/range for command "/buffer close" (task #9390, task #7239) +* core: add new command /wait (schedule a command execution in future) * core: fix nick completion bug (missing space after nick) Version 0.2.6.2 (2009-04-18) diff --git a/doc/de/autogen/weechat_commands.xml b/doc/de/autogen/weechat_commands.xml index 589fd0f7c..50c644193 100644 --- a/doc/de/autogen/weechat_commands.xml +++ b/doc/de/autogen/weechat_commands.xml @@ -295,6 +295,26 @@ show WeeChat version and compilation date -o: send version to current buffer as input +/wait number[unit] command + +schedule a command execution in future + + number: amount of time to wait (integer number) + unit: optional, values are: + ms: milliseconds + s: seconds (default) + m: minutes + h: hours +command: command to execute (or text to send to buffer if command does not start with '/') + +Note: command is executed on buffer where /wait was executed (if buffer is not found (for example if it has been closed before execution of command), then command is executed on WeeChat core buffer). + +Examples: + join channel in 10 sec: /wait 10 join #test + set away in 15 min: /wait 15m away -all I'm away + say 'hello' in 2 min: /wait 2m hello + + /window [list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv [pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | scroll_up | scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | scroll_next_highlight | zoom] Fenster verwalten diff --git a/doc/en/autogen/weechat_commands.xml b/doc/en/autogen/weechat_commands.xml index 1fbb6105d..230964d33 100644 --- a/doc/en/autogen/weechat_commands.xml +++ b/doc/en/autogen/weechat_commands.xml @@ -295,6 +295,26 @@ show WeeChat version and compilation date -o: send version to current buffer as input +/wait number[unit] command + +schedule a command execution in future + + number: amount of time to wait (integer number) + unit: optional, values are: + ms: milliseconds + s: seconds (default) + m: minutes + h: hours +command: command to execute (or text to send to buffer if command does not start with '/') + +Note: command is executed on buffer where /wait was executed (if buffer is not found (for example if it has been closed before execution of command), then command is executed on WeeChat core buffer). + +Examples: + join channel in 10 sec: /wait 10 join #test + set away in 15 min: /wait 15m away -all I'm away + say 'hello' in 2 min: /wait 2m hello + + /window [list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv [pct] | resize pct | merge [all] | page_up | page_down | refresh | scroll | scroll_up | scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | scroll_next_highlight | zoom] manage windows diff --git a/doc/fr/autogen/irc_commands.xml b/doc/fr/autogen/irc_commands.xml index b3c84a7ea..9a9323c93 100644 --- a/doc/fr/autogen/irc_commands.xml +++ b/doc/fr/autogen/irc_commands.xml @@ -383,7 +383,7 @@ nom_serveur: nom du serveur, pour usage interne et affichage raw: ouvre le tampon avec les données brutes IRC switch: changer le serveur actif (quand un tampon est utilisé pour tous les serveurs, touche par défaut: alt-s sur le tampon serveur) -Exemples : +Exemples: /server listfull /server add oftc irc.oftc.net/6697 -ssl /server add oftc6 irc6.oftc.net/6697 -ipv6 -ssl diff --git a/doc/fr/autogen/jabber_commands.xml b/doc/fr/autogen/jabber_commands.xml index 3aacecad9..f17769828 100644 --- a/doc/fr/autogen/jabber_commands.xml +++ b/doc/fr/autogen/jabber_commands.xml @@ -28,7 +28,7 @@ nom_utilisateur: nom d'utilisateur pour ce serveur del: supprimer un serveur switch: changer le serveur actif (quand un tampon est utilisé pour tous les serveurs, touche par défaut: alt-s sur le tampon serveur) -Exemples : +Exemples: /jabber listfull /jabber add jabberfr user jabber.fr/5222 password -tls /jabber copy jabberfr jabberfr2 diff --git a/doc/fr/autogen/logger_commands.xml b/doc/fr/autogen/logger_commands.xml index 67c393535..ed2dc123e 100644 --- a/doc/fr/autogen/logger_commands.xml +++ b/doc/fr/autogen/logger_commands.xml @@ -17,19 +17,19 @@ disable: désactiver l'enregistrement pour le tampon courant (définir le niveau Les options "logger.level.*" et "logger.mask.*" peuvent être utilisées pour définir le niveau ou le masque de nom de fichier pour un tampon, ou plusieurs tampons commençant par un nom. -Exemples : - définir le niveau d'enregistrement à 5 pour le tampon courant : +Exemples: + définir le niveau d'enregistrement à 5 pour le tampon courant: /logger set 5 - désactiver l'enregistrement pour le tampon courant : + désactiver l'enregistrement pour le tampon courant: /logger disable - définir le niveau à 3 pour les tampons IRC : + définir le niveau à 3 pour les tampons IRC: /set logger.level.irc 3 - désactiver l'enregistrement pour le tampon principal de WeeChat : + désactiver l'enregistrement pour le tampon principal de WeeChat: /set logger.level.core.weechat 0 - utiliser un répertoire par serveur IRC et un fichier par canal dedans : + utiliser un répertoire par serveur IRC et un fichier par canal dedans: /set logger.mask.irc "$server/$channel.weechatlog" -Niveaux de log utilisés par l'extension IRC : +Niveaux de log utilisés par l'extension IRC: 1: message d'utilisateur, notice, privé 2: changement de pseudo 3: message du serveur diff --git a/doc/fr/autogen/weechat_commands.xml b/doc/fr/autogen/weechat_commands.xml index 76d46d201..386e44364 100644 --- a/doc/fr/autogen/weechat_commands.xml +++ b/doc/fr/autogen/weechat_commands.xml @@ -14,7 +14,7 @@ gestion des barres nombarre: nom de la barre (doit être unique) type: root: en dehors des fenêtres window: dans les fenêtres, avec condition(s) optionnelle(s) (voir ci-dessous) - cond1,...: condition(s) pour afficher cette barre (seulement pour le type "window") : + cond1,...: condition(s) pour afficher cette barre (seulement pour le type "window"): active: sur la fenêtre active inactive: sur les fenêtres inactives nicklist: sue les fenêtres avec liste de pseudos @@ -39,10 +39,10 @@ valeur_scroll: valeur pour le défilement: 'x' ou 'y', suivi par '+', '-', 'b' ( listfull: liste toutes les barres (verbeux) listitems: liste tous les objets de barre -Exemples : - créer une barre avec l'heure, numéro + nom de tampon, et la complétion : +Exemples: + créer une barre avec l'heure, numéro + nom de tampon, et la complétion: /bar add mabarre root bottom 1 0 [time],buffer_number+:+buffer_name,completion - cacher une barre : + cacher une barre: /bar hide mabarre faire défiler la liste des pseudos de 10 lignes vers le bas sur le tampon courant: /bar scroll nicklist * y+10 @@ -60,7 +60,7 @@ gestion des tampons move: déplace le tampon dans la liste (peut être relatif, par exemple -1) close: ferme le tampon (nombre/intervalle optionnel) list: liste les tampons ouverts (pas de paramètre affiche cette liste) - notify: définit le niveau de notification pour le tampon courant: ce niveau détermine si le buffer doit être ajouté à la hotlist ou pas : + notify: définit le niveau de notification pour le tampon courant: ce niveau détermine si le buffer doit être ajouté à la hotlist ou pas: none: jamais highlight: pour les highlights seulement message: pour les messages d'utilisateurs + highlights @@ -68,7 +68,7 @@ gestion des tampons reset: réinitialise à valeur par défaut (all) localvar: affiche la liste des variables locales pour le tampon courant set: modifier une propriété du tampon courant - nombre: saute au tampon qui a ce numéro, préfixe possible : + nombre: saute au tampon qui a ce numéro, préfixe possible: '+': saut relatif, ajoute le numéro au courant, '-': saut relatif, soustrait le numéro au courant, '*': saut au numéro en utilisant l'option "jump_current_to_previous_buffer" @@ -254,7 +254,7 @@ modifier des options de configuration option: nom d'une option valeur: nouvelle valeur pour l'option -La nouvelle valeur peut être, selon le type de l'option : +La nouvelle valeur peut être, selon le type de l'option: booléen: on, off ou toggle entier : nombre, ++nombre ou --nombre chaîne : toute chaîne ("" pour une chaîne vide) @@ -295,6 +295,26 @@ afficher la version de WeeChat et la date de compilation -o: envoyer la version sur le tampon courant comme entrée +/wait nombre[unité] commande + +planifie l'exécution d'une commande dans le futur + + nombre: temps à attendre (nombre entier) + unité: optionnelle, valeurs possibles: + ms: millisecondes + s: secondes (par défaut) + m: minutes + h: heures +commande: commande à exécuter (ou texte à envoyer au tampon si la commande ne commence pas par '/') + +Note: la commande est exécutée sur le tampon où /wait a été exécuté (si le tampon n'est pas trouvé, alors la commande est exécutée sur le tampon WeeChat principal). + +Exemples: + rejoindre le canal dans 10 sec: /wait 10 join #test + passer absent dans 15 min: /wait 15m away -all I'm away + dire 'bonjour' dans 2 min: /wait 2m bonjour + + /window [list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv [ptc] | resize pct | merge [all] | page_up | page_down | refresh | scroll | scroll_up | scroll_down | scroll_top | scroll_bottom | scroll_previous_highlight | scroll_next_highlight | zoom] gestion des fenêtres @@ -325,7 +345,7 @@ scroll_next_highlight: défilement jusqu'au highlight suivant Pour splith et splitv, pct est un pourcentage qui représente la taille de la nouvelle fenêtre, calculée par rapport à la taille de la fenêtre courante. Par exemple 25 signifie créer une fenêtre qui a pour taille: taille_courante / 4 -Exemples : +Exemples: sauter à la fenêtre affichant le tampon 1: /window b1 défilement de 2 lignes vers le haut: /window scroll -2 défilement de 2 jours vers le haut: /window scroll -2d diff --git a/po/cs.po b/po/cs.po index 4a7f168bb..d954f9914 100644 --- a/po/cs.po +++ b/po/cs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 22:59+0200\n" +"POT-Creation-Date: 2009-05-19 18:46+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: Jiri Golembiovsky \n" "Language-Team: weechat-dev \n" @@ -1175,6 +1175,32 @@ msgstr "datum vytvoření kanálu" msgid "-o: send version to current buffer as input" msgstr "" +msgid "schedule a command execution in future" +msgstr "" + +msgid "number[unit] command" +msgstr "" + +msgid "" +" number: amount of time to wait (integer number)\n" +" unit: optional, values are:\n" +" ms: milliseconds\n" +" s: seconds (default)\n" +" m: minutes\n" +" h: hours\n" +"command: command to execute (or text to send to buffer if command does not " +"start with '/')\n" +"\n" +"Note: command is executed on buffer where /wait was executed (if buffer is " +"not found (for example if it has been closed before execution of command), " +"then command is executed on WeeChat core buffer).\n" +"\n" +"Examples:\n" +" join channel in 10 sec: /wait 10 join #test\n" +" set away in 15 min: /wait 15m away -all I'm away\n" +" say 'hello' in 2 min: /wait 2m hello" +msgstr "" + msgid "manage windows" msgstr "spravuje okna" diff --git a/po/de.po b/po/de.po index f90f42c54..47212fe42 100644 --- a/po/de.po +++ b/po/de.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: 2009-05-18 22:59+0200\n" +"POT-Creation-Date: 2009-05-19 18:46+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: Thomas Schuetz \n" "Language-Team: weechat-dev \n" @@ -1195,6 +1195,32 @@ msgstr "Konfigurationsdatei gesichert\n" msgid "-o: send version to current buffer as input" msgstr "" +msgid "schedule a command execution in future" +msgstr "" + +msgid "number[unit] command" +msgstr "" + +msgid "" +" number: amount of time to wait (integer number)\n" +" unit: optional, values are:\n" +" ms: milliseconds\n" +" s: seconds (default)\n" +" m: minutes\n" +" h: hours\n" +"command: command to execute (or text to send to buffer if command does not " +"start with '/')\n" +"\n" +"Note: command is executed on buffer where /wait was executed (if buffer is " +"not found (for example if it has been closed before execution of command), " +"then command is executed on WeeChat core buffer).\n" +"\n" +"Examples:\n" +" join channel in 10 sec: /wait 10 join #test\n" +" set away in 15 min: /wait 15m away -all I'm away\n" +" say 'hello' in 2 min: /wait 2m hello" +msgstr "" + msgid "manage windows" msgstr "Fenster verwalten" diff --git a/po/es.po b/po/es.po index dffb72b0b..4a41b036d 100644 --- a/po/es.po +++ b/po/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 22:59+0200\n" +"POT-Creation-Date: 2009-05-19 18:46+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: Roberto González Cardenete \n" "Language-Team: weechat-dev \n" @@ -1175,6 +1175,32 @@ msgstr "Archivo de configuración guardado\n" msgid "-o: send version to current buffer as input" msgstr "" +msgid "schedule a command execution in future" +msgstr "" + +msgid "number[unit] command" +msgstr "" + +msgid "" +" number: amount of time to wait (integer number)\n" +" unit: optional, values are:\n" +" ms: milliseconds\n" +" s: seconds (default)\n" +" m: minutes\n" +" h: hours\n" +"command: command to execute (or text to send to buffer if command does not " +"start with '/')\n" +"\n" +"Note: command is executed on buffer where /wait was executed (if buffer is " +"not found (for example if it has been closed before execution of command), " +"then command is executed on WeeChat core buffer).\n" +"\n" +"Examples:\n" +" join channel in 10 sec: /wait 10 join #test\n" +" set away in 15 min: /wait 15m away -all I'm away\n" +" say 'hello' in 2 min: /wait 2m hello" +msgstr "" + msgid "manage windows" msgstr "gestión de ventanas" diff --git a/po/fr.po b/po/fr.po index 2f17b3909..bb7cf787a 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 22:59+0200\n" -"PO-Revision-Date: 2009-05-18 23:06+0200\n" +"POT-Creation-Date: 2009-05-19 18:46+0200\n" +"PO-Revision-Date: 2009-05-19 18:47+0200\n" "Last-Translator: FlashCode \n" "Language-Team: weechat-dev \n" "MIME-Version: 1.0\n" @@ -53,7 +53,7 @@ msgstr "" " -v, --version afficher la version de WeeChat\n" " extension:option option pour une extension\n" " par exemple, l'extension irc peut se connecter\n" -" à un serveur avec une url comme :\n" +" à un serveur avec une url comme:\n" " irc[6][s]://[nickname[:password]@]irc.example.org[port]" "[//#channel1][,#channel2[...]]\n" " (consulter la documentation des extensions pour plus " @@ -201,7 +201,7 @@ msgstr "%sErreur: le tampon principal de WeeChat ne peut pas être fermé" #, c-format msgid "Local variables for buffer \"%s\":" -msgstr "Variables locales pour le tampon \"%s\" :" +msgstr "Variables locales pour le tampon \"%s\":" #, c-format msgid "No local variable defined for buffer \"%s\"" @@ -258,7 +258,7 @@ msgstr "" #, c-format msgid "Filter \"%s\" added:" -msgstr "Filtre \"%s\" ajouté :" +msgstr "Filtre \"%s\" ajouté:" #, c-format msgid "%sError adding filter" @@ -395,10 +395,10 @@ msgid "vertical split" msgstr "découpage vertical" msgid "Saved layout for buffers:" -msgstr "Disposition sauvegardée pour les tampons :" +msgstr "Disposition sauvegardée pour les tampons:" msgid "Saved layout for windows:" -msgstr "Disposition sauvegardée pour les fenêtres :" +msgstr "Disposition sauvegardée pour les fenêtres:" msgid "No layout saved" msgstr "Pas de disposition sauvée" @@ -776,7 +776,7 @@ msgstr "" " window: dans les fenêtres, avec condition(s) optionnelle(s) " "(voir ci-dessous)\n" " cond1,...: condition(s) pour afficher cette barre (seulement pour le " -"type \"window\") :\n" +"type \"window\"):\n" " active: sur la fenêtre active\n" " inactive: sur les fenêtres inactives\n" " nicklist: sue les fenêtres avec liste de pseudos\n" @@ -808,11 +808,11 @@ msgstr "" " listfull: liste toutes les barres (verbeux)\n" " listitems: liste tous les objets de barre\n" "\n" -"Exemples :\n" -" créer une barre avec l'heure, numéro + nom de tampon, et la complétion :\n" +"Exemples:\n" +" créer une barre avec l'heure, numéro + nom de tampon, et la complétion:\n" " /bar add mabarre root bottom 1 0 [time],buffer_number+:+buffer_name," "completion\n" -" cacher une barre :\n" +" cacher une barre:\n" " /bar hide mabarre\n" " faire défiler la liste des pseudos de 10 lignes vers le bas sur le tampon " "courant:\n" @@ -871,7 +871,7 @@ msgstr "" " close: ferme le tampon (nombre/intervalle optionnel)\n" " list: liste les tampons ouverts (pas de paramètre affiche cette liste)\n" " notify: définit le niveau de notification pour le tampon courant: ce " -"niveau détermine si le buffer doit être ajouté à la hotlist ou pas :\n" +"niveau détermine si le buffer doit être ajouté à la hotlist ou pas:\n" " none: jamais\n" " highlight: pour les highlights seulement\n" " message: pour les messages d'utilisateurs + highlights\n" @@ -879,7 +879,7 @@ msgstr "" " reset: réinitialise à valeur par défaut (all)\n" "localvar: affiche la liste des variables locales pour le tampon courant\n" " set: modifier une propriété du tampon courant\n" -" nombre: saute au tampon qui a ce numéro, préfixe possible :\n" +" nombre: saute au tampon qui a ce numéro, préfixe possible:\n" " '+': saut relatif, ajoute le numéro au courant,\n" " '-': saut relatif, soustrait le numéro au courant,\n" " '*': saut au numéro en utilisant l'option " @@ -1230,7 +1230,7 @@ msgstr "" "option: nom d'une option\n" "valeur: nouvelle valeur pour l'option\n" "\n" -"La nouvelle valeur peut être, selon le type de l'option :\n" +"La nouvelle valeur peut être, selon le type de l'option:\n" " booléen: on, off ou toggle\n" " entier : nombre, ++nombre ou --nombre\n" " chaîne : toute chaîne (\"\" pour une chaîne vide)\n" @@ -1294,6 +1294,49 @@ msgstr "afficher la version de WeeChat et la date de compilation" msgid "-o: send version to current buffer as input" msgstr "-o: envoyer la version sur le tampon courant comme entrée" +msgid "schedule a command execution in future" +msgstr "planifie l'exécution d'une commande dans le futur" + +msgid "number[unit] command" +msgstr "nombre[unité] commande" + +msgid "" +" number: amount of time to wait (integer number)\n" +" unit: optional, values are:\n" +" ms: milliseconds\n" +" s: seconds (default)\n" +" m: minutes\n" +" h: hours\n" +"command: command to execute (or text to send to buffer if command does not " +"start with '/')\n" +"\n" +"Note: command is executed on buffer where /wait was executed (if buffer is " +"not found (for example if it has been closed before execution of command), " +"then command is executed on WeeChat core buffer).\n" +"\n" +"Examples:\n" +" join channel in 10 sec: /wait 10 join #test\n" +" set away in 15 min: /wait 15m away -all I'm away\n" +" say 'hello' in 2 min: /wait 2m hello" +msgstr "" +" nombre: temps à attendre (nombre entier)\n" +" unité: optionnelle, valeurs possibles:\n" +" ms: millisecondes\n" +" s: secondes (par défaut)\n" +" m: minutes\n" +" h: heures\n" +"commande: commande à exécuter (ou texte à envoyer au tampon si la commande " +"ne commence pas par '/')\n" +"\n" +"Note: la commande est exécutée sur le tampon où /wait a été exécuté (si le " +"tampon n'est pas trouvé, alors la commande est exécutée sur le tampon " +"WeeChat principal).\n" +"\n" +"Exemples:\n" +" rejoindre le canal dans 10 sec: /wait 10 join #test\n" +" passer absent dans 15 min: /wait 15m away -all I'm away\n" +" dire 'bonjour' dans 2 min: /wait 2m bonjour" + msgid "manage windows" msgstr "gestion des fenêtres" @@ -1378,7 +1421,7 @@ msgstr "" "Par exemple 25 signifie créer une fenêtre qui a pour taille: " "taille_courante / 4\n" "\n" -"Exemples :\n" +"Exemples:\n" " sauter à la fenêtre affichant le tampon 1: /window b1\n" " défilement de 2 lignes vers le haut: /window scroll -2\n" " défilement de 2 jours vers le haut: /window scroll -2d\n" @@ -2739,7 +2782,7 @@ msgstr "%s%s: le ignore existe déjà" #, c-format msgid "%s: ignore added:" -msgstr "%s: ignore ajouté :" +msgstr "%s: ignore ajouté:" #, c-format msgid "%s%s: error adding ignore" @@ -3485,7 +3528,7 @@ msgstr "" " switch: changer le serveur actif (quand un tampon est utilisé pour tous " "les serveurs, touche par défaut: alt-s sur le tampon serveur)\n" "\n" -"Exemples :\n" +"Exemples:\n" " /server listfull\n" " /server add oftc irc.oftc.net/6697 -ssl\n" " /server add oftc6 irc6.oftc.net/6697 -ipv6 -ssl\n" @@ -4563,7 +4606,7 @@ msgstr "" " switch: changer le serveur actif (quand un tampon est utilisé pour " "tous les serveurs, touche par défaut: alt-s sur le tampon serveur)\n" "\n" -"Exemples :\n" +"Exemples:\n" " /jabber listfull\n" " /jabber add jabberfr user jabber.fr/5222 password -tls\n" " /jabber copy jabberfr jabberfr2\n" @@ -4817,7 +4860,7 @@ msgid "%s\t**** End of log ****" msgstr "%s\t**** Fin du log ****" msgid "Logging on buffers:" -msgstr "Enregistrement des tampons :" +msgstr "Enregistrement des tampons:" #, c-format msgid "logging (level: %d)" @@ -4885,19 +4928,19 @@ msgstr "" "pour définir le niveau ou le masque de nom de fichier pour un tampon, ou " "plusieurs tampons commençant par un nom.\n" "\n" -"Exemples :\n" -" définir le niveau d'enregistrement à 5 pour le tampon courant :\n" +"Exemples:\n" +" définir le niveau d'enregistrement à 5 pour le tampon courant:\n" " /logger set 5\n" -" désactiver l'enregistrement pour le tampon courant :\n" +" désactiver l'enregistrement pour le tampon courant:\n" " /logger disable\n" -" définir le niveau à 3 pour les tampons IRC :\n" +" définir le niveau à 3 pour les tampons IRC:\n" " /set logger.level.irc 3\n" -" désactiver l'enregistrement pour le tampon principal de WeeChat :\n" +" désactiver l'enregistrement pour le tampon principal de WeeChat:\n" " /set logger.level.core.weechat 0\n" -" utiliser un répertoire par serveur IRC et un fichier par canal dedans :\n" +" utiliser un répertoire par serveur IRC et un fichier par canal dedans:\n" " /set logger.mask.irc \"$server/$channel.weechatlog\"\n" "\n" -"Niveaux de log utilisés par l'extension IRC :\n" +"Niveaux de log utilisés par l'extension IRC:\n" " 1: message d'utilisateur, notice, privé\n" " 2: changement de pseudo\n" " 3: message du serveur\n" @@ -5859,6 +5902,9 @@ msgstr "%s%s: impossible de positionner l'option \"nonblock\" pour la socket" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: délai d'attente dépassé pour \"%s\" avec %s" +#~ msgid "wait some time before executing a command" +#~ msgstr "attendre un certain temps avant d'exécuter une commande" + #~ msgid "filtered" #~ msgstr "filtré" diff --git a/po/hu.po b/po/hu.po index fd2a360bb..073af11d4 100644 --- a/po/hu.po +++ b/po/hu.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 22:59+0200\n" +"POT-Creation-Date: 2009-05-19 18:46+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -1210,6 +1210,32 @@ msgstr "Konfigurációs fájl elmentve\n" msgid "-o: send version to current buffer as input" msgstr "" +msgid "schedule a command execution in future" +msgstr "" + +msgid "number[unit] command" +msgstr "" + +msgid "" +" number: amount of time to wait (integer number)\n" +" unit: optional, values are:\n" +" ms: milliseconds\n" +" s: seconds (default)\n" +" m: minutes\n" +" h: hours\n" +"command: command to execute (or text to send to buffer if command does not " +"start with '/')\n" +"\n" +"Note: command is executed on buffer where /wait was executed (if buffer is " +"not found (for example if it has been closed before execution of command), " +"then command is executed on WeeChat core buffer).\n" +"\n" +"Examples:\n" +" join channel in 10 sec: /wait 10 join #test\n" +" set away in 15 min: /wait 15m away -all I'm away\n" +" say 'hello' in 2 min: /wait 2m hello" +msgstr "" + msgid "manage windows" msgstr "ablakok kezelése" diff --git a/po/pl.po b/po/pl.po index de3e8c5ae..8588c7cac 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: 2009-05-18 22:59+0200\n" +"POT-Creation-Date: 2009-05-19 18:46+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: \n" "Language-Team: Polish\n" @@ -1073,6 +1073,32 @@ msgstr "" msgid "-o: send version to current buffer as input" msgstr "" +msgid "schedule a command execution in future" +msgstr "" + +msgid "number[unit] command" +msgstr "" + +msgid "" +" number: amount of time to wait (integer number)\n" +" unit: optional, values are:\n" +" ms: milliseconds\n" +" s: seconds (default)\n" +" m: minutes\n" +" h: hours\n" +"command: command to execute (or text to send to buffer if command does not " +"start with '/')\n" +"\n" +"Note: command is executed on buffer where /wait was executed (if buffer is " +"not found (for example if it has been closed before execution of command), " +"then command is executed on WeeChat core buffer).\n" +"\n" +"Examples:\n" +" join channel in 10 sec: /wait 10 join #test\n" +" set away in 15 min: /wait 15m away -all I'm away\n" +" say 'hello' in 2 min: /wait 2m hello" +msgstr "" + msgid "manage windows" msgstr "" diff --git a/po/ru.po b/po/ru.po index 4e3f35c1b..793f38209 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 22:59+0200\n" +"POT-Creation-Date: 2009-05-19 18:46+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: Pavel Shevchuk \n" "Language-Team: weechat-dev \n" @@ -1206,6 +1206,32 @@ msgstr "Конфигурационный файл сохранён\n" msgid "-o: send version to current buffer as input" msgstr "" +msgid "schedule a command execution in future" +msgstr "" + +msgid "number[unit] command" +msgstr "" + +msgid "" +" number: amount of time to wait (integer number)\n" +" unit: optional, values are:\n" +" ms: milliseconds\n" +" s: seconds (default)\n" +" m: minutes\n" +" h: hours\n" +"command: command to execute (or text to send to buffer if command does not " +"start with '/')\n" +"\n" +"Note: command is executed on buffer where /wait was executed (if buffer is " +"not found (for example if it has been closed before execution of command), " +"then command is executed on WeeChat core buffer).\n" +"\n" +"Examples:\n" +" join channel in 10 sec: /wait 10 join #test\n" +" set away in 15 min: /wait 15m away -all I'm away\n" +" say 'hello' in 2 min: /wait 2m hello" +msgstr "" + msgid "manage windows" msgstr "управление окнами" diff --git a/po/weechat.pot b/po/weechat.pot index 82d76a714..d9c5a8314 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 22:59+0200\n" +"POT-Creation-Date: 2009-05-19 18:46+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1041,6 +1041,32 @@ msgstr "" msgid "-o: send version to current buffer as input" msgstr "" +msgid "schedule a command execution in future" +msgstr "" + +msgid "number[unit] command" +msgstr "" + +msgid "" +" number: amount of time to wait (integer number)\n" +" unit: optional, values are:\n" +" ms: milliseconds\n" +" s: seconds (default)\n" +" m: minutes\n" +" h: hours\n" +"command: command to execute (or text to send to buffer if command does not " +"start with '/')\n" +"\n" +"Note: command is executed on buffer where /wait was executed (if buffer is " +"not found (for example if it has been closed before execution of command), " +"then command is executed on WeeChat core buffer).\n" +"\n" +"Examples:\n" +" join channel in 10 sec: /wait 10 join #test\n" +" set away in 15 min: /wait 15m away -all I'm away\n" +" say 'hello' in 2 min: /wait 2m hello" +msgstr "" + msgid "manage windows" msgstr "" diff --git a/src/core/wee-command.c b/src/core/wee-command.c index 3c6cffb1c..ca37b3a24 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -3411,6 +3411,126 @@ command_version (void *data, struct t_gui_buffer *buffer, return WEECHAT_RC_OK; } +/* + * command_wait_timer_cb: callback for timer set by command_wait + */ + +int +command_wait_timer_cb (void *data, int remaining_calls) +{ + char **timer_args; + int i; + struct t_gui_buffer *ptr_buffer; + + /* make C compiler happy */ + (void) remaining_calls; + + timer_args = (char **)data; + + if (!timer_args) + return WEECHAT_RC_ERROR; + + if (timer_args[0] && timer_args[1] && timer_args[2]) + { + /* search buffer, fallback to core buffer if not found */ + ptr_buffer = gui_buffer_search_by_name (timer_args[0], timer_args[1]); + if (!ptr_buffer) + ptr_buffer = gui_buffer_search_main (); + + /* execute command */ + if (ptr_buffer) + input_data (ptr_buffer, timer_args[2]); + } + + for (i = 0; i < 3; i++) + { + if (timer_args[i]) + free (timer_args[i]); + } + free (timer_args); + + return WEECHAT_RC_OK; +} + +/* + * command_wait: schedule a command execution in future + */ + +int +command_wait (void *data, struct t_gui_buffer *buffer, + int argc, char **argv, char **argv_eol) +{ + char *pos, *str_number, *error; + long number, factor, delay; + char **timer_args; + + /* make C compiler happy */ + (void) data; + + if (argc > 2) + { + pos = argv[1]; + while (pos[0] && isdigit (pos[0])) + { + pos++; + } + + /* default is seconds (1000 milliseconds) */ + factor = 1000; + + if ((pos != argv[1]) && pos[0]) + { + str_number = string_strndup (argv[1], pos - argv[1]); + if (strcmp (pos, "ms") == 0) + factor = 1; + else if (strcmp (pos, "s") == 0) + factor = 1000; + else if (strcmp (pos, "m") == 0) + factor = 1000 * 60; + else if (strcmp (pos, "h") == 0) + factor = 1000 * 60 * 60; + else + return WEECHAT_RC_ERROR; + } + else + str_number = strdup (argv[1]); + + if (str_number) + { + error = NULL; + number = strtol (str_number, &error, 10); + if (error && !error[0]) + { + free (str_number); + delay = number * factor; + + /* build arguments for timer callback */ + timer_args = malloc (3 * sizeof (*timer_args)); + if (!timer_args) + { + gui_chat_printf (NULL, + _("%sNot enough memory"), + gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]); + return WEECHAT_RC_ERROR; + } + timer_args[0] = strdup (plugin_get_name (buffer->plugin)); + timer_args[1] = strdup (buffer->name); + timer_args[2] = strdup (argv_eol[2]); + + /* schedule command, execute it after "delay" milliseconds */ + hook_timer (NULL, delay, 0, 1, + &command_wait_timer_cb, timer_args); + + return WEECHAT_RC_OK; + } + free (str_number); + return WEECHAT_RC_ERROR; + } + } + + return WEECHAT_RC_OK; +} + /* * command_window: manage windows */ @@ -3423,7 +3543,7 @@ command_window (void *data, struct t_gui_buffer *buffer, int i; char *error; long number; - + /* make C compiler happy */ (void) data; (void) buffer; @@ -4052,6 +4172,27 @@ command_init () N_("-o: send version to current buffer as input"), "-o", &command_version, NULL); + hook_command (NULL, "wait", + N_("schedule a command execution in future"), + N_("number[unit] command"), + N_(" number: amount of time to wait (integer number)\n" + " unit: optional, values are:\n" + " ms: milliseconds\n" + " s: seconds (default)\n" + " m: minutes\n" + " h: hours\n" + "command: command to execute (or text to send to buffer " + "if command does not start with '/')\n\n" + "Note: command is executed on buffer where /wait was " + "executed (if buffer is not found (for example if it has " + "been closed before execution of command), then command " + "is executed on WeeChat core buffer).\n\n" + "Examples:\n" + " join channel in 10 sec: /wait 10 join #test\n" + " set away in 15 min: /wait 15m away -all I'm away\n" + " say 'hello' in 2 min: /wait 2m hello"), + "%- %(commands)", + &command_wait, NULL); hook_command (NULL, "window", N_("manage windows"), N_("[list | -1 | +1 | b# | up | down | left | right | "