summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2005-05-01 18:53:23 +0000
committerSebastien Helleu <flashcode@flashtux.org>2005-05-01 18:53:23 +0000
commiteda55fbdb41a695dc4a5d511f2ccf20a3a99470f (patch)
tree55fccde93927cbd089e3845797f9e913d91654ce
parentdca4064502ebdc9d2d9fbdaa31c1b4a717ca96ae (diff)
downloadweechat-eda55fbdb41a695dc4a5d511f2ccf20a3a99470f.zip
Added Python plugin support
-rw-r--r--ChangeLog3
-rw-r--r--TODO4
-rw-r--r--configure.in16
-rw-r--r--po/POTFILES.in2
-rw-r--r--po/es.po374
-rw-r--r--po/fr.po370
-rw-r--r--po/weechat.pot348
-rw-r--r--src/common/command.c145
-rw-r--r--src/common/command.h1
-rw-r--r--src/common/completion.c14
-rw-r--r--src/plugins/Makefile.am8
-rw-r--r--src/plugins/plugins.c30
-rw-r--r--src/plugins/python/Makefile.am23
-rw-r--r--src/plugins/python/wee-python.c713
-rw-r--r--src/plugins/python/wee-python.h34
-rw-r--r--weechat/ChangeLog3
-rw-r--r--weechat/TODO4
-rw-r--r--weechat/configure.in16
-rw-r--r--weechat/po/POTFILES.in2
-rw-r--r--weechat/po/es.po374
-rw-r--r--weechat/po/fr.po370
-rw-r--r--weechat/po/weechat.pot348
-rw-r--r--weechat/src/common/command.c145
-rw-r--r--weechat/src/common/command.h1
-rw-r--r--weechat/src/common/completion.c14
-rw-r--r--weechat/src/plugins/Makefile.am8
-rw-r--r--weechat/src/plugins/plugins.c30
-rw-r--r--weechat/src/plugins/python/Makefile.am23
-rw-r--r--weechat/src/plugins/python/wee-python.c713
-rw-r--r--weechat/src/plugins/python/wee-python.h34
30 files changed, 3548 insertions, 622 deletions
diff --git a/ChangeLog b/ChangeLog
index 40aa9e2ed..a222fddec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,11 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
-ChangeLog - 2005-04-30
+ChangeLog - 2005-05-01
Version 0.1.2 (under dev!):
+ * added Python plugin support
* added nicklist scroll keys (Alt+{home/end/pgup/pgdn} or F11/F12)
* added transfer rate for DCC files
* added "-all" option for /nick command
diff --git a/TODO b/TODO
index ad6111f96..f909f5c4d 100644
--- a/TODO
+++ b/TODO
@@ -34,8 +34,8 @@ v0.1.2:
- add key bindings to config file
* Plugins:
- + Python plugin
- + "/python load" and "/python unload" commands to (un)load Python scripts
+ # Python plugin
+ # "/python load" and "/python unload" commands to (un)load Python scripts
Future versions:
diff --git a/configure.in b/configure.in
index 5c4192447..54dec8e7b 100644
--- a/configure.in
+++ b/configure.in
@@ -68,6 +68,7 @@ AC_CHECK_FUNCS([gethostbyname gethostname getsockname gettimeofday inet_ntoa mem
AH_VERBATIM([PLUGINS], [#undef PLUGINS])
AH_VERBATIM([PLUGIN_PERL], [#undef PLUGIN_PERL])
+AH_VERBATIM([PLUGIN_PYTHON], [#undef PLUGIN_PYTHON])
AH_VERBATIM([DEBUG], [#undef DEBUG])
AC_ARG_ENABLE(ncurses, [ --disable-ncurses Turn off ncurses interface (default=auto)],,enable_ncurses=yes)
@@ -75,11 +76,10 @@ AC_ARG_ENABLE(wxwidgets,[ --enable-wxwidgets Turn on WxWidgets interface (
AC_ARG_ENABLE(gtk, [ --enable-gtk Turn on Gtk+ interface (default=no)],enable_gtk=yes,enable_gtk=no)
AC_ARG_ENABLE(qt, [ --enable-qt Turn on Qt interface (default=no)],enable_qt=yes,enable_qt=no)
AC_ARG_ENABLE(perl, [ --enable-perl Turn on Perl plugins (default=no)],enable_perl=yes,enable_perl=no)
+AC_ARG_ENABLE(python, [ --enable-python Turn on Python plugins (default=no)],enable_python=yes,enable_python=no)
AC_ARG_WITH(debug, [ --with-debug Debugging: 0=no debug, 1=debug compilation, 2=debug compilation + verbose msgs (default=0)],debug=$withval,debug=0)
enable_plugins="no"
-enable_python="no"
-PYTHON_CFLAGS=
enable_ruby="no"
RUBY_CFLAGS=
@@ -88,7 +88,7 @@ AM_CONDITIONAL(GUI_WXWIDGETS, test "$enable_wxwidgets" = "yes")
AM_CONDITIONAL(GUI_GTK, test "$enable_gtk" = "yes")
AM_CONDITIONAL(GUI_QT, test "$enable_qt" = "yes")
AM_CONDITIONAL(PLUGIN_PERL, test "$enable_perl" = "yes")
-# AM_CONDITIONAL(PLUGIN_PYTHON, test "$enable_python" = "yes")
+AM_CONDITIONAL(PLUGIN_PYTHON, test "$enable_python" = "yes")
# AM_CONDITIONAL(PLUGIN_RUBY, test "$enable_ruby" = "yes")
if test "x$enable_ncurses" = "xyes" ; then
@@ -141,6 +141,15 @@ if test "x$enable_perl" = "xyes" ; then
AC_DEFINE(PLUGIN_PERL)
fi
+if test "x$enable_python" = "xyes" ; then
+ enable_plugins="yes"
+ PYTHON_CFLAGS=`python -c "import distutils.sysconfig,string; print ' -I' + distutils.sysconfig.get_config_var('CONFINCLUDEPY')"`
+ PYTHON_LFLAGS=`python -c "import distutils.sysconfig,string; print string.join(distutils.sysconfig.get_config_vars('LINKFORSHARED', 'BLDLIBRARY', 'SHLIBS'))"`
+ PLUGINS_LIBS="$PLUGINS_LIBS ../../plugins/python/lib_weechat_python.a $PYTHON_LFLAGS"
+ AC_SUBST(PYTHON_CFLAGS)
+ AC_DEFINE(PLUGIN_PYTHON)
+fi
+
if test "x$enable_plugins" = "xyes" ; then
AC_DEFINE(PLUGINS)
fi
@@ -171,6 +180,7 @@ AC_OUTPUT([Makefile
src/irc/Makefile
src/plugins/Makefile
src/plugins/perl/Makefile
+ src/plugins/python/Makefile
src/gui/Makefile
src/gui/curses/Makefile
src/gui/wxwidgets/Makefile
diff --git a/po/POTFILES.in b/po/POTFILES.in
index c39199f8e..cfd8fb9bd 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -9,6 +9,8 @@
./src/irc/irc.h
./src/plugins/perl/wee-perl.c
./src/plugins/perl/wee-perl.h
+./src/plugins/python/wee-python.c
+./src/plugins/python/wee-python.h
./src/plugins/plugins.c
./src/plugins/plugins.h
./src/gui/curses/gui-input.c
diff --git a/po/es.po b/po/es.po
index 36f0a7ac0..ac980c3df 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.2-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-04-30 19:48+0200\n"
-"PO-Revision-Date: 2005-04-30 19:49+0200\n"
+"POT-Creation-Date: 2005-05-01 20:47+0200\n"
+"PO-Revision-Date: 2005-05-01 20:48+0200\n"
"Last-Translator: Roberto González Cardenete <robert.glez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -1251,7 +1251,7 @@ msgstr "no es posible cambiar el modo para el resto de usuarios"
msgid "whois (secure connection)"
msgstr ""
-#: src/irc/irc-display.c:154 src/common/command.c:812
+#: src/irc/irc-display.c:154 src/common/command.c:817
msgid "Server: "
msgstr "Servidor: "
@@ -1300,7 +1300,8 @@ msgstr ""
#: src/irc/irc-send.c:345 src/irc/irc-send.c:357 src/irc/irc-send.c:375
#: src/irc/irc-send.c:996 src/irc/irc-send.c:1089 src/irc/irc-send.c:1609
-#: src/common/command.c:1124 src/common/command.c:1407
+#: src/common/command.c:1129 src/common/command.c:1411
+#: src/common/command.c:1552
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr "%s número de argumentos incorrecto para el comando \"%s\"\n"
@@ -1960,12 +1961,138 @@ msgstr "descarga del Perl script \"%s\"\n"
msgid "unloading all Perl scripts...\n"
msgstr "descargando todos los Perl scripts...\n"
-#: src/plugins/plugins.c:89
+#: src/plugins/python/wee-python.c:61 src/plugins/python/wee-python.c:170
+msgid ""
+"Python error: wrong parameters for 'print_with_channel' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python "
+"'print_with_channel'\n"
+
+#: src/plugins/python/wee-python.c:81
+#, c-format
+msgid ""
+"Python error: unable to register Python script \"%s\" (another script "
+"already exists with this name)\n"
+msgstr ""
+"Error de Python: no ha sido posible registrar el Python script \"%s\" (ya "
+"existe otro script con ese nombre)\n"
+
+#: src/plugins/python/wee-python.c:105
+#, c-format
+msgid "registered Python script: \"%s\", version %s (%s)\n"
+msgstr "Python script registrado: \"%s\", versión %s (%s)\n"
+
+#: src/plugins/python/wee-python.c:112
+#, c-format
+msgid "%s unable to load Python script \"%s\" (not enough memory)\n"
+msgstr ""
+"%s no ha sido posible cargar el Python script \"%s\" (memoria insuficiente)\n"
+
+#: src/plugins/python/wee-python.c:137
+msgid "Python error: wrong parameters for 'print' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python 'print'\n"
+
+#: src/plugins/python/wee-python.c:222
+msgid "Python error: wrong parameters for 'print_infobar' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python "
+"'print_infobar'\n"
+
+#: src/plugins/python/wee-python.c:249
+msgid "Python error: wrong parameters for 'command' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python 'command'\n"
+
+#: src/plugins/python/wee-python.c:268
+msgid "Python error: server not found for 'command' Python function\n"
+msgstr ""
+"Error de Python: servidor no encontrado para la función Python 'command'\n"
+
+#: src/plugins/python/wee-python.c:303
+msgid ""
+"Python error: wrong parameters for 'add_message_handler' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python "
+"'add_message_handler'\n"
+
+#: src/plugins/python/wee-python.c:332
+msgid ""
+"Python error: wrong parameters for 'add_command_handler' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python "
+"'add_command_handler'\n"
+
+#: src/plugins/python/wee-python.c:371
+msgid "Python error: wrong parameters for 'get_info' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python 'get_info'\n"
+
+#: src/plugins/python/wee-python.c:390
+msgid "Python error: server not found for 'get_info' Python function\n"
+msgstr ""
+"Error de Python: servidor no encontrado para la función Python 'get_info'\n"
+
+#: src/plugins/python/wee-python.c:462
+msgid "Python error: error while launching Python interpreter\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:468
+msgid "Loading Python module \"weechat\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:519 src/plugins/python/wee-python.c:547
+#: src/plugins/python/wee-python.c:578
+#, c-format
+msgid ""
+"Python error: unable to run function \"%s\"in Python script (not enough "
+"memory)\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:569
+#, c-format
+msgid "Python error: error while running function \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:599
+#, c-format
+msgid "loading Python script \"%s\"\n"
+msgstr "carga del Python script \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:601
+#, c-format
+msgid "Loading Python script \"%s\"\n"
+msgstr "Cargando Python script \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:607
+#, c-format
+msgid "Python error: error while opening file \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:615
+#, c-format
+msgid "Python error: error while parsing file \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:668
+#, c-format
+msgid "unloading Python script \"%s\"\n"
+msgstr "descarga del Python script \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:685
+msgid "unloading all Python scripts...\n"
+msgstr "descargando todos los Python scripts...\n"
+
+#: src/plugins/python/wee-python.c:711
+msgid "Python error: error while freeing Python interpreter\n"
+msgstr ""
+
+#: src/plugins/plugins.c:93
#, c-format
msgid "auto-loading %s script: %s%s%s\n"
msgstr "carga automática del script %s : %s%s%s\n"
-#: src/plugins/plugins.c:200
+#: src/plugins/plugins.c:211
#, c-format
msgid "%s unable to add handler for \"%s\" message (not enough memory)\n"
msgstr ""
@@ -2164,7 +2291,7 @@ msgstr "comando: nombre de un comando de Weechat ó de IRC"
msgid "list/load/unload Perl scripts"
msgstr "lista/carga/descarga de los Perl scripts"
-#: src/common/command.c:76
+#: src/common/command.c:76 src/common/command.c:81
msgid "[load filename] | [autoload] | [unload]"
msgstr "[load fichero] | [autoload] | [unload]"
@@ -2177,10 +2304,22 @@ msgstr ""
"Sin argumentos, el comando /perl lista todos los Perl scripts cargados."
#: src/common/command.c:80
+msgid "list/load/unload Python scripts"
+msgstr "lista/carga/descarga de los Python scripts"
+
+#: src/common/command.c:82
+msgid ""
+"filename: Python script (file) to load\n"
+"Without argument, /python command lists all loaded Python scripts."
+msgstr ""
+"fichero: Python script (archivo) a cargar\n"
+"Sin argumentos, el comando /python lista todos los Python scripts cargados."
+
+#: src/common/command.c:85
msgid "list, add or remove servers"
msgstr "lista, añade o elimina servidores"
-#: src/common/command.c:81
+#: src/common/command.c:86
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-pwd password] [-"
"nicks nick1 [nick2 [nick3]]] [-username username] [-realname realname] [-"
@@ -2191,7 +2330,7 @@ msgstr ""
"nombre de usuario] [-realname nombre_real] [-command comando] [-autojoin "
"canal[,canal]] ] | [del nombre_de_servidor]"
-#: src/common/command.c:86
+#: src/common/command.c:91
msgid ""
"servername: server name, for internal & display use\n"
"hostname: name or IP address of server\n"
@@ -2213,27 +2352,27 @@ msgstr ""
"nombre_de_usuario: nombre de usuario\n"
"nombre_real: nombre real del usuario"
-#: src/common/command.c:96
+#: src/common/command.c:101
msgid "save config to disk"
msgstr "guardar configuración a disco"
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "[file]"
msgstr "[archivo]"
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "file: filename for writing config"
msgstr "archivo: fichero en el que guardar la configuración"
-#: src/common/command.c:99
+#: src/common/command.c:104
msgid "set config parameters"
msgstr "modificar parámetros de configuración"
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid "[option[=value]]"
msgstr "[opción[=valor]]"
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid ""
"option: name of an option\n"
"value: value for option"
@@ -2241,27 +2380,27 @@ msgstr ""
"opción: nombre de una opción\n"
"valor: valor para la opción"
-#: src/common/command.c:102
+#: src/common/command.c:107
msgid "remove an alias"
msgstr "eliminar un alias"
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name"
msgstr "alias"
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name: name of alias to remove"
msgstr "alias: nombre del alias a suprimir"
-#: src/common/command.c:105
+#: src/common/command.c:110
msgid "manage windows"
msgstr "gestión de ventanas"
-#: src/common/command.c:106
+#: src/common/command.c:111
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr "[list | splith | splitv | [merge [down | up | left | right | all]]]"
-#: src/common/command.c:108
+#: src/common/command.c:113
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2274,29 +2413,29 @@ msgstr ""
"splitv: dividir la ventana actual verticalmente\n"
"merge: fusionar una ventana con otra"
-#: src/common/command.c:254
+#: src/common/command.c:259
#, c-format
msgid "%s alias or command \"%s\" already exists!\n"
msgstr "%s ¡el alias o el comando \"%s\" ya existe!\n"
-#: src/common/command.c:264
+#: src/common/command.c:269
#, c-format
msgid "%s alias cannot run another alias!\n"
msgstr "%s ¡el alias no puede ejecutar otro alias!\n"
-#: src/common/command.c:271
+#: src/common/command.c:276
#, c-format
msgid "%s target command \"%s\" does not exist!\n"
msgstr "%s ¡el comando objetivo \"%s\" no existe!\n"
-#: src/common/command.c:479
+#: src/common/command.c:484
#, c-format
msgid "%s wrong argument count for %s command \"%s\" (expected: %d arg%s)\n"
msgstr ""
"%s número de argumentos incorrecto para el comando %s \"%s\" (esperado: %d "
"parámetro%s)\n"
-#: src/common/command.c:491
+#: src/common/command.c:496
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
@@ -2305,19 +2444,19 @@ msgstr ""
"%s número de argumentos incorrecto para el comando %s \"%s\" (esperado: "
"entre %d y %d parámetro%s)\n"
-#: src/common/command.c:513 src/common/command.c:583
+#: src/common/command.c:518 src/common/command.c:588
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr "%s el comando \"%s\" ha fallado\n"
-#: src/common/command.c:541
+#: src/common/command.c:546
#, c-format
msgid "%s wrong argument count for IRC command \"%s\" (expected: %d arg%s)\n"
msgstr ""
"%s número de argumentos incorrecto para el comando IRC \"%s\" (esperado: %d "
"parámetro%s)\n"
-#: src/common/command.c:553
+#: src/common/command.c:558
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
@@ -2326,178 +2465,180 @@ msgstr ""
"%s número de argumentos incorrecto para el comando IRC \"%s\" (esperado: "
"entre %d y %d parámetro%s)\n"
-#: src/common/command.c:568
+#: src/common/command.c:573
#, c-format
msgid "%s command \"%s\" needs a server connection!\n"
msgstr "%s ¡el comando \"%s\" requiere una conexión a servidor!\n"
-#: src/common/command.c:632
+#: src/common/command.c:637
#, c-format
msgid "%s unknown command \"%s\" (type /help for help)\n"
msgstr "%s comando \"%s\" desconocido (escriba /help para la ayuda)\n"
-#: src/common/command.c:711
+#: src/common/command.c:716
#, c-format
msgid "%s cannot find nick for sending message\n"
msgstr "%s no ha sido posible encontrar el usuario al que enviar el mensaje\n"
-#: src/common/command.c:720
+#: src/common/command.c:725
msgid "This window is not a channel!\n"
msgstr "¡Esta ventana no es un canal!\n"
-#: src/common/command.c:748 src/common/command.c:772 src/common/command.c:876
+#: src/common/command.c:753 src/common/command.c:777 src/common/command.c:881
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr "%s faltan argumentos para el comando \"%s\"\n"
-#: src/common/command.c:757
+#: src/common/command.c:762
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr "Alias \"%s\" => \"%s\" creado\n"
-#: src/common/command.c:763
+#: src/common/command.c:768
#, c-format
msgid "Failed to create alias \"%s\" => \"%s\" (not enough memory)\n"
msgstr ""
"No ha sido posible crear el alias \"%s\" => \"%s\" (no hay suficiente "
"memoria)\n"
-#: src/common/command.c:783
+#: src/common/command.c:788
msgid "List of aliases:\n"
msgstr "Lista de alias:\n"
-#: src/common/command.c:795
+#: src/common/command.c:800
msgid "No alias defined.\n"
msgstr "Ningún alias definido.\n"
-#: src/common/command.c:818
+#: src/common/command.c:823
msgid "Channel: "
msgstr "Canal: "
-#: src/common/command.c:821 src/common/command.c:831
+#: src/common/command.c:826 src/common/command.c:836
msgid " (server: "
msgstr " (servidor: "
-#: src/common/command.c:828
+#: src/common/command.c:833
msgid "Private with: "
msgstr "Privado con: "
-#: src/common/command.c:856
+#: src/common/command.c:861
msgid "Opened buffers:\n"
msgstr "Búfers abiertos:\n"
-#: src/common/command.c:899 src/common/command.c:1026
+#: src/common/command.c:904 src/common/command.c:1031
#, c-format
msgid "%s incorrect buffer number\n"
msgstr "%s número de búfer incorrecto\n"
-#: src/common/command.c:913
+#: src/common/command.c:918
#, c-format
msgid "%s can not close the single buffer\n"
msgstr "%s no es posible cerrar el único búfer\n"
-#: src/common/command.c:923
+#: src/common/command.c:928
#, c-format
msgid "%s can not close server buffer while channels are opened\n"
msgstr ""
"%s no se puede cerrar el búfer de servidor mientras haya canales abiertos\n"
-#: src/common/command.c:962
+#: src/common/command.c:967
msgid "Notify levels: "
msgstr "Niveles de notificación: "
-#: src/common/command.c:989 src/common/command.c:999
+#: src/common/command.c:994 src/common/command.c:1004
#, c-format
msgid "%s incorrect notify level (must be between 0 and 3)\n"
msgstr "%s nivel de notificación incorrecto (debe estar entre 0 y 3)\n"
-#: src/common/command.c:1017
+#: src/common/command.c:1022
#, c-format
msgid "%s buffer \"%s\" not found for \"%s\" command\n"
msgstr "%s búfer \"%s\" no encontrado para el comando \"%s\"\n"
-#: src/common/command.c:1051
+#: src/common/command.c:1056
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr "parámetro desconocido \"%s\" para el comando \"%s\"\n"
-#: src/common/command.c:1081
+#: src/common/command.c:1086
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr "%s ya conectado al servidor \"%s\"!\n"
-#: src/common/command.c:1089
+#: src/common/command.c:1094
#, c-format
msgid "%s currently connecting to server \"%s\"!\n"
msgstr "%s actualmente conectando al servidor \"%s\"!\n"
-#: src/common/command.c:1107 src/common/command.c:1182
+#: src/common/command.c:1112 src/common/command.c:1187
#, c-format
msgid "%s server not found\n"
msgstr "%s servidor no encontrado\n"
-#: src/common/command.c:1137 src/common/command.c:1400
-#: src/common/command.c:2097 src/common/command.c:2109
+#: src/common/command.c:1142 src/common/command.c:1404
+#: src/common/command.c:1545 src/common/command.c:2236
+#: src/common/command.c:2248
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr "%s opción desconocida para el comando \"%s\"\n"
-#: src/common/command.c:1166
+#: src/common/command.c:1171
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr "%s ¡no conectado al servidor \"%s\"!\n"
-#: src/common/command.c:1174
+#: src/common/command.c:1179
msgid "Auto-reconnection is cancelled\n"
msgstr "La reconexión automática está anulada\n"
-#: src/common/command.c:1200 src/common/weechat.c:265
+#: src/common/command.c:1205 src/common/weechat.c:265
#, c-format
msgid "%s internal commands:\n"
msgstr "Comandos internos %s :\n"
-#: src/common/command.c:1209 src/common/weechat.c:285
+#: src/common/command.c:1214 src/common/weechat.c:285
#, c-format
msgid "IRC commands:\n"
msgstr "Comandos IRC :\n"
-#: src/common/command.c:1276
+#: src/common/command.c:1281
#, c-format
msgid "No help available, \"%s\" is an unknown command\n"
msgstr "No hay ayuda disponible, el comando \"%s\" es desconocido\n"
-#: src/common/command.c:1301
+#: src/common/command.c:1305
msgid "Registered Perl scripts:\n"
msgstr "Perl scripts registrados:\n"
-#: src/common/command.c:1318 src/common/command.c:1340
-#: src/common/command.c:1362
+#: src/common/command.c:1322 src/common/command.c:1344
+#: src/common/command.c:1366 src/common/command.c:1463
+#: src/common/command.c:1485 src/common/command.c:1507
msgid " (none)\n"
msgstr " (ninguno)\n"
-#: src/common/command.c:1323
+#: src/common/command.c:1327
msgid "Perl message handlers:\n"
msgstr "Funciones Perl para mensajes:\n"
-#: src/common/command.c:1332
+#: src/common/command.c:1336
#, c-format
msgid " IRC(%s) => Perl(%s)\n"
msgstr " IRC(%s) => Perl(%s)\n"
-#: src/common/command.c:1345
+#: src/common/command.c:1349
msgid "Perl command handlers:\n"
msgstr "Comandos Perl :\n"
-#: src/common/command.c:1354
+#: src/common/command.c:1358
#, c-format
msgid " Command /%s => Perl(%s)\n"
msgstr " Comando /%s => Perl(%s)\n"
-#: src/common/command.c:1374
+#: src/common/command.c:1378
msgid "Perl scripts unloaded\n"
msgstr "Perl scripts descargados\n"
-#: src/common/command.c:1413
+#: src/common/command.c:1417
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
@@ -2506,32 +2647,68 @@ msgstr ""
"Por favor, recompile WeeChat con la opción \"--enable-perl\" para el "
"script ./configure\n"
-#: src/common/command.c:1467
+#: src/common/command.c:1446
+msgid "Registered Python scripts:\n"
+msgstr "Python scripts registrados:\n"
+
+#: src/common/command.c:1468
+msgid "Python message handlers:\n"
+msgstr "Funciones Python para mensajes:\n"
+
+#: src/common/command.c:1477
+#, c-format
+msgid " IRC(%s) => Python(%s)\n"
+msgstr " IRC(%s) => Python(%s)\n"
+
+#: src/common/command.c:1490
+msgid "Python command handlers:\n"
+msgstr "Comandos Python :\n"
+
+#: src/common/command.c:1499
+#, c-format
+msgid " Command /%s => Python(%s)\n"
+msgstr " Comando /%s => Python(%s)\n"
+
+#: src/common/command.c:1519
+msgid "Python scripts unloaded\n"
+msgstr "Python scripts descargados\n"
+
+#: src/common/command.c:1558
+msgid ""
+"WeeChat was build without Python support.\n"
+"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
+"script\n"
+msgstr ""
+"WeeChat ha sido compilado sin soporte para Python.\n"
+"Por favor, recompile WeeChat con la opción \"--enable-python\" para el "
+"script ./configure\n"
+
+#: src/common/command.c:1606
msgid "No server.\n"
msgstr "Ningún servidor.\n"
-#: src/common/command.c:1478
+#: src/common/command.c:1617
#, c-format
msgid "Server '%s' not found.\n"
msgstr "Servidor '%s' no encontrado.\n"
-#: src/common/command.c:1490
+#: src/common/command.c:1629
#, c-format
msgid "%s missing servername for \"%s\" command\n"
msgstr "%s falta el nombre de servidor para el comando \"%s\"\n"
-#: src/common/command.c:1498
+#: src/common/command.c:1637
#, c-format
msgid "%s too much arguments for \"%s\" command, ignoring arguments\n"
msgstr ""
"%s demasiados argumentos para el comando \"%s\", ignorando parámetros\n"
-#: src/common/command.c:1517
+#: src/common/command.c:1656
#, c-format
msgid "%s server \"%s\" not found for \"%s\" command\n"
msgstr "%s servidor \"%s\" no encontrado para el comando \"%s\"\n"
-#: src/common/command.c:1525
+#: src/common/command.c:1664
#, c-format
msgid ""
"%s you can not delete server \"%s\" because you are connected to. Try /"
@@ -2540,108 +2717,108 @@ msgstr ""
"%s usted no puede eliminar el servidor \"%s\" ya que está usted conectado a "
"él. Pruebe /disconnect %s antes.\n"
-#: src/common/command.c:1541 src/common/command.c:1682
+#: src/common/command.c:1680 src/common/command.c:1821
msgid "Server"
msgstr "Servidor"
-#: src/common/command.c:1544
+#: src/common/command.c:1683
msgid "has been deleted\n"
msgstr "ha sido eliminado\n"
-#: src/common/command.c:1559
+#: src/common/command.c:1698
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr "%s faltan parámetros para el comando \"%s\"\n"
-#: src/common/command.c:1569
+#: src/common/command.c:1708
#, c-format
msgid "%s server \"%s\" already exists, can't create it!\n"
msgstr "%s el servidor \"%s\" ya existe, ¡no se puede crear!\n"
-#: src/common/command.c:1594 src/common/command.c:1622
-#: src/common/command.c:1635 src/common/command.c:1661
+#: src/common/command.c:1733 src/common/command.c:1761
+#: src/common/command.c:1774 src/common/command.c:1800
#, c-format
msgid "%s missing password for \"%s\" parameter\n"
msgstr "%s falta contraseña para el comando \"%s\"\n"
-#: src/common/command.c:1607
+#: src/common/command.c:1746
#, c-format
msgid "%s missing nick(s) for \"%s\" parameter\n"
msgstr "%s falta(n) usuario(s) para el parámetro \"%s\"\n"
-#: src/common/command.c:1648
+#: src/common/command.c:1787
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr "%s falta comando para el parámetro \"%s\"\n"
-#: src/common/command.c:1685
+#: src/common/command.c:1824
msgid "created\n"
msgstr "creado\n"
-#: src/common/command.c:1691
+#: src/common/command.c:1830
#, c-format
msgid "%s unable to create server\n"
msgstr "%s no es posible crear el servidor\n"
-#: src/common/command.c:1746
+#: src/common/command.c:1885
msgid "(unknown)"
msgstr "(desconocido)"
-#: src/common/command.c:1769
+#: src/common/command.c:1908
msgid "(password hidden) "
msgstr "(contraseña oculta) "
-#: src/common/command.c:1833
+#: src/common/command.c:1972
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr "%s servidor \"%s\" no encontrado\n"
-#: src/common/command.c:1864 src/common/command.c:1910
+#: src/common/command.c:2003 src/common/command.c:2049
#, c-format
msgid "%s config option \"%s\" not found\n"
msgstr "%s opción de configuración \"%s\" no encontrada\n"
-#: src/common/command.c:1869 src/common/command.c:1902
+#: src/common/command.c:2008 src/common/command.c:2041
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr "%s valor incorrecto para la opción \"%s\"\n"
-#: src/common/command.c:1885
+#: src/common/command.c:2024
#, c-format
msgid "%s option \"%s\" can not be changed while WeeChat is running\n"
msgstr ""
"%s la opción \"%s\" no puede ser modificada mientras WeeChat esté en "
"ejecución\n"
-#: src/common/command.c:1983
+#: src/common/command.c:2122
#, c-format
msgid "No config option found with \"%s\"\n"
msgstr "Ninguna opción de configuración encontrada con \"%s\"\n"
-#: src/common/command.c:1986
+#: src/common/command.c:2125
msgid "No config option found\n"
msgstr "Ninguna opción de configuración encontrada\n"
-#: src/common/command.c:1992
+#: src/common/command.c:2131
#, c-format
msgid "config option(s) found with \"%s\"\n"
msgstr "opción/opciones de configuración encontrada(s) con \"%s\"\n"
-#: src/common/command.c:1995
+#: src/common/command.c:2134
msgid "config option(s) found\n"
msgstr "opción/opciones de configuración encontrada(s)\n"
-#: src/common/command.c:2015
+#: src/common/command.c:2154
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr "%s alias o comando \"%s\" no encontrado\n"
-#: src/common/command.c:2025
+#: src/common/command.c:2164
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr "Alias \"%s\" eliminado\n"
-#: src/common/command.c:2045
+#: src/common/command.c:2184
msgid "Opened windows:\n"
msgstr "Ventanas abiertas:\n"
@@ -3735,6 +3912,3 @@ msgstr ""
#: src/common/weeconfig.c:1564
msgid "saving config to disk\n"
msgstr "guardar configuración a disco\n"
-
-#~ msgid "nickname: new nickname for current IRC server"
-#~ msgstr "usuario: nuevo nombre de usuario para el servidor IRC actual"
diff --git a/po/fr.po b/po/fr.po
index dfd6250a5..999a8c412 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.2-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-04-30 19:48+0200\n"
-"PO-Revision-Date: 2005-04-30 19:49+0200\n"
+"POT-Creation-Date: 2005-05-01 20:47+0200\n"
+"PO-Revision-Date: 2005-05-01 20:47+0200\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -1252,7 +1252,7 @@ msgstr "impossible de changer le mode pour les autres utilisateurs"
msgid "whois (secure connection)"
msgstr "qui est (connexion sécurisée)"
-#: src/irc/irc-display.c:154 src/common/command.c:812
+#: src/irc/irc-display.c:154 src/common/command.c:817
msgid "Server: "
msgstr "Serveur: "
@@ -1302,7 +1302,8 @@ msgstr ""
#: src/irc/irc-send.c:345 src/irc/irc-send.c:357 src/irc/irc-send.c:375
#: src/irc/irc-send.c:996 src/irc/irc-send.c:1089 src/irc/irc-send.c:1609
-#: src/common/command.c:1124 src/common/command.c:1407
+#: src/common/command.c:1129 src/common/command.c:1411
+#: src/common/command.c:1552
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr "%s nombre de paramètres erroné pour la commande \"%s\"\n"
@@ -1959,12 +1960,134 @@ msgstr "déchargement du script Perl \"%s\"\n"
msgid "unloading all Perl scripts...\n"
msgstr "déchargement de tous les scripts Perl...\n"
-#: src/plugins/plugins.c:89
+#: src/plugins/python/wee-python.c:61 src/plugins/python/wee-python.c:170
+msgid ""
+"Python error: wrong parameters for 'print_with_channel' Python function\n"
+msgstr ""
+"Erreur Python: mauvais paramètres pour la fonction Python "
+"'print_with_channel'\n"
+
+#: src/plugins/python/wee-python.c:81
+#, c-format
+msgid ""
+"Python error: unable to register Python script \"%s\" (another script "
+"already exists with this name)\n"
+msgstr ""
+"Erreur Python: impossible d'enregistrer le script Python \"%s\" (un autre "
+"script existe déjà avec ce nom)\n"
+
+#: src/plugins/python/wee-python.c:105
+#, c-format
+msgid "registered Python script: \"%s\", version %s (%s)\n"
+msgstr "script Python enregistré: \"%s\", version %s (%s)\n"
+
+#: src/plugins/python/wee-python.c:112
+#, c-format
+msgid "%s unable to load Python script \"%s\" (not enough memory)\n"
+msgstr ""
+"%s impossible de charger le script Python \"%s\" (mémoire insuffisante)\n"
+
+#: src/plugins/python/wee-python.c:137
+msgid "Python error: wrong parameters for 'print' Python function\n"
+msgstr "Erreur Python: mauvais paramètres pour la fonction Python 'print'\n"
+
+#: src/plugins/python/wee-python.c:222
+msgid "Python error: wrong parameters for 'print_infobar' Python function\n"
+msgstr ""
+"Erreur Python: mauvais paramètres pour la fonction Python 'print_infobar'\n"
+
+#: src/plugins/python/wee-python.c:249
+msgid "Python error: wrong parameters for 'command' Python function\n"
+msgstr "Erreur Python: mauvais paramètres pour la fonction Python 'command'\n"
+
+#: src/plugins/python/wee-python.c:268
+msgid "Python error: server not found for 'command' Python function\n"
+msgstr "Erreur Python: serveur non trouvé pour la fonction Python 'command'\n"
+
+#: src/plugins/python/wee-python.c:303
+msgid ""
+"Python error: wrong parameters for 'add_message_handler' Python function\n"
+msgstr ""
+"Erreur Python: mauvais paramètres pour la fonction Python "
+"'add_message_handler'\n"
+
+#: src/plugins/python/wee-python.c:332
+msgid ""
+"Python error: wrong parameters for 'add_command_handler' Python function\n"
+msgstr ""
+"Erreur Python: mauvais paramètres pour la fonction Python "
+"'add_command_handler'\n"
+
+#: src/plugins/python/wee-python.c:371
+msgid "Python error: wrong parameters for 'get_info' Python function\n"
+msgstr "Erreur Python: mauvais paramètres pour la fonction Python 'get_info'\n"
+
+#: src/plugins/python/wee-python.c:390
+msgid "Python error: server not found for 'get_info' Python function\n"
+msgstr "Erreur Python: serveur non trouvé pour la fonction Python 'get_info'\n"
+
+#: src/plugins/python/wee-python.c:462
+msgid "Python error: error while launching Python interpreter\n"
+msgstr "Erreur Python: erreur pendant le chargement de l'interpréteur Python\n"
+
+#: src/plugins/python/wee-python.c:468
+msgid "Loading Python module \"weechat\"\n"
+msgstr "Chargement du module Python \"weechat\"\n"
+
+#: src/plugins/python/wee-python.c:519 src/plugins/python/wee-python.c:547
+#: src/plugins/python/wee-python.c:578
+#, c-format
+msgid ""
+"Python error: unable to run function \"%s\"in Python script (not enough "
+"memory)\n"
+msgstr ""
+"Erreur Python: impossible de charger le script Python \"%s\" (mémoire "
+"insuffisante)\n"
+
+#: src/plugins/python/wee-python.c:569
+#, c-format
+msgid "Python error: error while running function \"%s\"\n"
+msgstr "Erreur Python: erreur dans la fonction \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:599
+#, c-format
+msgid "loading Python script \"%s\"\n"
+msgstr "chargement du script Python \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:601
+#, c-format
+msgid "Loading Python script \"%s\"\n"
+msgstr "Chargement du script Python \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:607
+#, c-format
+msgid "Python error: error while opening file \"%s\"\n"
+msgstr "Erreur Python: erreur à l'ouverture du fichier \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:615
+#, c-format
+msgid "Python error: error while parsing file \"%s\"\n"
+msgstr "Erreur Python: erreur en analysant le fichier \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:668
+#, c-format
+msgid "unloading Python script \"%s\"\n"
+msgstr "déchargement du script Python \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:685
+msgid "unloading all Python scripts...\n"
+msgstr "déchargement de tous les scripts Python...\n"
+
+#: src/plugins/python/wee-python.c:711
+msgid "Python error: error while freeing Python interpreter\n"
+msgstr "Erreur Python: impossible de libérer l'interpréteur Python\n"
+
+#: src/plugins/plugins.c:93
#, c-format
msgid "auto-loading %s script: %s%s%s\n"
msgstr "chargement automatique du script %s : %s%s%s\n"
-#: src/plugins/plugins.c:200
+#: src/plugins/plugins.c:211
#, c-format
msgid "%s unable to add handler for \"%s\" message (not enough memory)\n"
msgstr ""
@@ -2162,7 +2285,7 @@ msgstr "commande: nom d'une commande WeeChat ou IRC"
msgid "list/load/unload Perl scripts"
msgstr "liste/charge/décharge des scripts Perl"
-#: src/common/command.c:76
+#: src/common/command.c:76 src/common/command.c:81
msgid "[load filename] | [autoload] | [unload]"
msgstr "[load fichier] | [autoload] | [unload]"
@@ -2175,10 +2298,22 @@ msgstr ""
"Sans paramètre, la commande /perl liste tous les scripts Perl chargés."
#: src/common/command.c:80
+msgid "list/load/unload Python scripts"
+msgstr "liste/charge/décharge des scripts Python"
+
+#: src/common/command.c:82
+msgid ""
+"filename: Python script (file) to load\n"
+"Without argument, /python command lists all loaded Python scripts."
+msgstr ""
+"fichier: script Python (fichier) à charger\n"
+"Sans paramètre, la commande /python liste tous les scripts Python chargés."
+
+#: src/common/command.c:85
msgid "list, add or remove servers"
msgstr "liste, ajoute ou retire des serveurs"
-#: src/common/command.c:81
+#: src/common/command.c:86
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-pwd password] [-"
"nicks nick1 [nick2 [nick3]]] [-username username] [-realname realname] [-"
@@ -2189,7 +2324,7 @@ msgstr ""
"nom_utilisateur] [-realname nom_réel] [-command commande] [-autojoin canal[,"
"canal]] ] | [del nom_serveur]"
-#: src/common/command.c:86
+#: src/common/command.c:91
msgid ""
"servername: server name, for internal & display use\n"
"hostname: name or IP address of server\n"
@@ -2211,27 +2346,27 @@ msgstr ""
"nom_utilisateur: nom d'utilisateur\n"
"nom_réel: nom réel de l'utilisateur"
-#: src/common/command.c:96
+#: src/common/command.c:101
msgid "save config to disk"
msgstr "sauvegarder la configuration sur disque"
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "[file]"
msgstr "[fichier]"
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "file: filename for writing config"
msgstr "fichier: fichier pour sauvegarder la configuration"
-#: src/common/command.c:99
+#: src/common/command.c:104
msgid "set config parameters"
msgstr "modifier des paramètres de configuration"
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid "[option[=value]]"
msgstr "[option[=valeur]]"
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid ""
"option: name of an option\n"
"value: value for option"
@@ -2239,27 +2374,27 @@ msgstr ""
"option: nom d'une option\n"
"valeur: valeur pour l'option"
-#: src/common/command.c:102
+#: src/common/command.c:107
msgid "remove an alias"
msgstr "supprimer un alias"
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name"
msgstr "nom_alias"
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name: name of alias to remove"
msgstr "nom_alias: nom de l'alias à supprimer"
-#: src/common/command.c:105
+#: src/common/command.c:110
msgid "manage windows"
msgstr "gestion des fenêtres"
-#: src/common/command.c:106
+#: src/common/command.c:111
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr "[list | splith | splitv | [merge [down | up | left | right | all]]]"
-#: src/common/command.c:108
+#: src/common/command.c:113
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2271,29 +2406,29 @@ msgstr ""
"splitv: éclate la fenêtre en deux verticalement\n"
"merge: fusionne la fenêtre avec une autre"
-#: src/common/command.c:254
+#: src/common/command.c:259
#, c-format
msgid "%s alias or command \"%s\" already exists!\n"
msgstr "%s l'alias ou la commande \"%s\" existe déjà !\n"
-#: src/common/command.c:264
+#: src/common/command.c:269
#, c-format
msgid "%s alias cannot run another alias!\n"
msgstr "%s l'alias ne peux pas lancer un autre alias !\n"
-#: src/common/command.c:271
+#: src/common/command.c:276
#, c-format
msgid "%s target command \"%s\" does not exist!\n"
msgstr "%s la commande cible \"%s\" n'existe pas !\n"
-#: src/common/command.c:479
+#: src/common/command.c:484
#, c-format
msgid "%s wrong argument count for %s command \"%s\" (expected: %d arg%s)\n"
msgstr ""
"%s nombre de paramètres incorrect pour la commande %s \"%s\" (attendu: %d "
"paramètre%s)\n"
-#: src/common/command.c:491
+#: src/common/command.c:496
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
@@ -2302,19 +2437,19 @@ msgstr ""
"%s nombre de paramètres incorrect pour la commande %s \"%s\" (attendu: entre "
"%d et %d paramètre%s)\n"
-#: src/common/command.c:513 src/common/command.c:583
+#: src/common/command.c:518 src/common/command.c:588
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr "%s la commande \"%s\" a échoué\n"
-#: src/common/command.c:541
+#: src/common/command.c:546
#, c-format
msgid "%s wrong argument count for IRC command \"%s\" (expected: %d arg%s)\n"
msgstr ""
"%s nombre de paramètres incorrect pour la commande IRC \"%s\" (attendu: %d "
"paramètre%s)\n"
-#: src/common/command.c:553
+#: src/common/command.c:558
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
@@ -2323,177 +2458,179 @@ msgstr ""
"%s nombre de paramètres incorrect pour la commande IRC \"%s\" (attendu: "
"entre %d et %d paramètre%s)\n"
-#: src/common/command.c:568
+#: src/common/command.c:573
#, c-format
msgid "%s command \"%s\" needs a server connection!\n"
msgstr "%s la commande \"%s\" nécessite une connexion au serveur !\n"
-#: src/common/command.c:632
+#: src/common/command.c:637
#, c-format
msgid "%s unknown command \"%s\" (type /help for help)\n"
msgstr "%s commande \"%s\" inconnue (tapez /help pour l'aide)\n"
-#: src/common/command.c:711
+#: src/common/command.c:716
#, c-format
msgid "%s cannot find nick for sending message\n"
msgstr "%s impossible de trouver le pseudo pour envoyer le message\n"
-#: src/common/command.c:720
+#: src/common/command.c:725
msgid "This window is not a channel!\n"
msgstr "Cette fenêtre n'est pas un canal !\n"
-#: src/common/command.c:748 src/common/command.c:772 src/common/command.c:876
+#: src/common/command.c:753 src/common/command.c:777 src/common/command.c:881
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr "%s paramètres manquants pour la commande \"%s\"\n"
-#: src/common/command.c:757
+#: src/common/command.c:762
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr "Alias \"%s\" => \"%s\" créé\n"
-#: src/common/command.c:763
+#: src/common/command.c:768
#, c-format
msgid "Failed to create alias \"%s\" => \"%s\" (not enough memory)\n"
msgstr "Impossible de créer l'alias \"%s\" => \"%s\" (pas assez de mémoire)\n"
-#: src/common/command.c:783
+#: src/common/command.c:788
msgid "List of aliases:\n"
msgstr "Liste des alias:\n"
-#: src/common/command.c:795
+#: src/common/command.c:800
msgid "No alias defined.\n"
msgstr "Aucun alias défini.\n"
-#: src/common/command.c:818
+#: src/common/command.c:823
msgid "Channel: "
msgstr "Canal: "
-#: src/common/command.c:821 src/common/command.c:831
+#: src/common/command.c:826 src/common/command.c:836
msgid " (server: "
msgstr " (serveur: "
-#: src/common/command.c:828
+#: src/common/command.c:833
msgid "Private with: "
msgstr "Privé avec: "
-#: src/common/command.c:856
+#: src/common/command.c:861
msgid "Opened buffers:\n"
msgstr "Tampons ouverts:\n"
-#: src/common/command.c:899 src/common/command.c:1026
+#: src/common/command.c:904 src/common/command.c:1031
#, c-format
msgid "%s incorrect buffer number\n"
msgstr "%s numéro de buffer incorrect\n"
-#: src/common/command.c:913
+#: src/common/command.c:918
#, c-format
msgid "%s can not close the single buffer\n"
msgstr "%s impossible de fermer le tampon unique\n"
-#: src/common/command.c:923
+#: src/common/command.c:928
#, c-format
msgid "%s can not close server buffer while channels are opened\n"
msgstr ""
"%s impossible de fermer le tampon du serveur tant que des canaux sont "
"ouverts\n"
-#: src/common/command.c:962
+#: src/common/command.c:967
msgid "Notify levels: "
msgstr "Niveaux de notification: "
-#: src/common/command.c:989 src/common/command.c:999
+#: src/common/command.c:994 src/common/command.c:1004
#, c-format
msgid "%s incorrect notify level (must be between 0 and 3)\n"
msgstr "%s niveau de notification incorrect (doit être entre 0 et 3)\n"
-#: src/common/command.c:1017
+#: src/common/command.c:1022
#, c-format
msgid "%s buffer \"%s\" not found for \"%s\" command\n"
msgstr "%s buffer \"%s\" non trouvé pour la commande \"%s\"\n"
-#: src/common/command.c:1051
+#: src/common/command.c:1056
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr "paramètre inconnu \"%s\" pour la commande \"%s\"\n"
-#: src/common/command.c:1081
+#: src/common/command.c:1086
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr "%s déjà connecté au serveur \"%s\" !\n"
-#: src/common/command.c:1089
+#: src/common/command.c:1094
#, c-format
msgid "%s currently connecting to server \"%s\"!\n"
msgstr "%s une connexion vers le serveur \"%s\" est en cours !\n"
-#: src/common/command.c:1107 src/common/command.c:1182
+#: src/common/command.c:1112 src/common/command.c:1187
#, c-format
msgid "%s server not found\n"
msgstr "%s serveur non trouvé\n"
-#: src/common/command.c:1137 src/common/command.c:1400
-#: src/common/command.c:2097 src/common/command.c:2109
+#: src/common/command.c:1142 src/common/command.c:1404
+#: src/common/command.c:1545 src/common/command.c:2236
+#: src/common/command.c:2248
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr "%s option inconnue pour la commande \"%s\"\n"
-#: src/common/command.c:1166
+#: src/common/command.c:1171
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr "%s non connecté au serveur \"%s\" !\n"
-#: src/common/command.c:1174
+#: src/common/command.c:1179
msgid "Auto-reconnection is cancelled\n"
msgstr "La reconnexion automatique est annulée\n"
-#: src/common/command.c:1200 src/common/weechat.c:265
+#: src/common/command.c:1205 src/common/weechat.c:265
#, c-format
msgid "%s internal commands:\n"
msgstr "Commandes internes %s :\n"
-#: src/common/command.c:1209 src/common/weechat.c:285
+#: src/common/command.c:1214 src/common/weechat.c:285
#, c-format
msgid "IRC commands:\n"
msgstr "Commandes IRC :\n"
-#: src/common/command.c:1276
+#: src/common/command.c:1281
#, c-format
msgid "No help available, \"%s\" is an unknown command\n"
msgstr "Pas d'aide disponible, la commande \"%s\" est inconnue\n"
-#: src/common/command.c:1301
+#: src/common/command.c:1305
msgid "Registered Perl scripts:\n"
msgstr "Scripts Perl enregistrés :\n"
-#: src/common/command.c:1318 src/common/command.c:1340
-#: src/common/command.c:1362
+#: src/common/command.c:1322 src/common/command.c:1344
+#: src/common/command.c:1366 src/common/command.c:1463
+#: src/common/command.c:1485 src/common/command.c:1507
msgid " (none)\n"
msgstr " (aucun)\n"
-#: src/common/command.c:1323
+#: src/common/command.c:1327
msgid "Perl message handlers:\n"
msgstr "Fonctions Perl pour messages :\n"
-#: src/common/command.c:1332
+#: src/common/command.c:1336
#, c-format
msgid " IRC(%s) => Perl(%s)\n"
msgstr " IRC(%s) => Perl(%s)\n"
-#: src/common/command.c:1345
+#: src/common/command.c:1349
msgid "Perl command handlers:\n"
msgstr "Commandes Perl :\n"
-#: src/common/command.c:1354
+#: src/common/command.c:1358
#, c-format
msgid " Command /%s => Perl(%s)\n"
msgstr " Commande /%s => Perl(%s)\n"
-#: src/common/command.c:1374
+#: src/common/command.c:1378
msgid "Perl scripts unloaded\n"
msgstr "Scripts Perl déchargés\n"
-#: src/common/command.c:1413
+#: src/common/command.c:1417
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
@@ -2502,31 +2639,67 @@ msgstr ""
"Merci de reconstruire WeeChat avec l'option \"--enable-perl\" pour le "
"script ./configure\n"
-#: src/common/command.c:1467
+#: src/common/command.c:1446
+msgid "Registered Python scripts:\n"
+msgstr "Scripts Python enregistrés :\n"
+
+#: src/common/command.c:1468
+msgid "Python message handlers:\n"
+msgstr "Fonctions Python pour messages :\n"
+
+#: src/common/command.c:1477
+#, c-format
+msgid " IRC(%s) => Python(%s)\n"
+msgstr " IRC(%s) => Python(%s)\n"
+
+#: src/common/command.c:1490
+msgid "Python command handlers:\n"
+msgstr "Commandes Python :\n"
+
+#: src/common/command.c:1499
+#, c-format
+msgid " Command /%s => Python(%s)\n"
+msgstr " Commande /%s => Python(%s)\n"
+
+#: src/common/command.c:1519
+msgid "Python scripts unloaded\n"
+msgstr "Scripts Python déchargés\n"
+
+#: src/common/command.c:1558
+msgid ""
+"WeeChat was build without Python support.\n"
+"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
+"script\n"
+msgstr ""
+"WeeChat a été construit sans le support Python.\n"
+"Merci de reconstruire WeeChat avec l'option \"--enable-python\" pour le "
+"script ./configure\n"
+
+#: src/common/command.c:1606
msgid "No server.\n"
msgstr "Pas de serveur.\n"
-#: src/common/command.c:1478
+#: src/common/command.c:1617
#, c-format
msgid "Server '%s' not found.\n"
msgstr "Serveur '%s' non trouvé.\n"
-#: src/common/command.c:1490
+#: src/common/command.c:1629
#, c-format
msgid "%s missing servername for \"%s\" command\n"
msgstr "%s il manque le nom du serveur pour la commande \"%s\"\n"
-#: src/common/command.c:1498
+#: src/common/command.c:1637
#, c-format
msgid "%s too much arguments for \"%s\" command, ignoring arguments\n"
msgstr "%s trop de paramètres pour la commande \"%s\", paramètres ignorés\n"
-#: src/common/command.c:1517
+#: src/common/command.c:1656
#, c-format
msgid "%s server \"%s\" not found for \"%s\" command\n"
msgstr "%s le serveur \"%s\" n'existe pas pour la commande \"%s\"\n"
-#: src/common/command.c:1525
+#: src/common/command.c:1664
#, c-format
msgid ""
"%s you can not delete server \"%s\" because you are connected to. Try /"
@@ -2535,106 +2708,106 @@ msgstr ""
"%s vous ne pouvez pas supprimer le server \"%s\" car vous êtes connecté "
"dessus. Essayez /disconnect %s avant.\n"
-#: src/common/command.c:1541 src/common/command.c:1682
+#: src/common/command.c:1680 src/common/command.c:1821
msgid "Server"
msgstr "Serveur"
-#: src/common/command.c:1544
+#: src/common/command.c:1683
msgid "has been deleted\n"
msgstr "a été supprimé\n"
-#: src/common/command.c:1559
+#: src/common/command.c:1698
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr "%s paramètres manquants pour la commande \"%s\"\n"
-#: src/common/command.c:1569
+#: src/common/command.c:1708
#, c-format
msgid "%s server \"%s\" already exists, can't create it!\n"
msgstr "%s le serveur \"%s\" existe déjà, impossible de le créer !\n"
-#: src/common/command.c:1594 src/common/command.c:1622
-#: src/common/command.c:1635 src/common/command.c:1661
+#: src/common/command.c:1733 src/common/command.c:1761
+#: src/common/command.c:1774 src/common/command.c:1800
#, c-format
msgid "%s missing password for \"%s\" parameter\n"
msgstr "%s mot de passe manquant pour le paramètre \"%s\"\n"
-#: src/common/command.c:1607
+#: src/common/command.c:1746
#, c-format
msgid "%s missing nick(s) for \"%s\" parameter\n"
msgstr "%s pseudo(s) manquant(s) pour le paramètre \"%s\"\n"
-#: src/common/command.c:1648
+#: src/common/command.c:1787
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr "%s commande manquante pour le paramètre \"%s\"\n"
-#: src/common/command.c:1685
+#: src/common/command.c:1824
msgid "created\n"
msgstr "créé\n"
-#: src/common/command.c:1691
+#: src/common/command.c:1830
#, c-format
msgid "%s unable to create server\n"
msgstr "%s impossible de créer le serveur\n"
-#: src/common/command.c:1746
+#: src/common/command.c:1885
msgid "(unknown)"
msgstr "(inconnu)"
-#: src/common/command.c:1769
+#: src/common/command.c:1908
msgid "(password hidden) "
msgstr "(mot de passe caché) "
-#: src/common/command.c:1833
+#: src/common/command.c:1972
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr "%s serveur \"%s\" non trouvé\n"
-#: src/common/command.c:1864 src/common/command.c:1910
+#: src/common/command.c:2003 src/common/command.c:2049
#, c-format
msgid "%s config option \"%s\" not found\n"
msgstr "%s option de configuration \"%s\" non trouvée\n"
-#: src/common/command.c:1869 src/common/command.c:1902
+#: src/common/command.c:2008 src/common/command.c:2041
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr "%s valeur incorrecte pour l'option \"%s\"\n"
-#: src/common/command.c:1885
+#: src/common/command.c:2024
#, c-format
msgid "%s option \"%s\" can not be changed while WeeChat is running\n"
msgstr "%s l'option \"%s\" ne peut pas être changée lorsque WeeChat tourne\n"
-#: src/common/command.c:1983
+#: src/common/command.c:2122
#, c-format
msgid "No config option found with \"%s\"\n"
msgstr "Aucune option de configuration trouvée avec \"%s\"\n"
-#: src/common/command.c:1986
+#: src/common/command.c:2125
msgid "No config option found\n"
msgstr "Aucune option de configuration trouvée\n"
-#: src/common/command.c:1992
+#: src/common/command.c:2131
#, c-format
msgid "config option(s) found with \"%s\"\n"
msgstr "option(s) de configuration trouvée(s) avec \"%s\"\n"
-#: src/common/command.c:1995
+#: src/common/command.c:2134
msgid "config option(s) found\n"
msgstr "option(s) de configuration trouvée(s)\n"
-#: src/common/command.c:2015
+#: src/common/command.c:2154
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr "%s alias ou commande \"%s\" non trouvé\n"
-#: src/common/command.c:2025
+#: src/common/command.c:2164
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr "Alias \"%s\" supprimé\n"
-#: src/common/command.c:2045
+#: src/common/command.c:2184
msgid "Opened windows:\n"
msgstr "Fenêtres ouvertes:\n"
@@ -3726,6 +3899,3 @@ msgstr ""
#: src/common/weeconfig.c:1564
msgid "saving config to disk\n"
msgstr "sauvegarde de la configuration sur disque\n"
-
-#~ msgid "nickname: new nickname for current IRC server"
-#~ msgstr "pseudo: nouveau pseudo pour le serveur IRC courant"
diff --git a/po/weechat.pot b/po/weechat.pot
index 504e52df1..35ee1a51a 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: 2005-04-30 19:48+0200\n"
+"POT-Creation-Date: 2005-05-01 20:47+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1146,7 +1146,7 @@ msgstr ""
msgid "whois (secure connection)"
msgstr ""
-#: src/irc/irc-display.c:154 src/common/command.c:812
+#: src/irc/irc-display.c:154 src/common/command.c:817
msgid "Server: "
msgstr ""
@@ -1194,7 +1194,8 @@ msgstr ""
#: src/irc/irc-send.c:345 src/irc/irc-send.c:357 src/irc/irc-send.c:375
#: src/irc/irc-send.c:996 src/irc/irc-send.c:1089 src/irc/irc-send.c:1609
-#: src/common/command.c:1124 src/common/command.c:1407
+#: src/common/command.c:1129 src/common/command.c:1411
+#: src/common/command.c:1552
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr ""
@@ -1833,12 +1834,122 @@ msgstr ""
msgid "unloading all Perl scripts...\n"
msgstr ""
-#: src/plugins/plugins.c:89
+#: src/plugins/python/wee-python.c:61 src/plugins/python/wee-python.c:170
+msgid ""
+"Python error: wrong parameters for 'print_with_channel' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:81
+#, c-format
+msgid ""
+"Python error: unable to register Python script \"%s\" (another script "
+"already exists with this name)\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:105
+#, c-format
+msgid "registered Python script: \"%s\", version %s (%s)\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:112
+#, c-format
+msgid "%s unable to load Python script \"%s\" (not enough memory)\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:137
+msgid "Python error: wrong parameters for 'print' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:222
+msgid "Python error: wrong parameters for 'print_infobar' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:249
+msgid "Python error: wrong parameters for 'command' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:268
+msgid "Python error: server not found for 'command' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:303
+msgid ""
+"Python error: wrong parameters for 'add_message_handler' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:332
+msgid ""
+"Python error: wrong parameters for 'add_command_handler' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:371
+msgid "Python error: wrong parameters for 'get_info' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:390
+msgid "Python error: server not found for 'get_info' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:462
+msgid "Python error: error while launching Python interpreter\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:468
+msgid "Loading Python module \"weechat\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:519 src/plugins/python/wee-python.c:547
+#: src/plugins/python/wee-python.c:578
+#, c-format
+msgid ""
+"Python error: unable to run function \"%s\"in Python script (not enough "
+"memory)\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:569
+#, c-format
+msgid "Python error: error while running function \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:599
+#, c-format
+msgid "loading Python script \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:601
+#, c-format
+msgid "Loading Python script \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:607
+#, c-format
+msgid "Python error: error while opening file \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:615
+#, c-format
+msgid "Python error: error while parsing file \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:668
+#, c-format
+msgid "unloading Python script \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:685
+msgid "unloading all Python scripts...\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:711
+msgid "Python error: error while freeing Python interpreter\n"
+msgstr ""
+
+#: src/plugins/plugins.c:93
#, c-format
msgid "auto-loading %s script: %s%s%s\n"
msgstr ""
-#: src/plugins/plugins.c:200
+#: src/plugins/plugins.c:211
#, c-format
msgid "%s unable to add handler for \"%s\" message (not enough memory)\n"
msgstr ""
@@ -2020,7 +2131,7 @@ msgstr ""
msgid "list/load/unload Perl scripts"
msgstr ""
-#: src/common/command.c:76
+#: src/common/command.c:76 src/common/command.c:81
msgid "[load filename] | [autoload] | [unload]"
msgstr ""
@@ -2031,17 +2142,27 @@ msgid ""
msgstr ""
#: src/common/command.c:80
+msgid "list/load/unload Python scripts"
+msgstr ""
+
+#: src/common/command.c:82
+msgid ""
+"filename: Python script (file) to load\n"
+"Without argument, /python command lists all loaded Python scripts."
+msgstr ""
+
+#: src/common/command.c:85
msgid "list, add or remove servers"
msgstr ""
-#: src/common/command.c:81
+#: src/common/command.c:86
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-pwd password] [-"
"nicks nick1 [nick2 [nick3]]] [-username username] [-realname realname] [-"
"command command] [-autojoin channel[,channel]] ] | [del servername]"
msgstr ""
-#: src/common/command.c:86
+#: src/common/command.c:91
msgid ""
"servername: server name, for internal & display use\n"
"hostname: name or IP address of server\n"
@@ -2054,53 +2175,53 @@ msgid ""
"realname: real name of user"
msgstr ""
-#: src/common/command.c:96
+#: src/common/command.c:101
msgid "save config to disk"
msgstr ""
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "[file]"
msgstr ""
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "file: filename for writing config"
msgstr ""
-#: src/common/command.c:99
+#: src/common/command.c:104
msgid "set config parameters"
msgstr ""
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid "[option[=value]]"
msgstr ""
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid ""
"option: name of an option\n"
"value: value for option"
msgstr ""
-#: src/common/command.c:102
+#: src/common/command.c:107
msgid "remove an alias"
msgstr ""
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name"
msgstr ""
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name: name of alias to remove"
msgstr ""
-#: src/common/command.c:105
+#: src/common/command.c:110
msgid "manage windows"
msgstr ""
-#: src/common/command.c:106
+#: src/common/command.c:111
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr ""
-#: src/common/command.c:108
+#: src/common/command.c:113
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2108,355 +2229,390 @@ msgid ""
"merge: merge window with another"
msgstr ""
-#: src/common/command.c:254
+#: src/common/command.c:259
#, c-format
msgid "%s alias or command \"%s\" already exists!\n"
msgstr ""
-#: src/common/command.c:264
+#: src/common/command.c:269
#, c-format
msgid "%s alias cannot run another alias!\n"
msgstr ""
-#: src/common/command.c:271
+#: src/common/command.c:276
#, c-format
msgid "%s target command \"%s\" does not exist!\n"
msgstr ""
-#: src/common/command.c:479
+#: src/common/command.c:484
#, c-format
msgid "%s wrong argument count for %s command \"%s\" (expected: %d arg%s)\n"
msgstr ""
-#: src/common/command.c:491
+#: src/common/command.c:496
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
"arg%s)\n"
msgstr ""
-#: src/common/command.c:513 src/common/command.c:583
+#: src/common/command.c:518 src/common/command.c:588
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr ""
-#: src/common/command.c:541
+#: src/common/command.c:546
#, c-format
msgid "%s wrong argument count for IRC command \"%s\" (expected: %d arg%s)\n"
msgstr ""
-#: src/common/command.c:553
+#: src/common/command.c:558
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
"arg%s)\n"
msgstr ""
-#: src/common/command.c:568
+#: src/common/command.c:573
#, c-format
msgid "%s command \"%s\" needs a server connection!\n"
msgstr ""
-#: src/common/command.c:632
+#: src/common/command.c:637
#, c-format
msgid "%s unknown command \"%s\" (type /help for help)\n"
msgstr ""
-#: src/common/command.c:711
+#: src/common/command.c:716
#, c-format
msgid "%s cannot find nick for sending message\n"
msgstr ""
-#: src/common/command.c:720
+#: src/common/command.c:725
msgid "This window is not a channel!\n"
msgstr ""
-#: src/common/command.c:748 src/common/command.c:772 src/common/command.c:876
+#: src/common/command.c:753 src/common/command.c:777 src/common/command.c:881
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:757
+#: src/common/command.c:762
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr ""
-#: src/common/command.c:763
+#: src/common/command.c:768
#, c-format
msgid "Failed to create alias \"%s\" => \"%s\" (not enough memory)\n"
msgstr ""
-#: src/common/command.c:783
+#: src/common/command.c:788
msgid "List of aliases:\n"
msgstr ""
-#: src/common/command.c:795
+#: src/common/command.c:800
msgid "No alias defined.\n"
msgstr ""
-#: src/common/command.c:818
+#: src/common/command.c:823
msgid "Channel: "
msgstr ""
-#: src/common/command.c:821 src/common/command.c:831
+#: src/common/command.c:826 src/common/command.c:836
msgid " (server: "
msgstr ""
-#: src/common/command.c:828
+#: src/common/command.c:833
msgid "Private with: "
msgstr ""
-#: src/common/command.c:856
+#: src/common/command.c:861
msgid "Opened buffers:\n"
msgstr ""
-#: src/common/command.c:899 src/common/command.c:1026
+#: src/common/command.c:904 src/common/command.c:1031
#, c-format
msgid "%s incorrect buffer number\n"
msgstr ""
-#: src/common/command.c:913
+#: src/common/command.c:918
#, c-format
msgid "%s can not close the single buffer\n"
msgstr ""
-#: src/common/command.c:923
+#: src/common/command.c:928
#, c-format
msgid "%s can not close server buffer while channels are opened\n"
msgstr ""
-#: src/common/command.c:962
+#: src/common/command.c:967
msgid "Notify levels: "
msgstr ""
-#: src/common/command.c:989 src/common/command.c:999
+#: src/common/command.c:994 src/common/command.c:1004
#, c-format
msgid "%s incorrect notify level (must be between 0 and 3)\n"
msgstr ""
-#: src/common/command.c:1017
+#: src/common/command.c:1022
#, c-format
msgid "%s buffer \"%s\" not found for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1051
+#: src/common/command.c:1056
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1081
+#: src/common/command.c:1086
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1089
+#: src/common/command.c:1094
#, c-format
msgid "%s currently connecting to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1107 src/common/command.c:1182
+#: src/common/command.c:1112 src/common/command.c:1187
#, c-format
msgid "%s server not found\n"
msgstr ""
-#: src/common/command.c:1137 src/common/command.c:1400
-#: src/common/command.c:2097 src/common/command.c:2109
+#: src/common/command.c:1142 src/common/command.c:1404
+#: src/common/command.c:1545 src/common/command.c:2236
+#: src/common/command.c:2248
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1166
+#: src/common/command.c:1171
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1174
+#: src/common/command.c:1179
msgid "Auto-reconnection is cancelled\n"
msgstr ""
-#: src/common/command.c:1200 src/common/weechat.c:265
+#: src/common/command.c:1205 src/common/weechat.c:265
#, c-format
msgid "%s internal commands:\n"
msgstr ""
-#: src/common/command.c:1209 src/common/weechat.c:285
+#: src/common/command.c:1214 src/common/weechat.c:285
#, c-format
msgid "IRC commands:\n"
msgstr ""
-#: src/common/command.c:1276
+#: src/common/command.c:1281
#, c-format
msgid "No help available, \"%s\" is an unknown command\n"
msgstr ""
-#: src/common/command.c:1301
+#: src/common/command.c:1305
msgid "Registered Perl scripts:\n"
msgstr ""
-#: src/common/command.c:1318 src/common/command.c:1340
-#: src/common/command.c:1362
+#: src/common/command.c:1322 src/common/command.c:1344
+#: src/common/command.c:1366 src/common/command.c:1463
+#: src/common/command.c:1485 src/common/command.c:1507
msgid " (none)\n"
msgstr ""
-#: src/common/command.c:1323
+#: src/common/command.c:1327
msgid "Perl message handlers:\n"
msgstr ""
-#: src/common/command.c:1332
+#: src/common/command.c:1336
#, c-format
msgid " IRC(%s) => Perl(%s)\n"
msgstr ""
-#: src/common/command.c:1345
+#: src/common/command.c:1349
msgid "Perl command handlers:\n"
msgstr ""
-#: src/common/command.c:1354
+#: src/common/command.c:1358
#, c-format
msgid " Command /%s => Perl(%s)\n"
msgstr ""
-#: src/common/command.c:1374
+#: src/common/command.c:1378
msgid "Perl scripts unloaded\n"
msgstr ""
-#: src/common/command.c:1413
+#: src/common/command.c:1417
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
msgstr ""
-#: src/common/command.c:1467
+#: src/common/command.c:1446
+msgid "Registered Python scripts:\n"
+msgstr ""
+
+#: src/common/command.c:1468
+msgid "Python message handlers:\n"
+msgstr ""
+
+#: src/common/command.c:1477
+#, c-format
+msgid " IRC(%s) => Python(%s)\n"
+msgstr ""
+
+#: src/common/command.c:1490
+msgid "Python command handlers:\n"
+msgstr ""
+
+#: src/common/command.c:1499
+#, c-format
+msgid " Command /%s => Python(%s)\n"
+msgstr ""
+
+#: src/common/command.c:1519
+msgid "Python scripts unloaded\n"
+msgstr ""
+
+#: src/common/command.c:1558
+msgid ""
+"WeeChat was build without Python support.\n"
+"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
+"script\n"
+msgstr ""
+
+#: src/common/command.c:1606
msgid "No server.\n"
msgstr ""
-#: src/common/command.c:1478
+#: src/common/command.c:1617
#, c-format
msgid "Server '%s' not found.\n"
msgstr ""
-#: src/common/command.c:1490
+#: src/common/command.c:1629
#, c-format
msgid "%s missing servername for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1498
+#: src/common/command.c:1637
#, c-format
msgid "%s too much arguments for \"%s\" command, ignoring arguments\n"
msgstr ""
-#: src/common/command.c:1517
+#: src/common/command.c:1656
#, c-format
msgid "%s server \"%s\" not found for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1525
+#: src/common/command.c:1664
#, c-format
msgid ""
"%s you can not delete server \"%s\" because you are connected to. Try /"
"disconnect %s before.\n"
msgstr ""
-#: src/common/command.c:1541 src/common/command.c:1682
+#: src/common/command.c:1680 src/common/command.c:1821
msgid "Server"
msgstr ""
-#: src/common/command.c:1544
+#: src/common/command.c:1683
msgid "has been deleted\n"
msgstr ""
-#: src/common/command.c:1559
+#: src/common/command.c:1698
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1569
+#: src/common/command.c:1708
#, c-format
msgid "%s server \"%s\" already exists, can't create it!\n"
msgstr ""
-#: src/common/command.c:1594 src/common/command.c:1622
-#: src/common/command.c:1635 src/common/command.c:1661
+#: src/common/command.c:1733 src/common/command.c:1761
+#: src/common/command.c:1774 src/common/command.c:1800
#, c-format
msgid "%s missing password for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1607
+#: src/common/command.c:1746
#, c-format
msgid "%s missing nick(s) for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1648
+#: src/common/command.c:1787
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1685
+#: src/common/command.c:1824
msgid "created\n"
msgstr ""
-#: src/common/command.c:1691
+#: src/common/command.c:1830
#, c-format
msgid "%s unable to create server\n"
msgstr ""
-#: src/common/command.c:1746
+#: src/common/command.c:1885
msgid "(unknown)"
msgstr ""
-#: src/common/command.c:1769
+#: src/common/command.c:1908
msgid "(password hidden) "
msgstr ""
-#: src/common/command.c:1833
+#: src/common/command.c:1972
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:1864 src/common/command.c:1910
+#: src/common/command.c:2003 src/common/command.c:2049
#, c-format
msgid "%s config option \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:1869 src/common/command.c:1902
+#: src/common/command.c:2008 src/common/command.c:2041
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr ""
-#: src/common/command.c:1885
+#: src/common/command.c:2024
#, c-format
msgid "%s option \"%s\" can not be changed while WeeChat is running\n"
msgstr ""
-#: src/common/command.c:1983
+#: src/common/command.c:2122
#, c-format
msgid "No config option found with \"%s\"\n"
msgstr ""
-#: src/common/command.c:1986
+#: src/common/command.c:2125
msgid "No config option found\n"
msgstr ""
-#: src/common/command.c:1992
+#: src/common/command.c:2131
#, c-format
msgid "config option(s) found with \"%s\"\n"
msgstr ""
-#: src/common/command.c:1995
+#: src/common/command.c:2134
msgid "config option(s) found\n"
msgstr ""
-#: src/common/command.c:2015
+#: src/common/command.c:2154
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:2025
+#: src/common/command.c:2164
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr ""
-#: src/common/command.c:2045
+#: src/common/command.c:2184
msgid "Opened windows:\n"
msgstr ""
diff --git a/src/common/command.c b/src/common/command.c
index a5f6fe58e..d2a8c14f6 100644
--- a/src/common/command.c
+++ b/src/common/command.c
@@ -77,6 +77,11 @@ t_weechat_command weechat_commands[] =
N_("filename: Perl script (file) to load\n"
"Without argument, /perl command lists all loaded Perl scripts."),
0, 2, weechat_cmd_perl, NULL },
+ { "python", N_("list/load/unload Python scripts"),
+ N_("[load filename] | [autoload] | [unload]"),
+ N_("filename: Python script (file) to load\n"
+ "Without argument, /python command lists all loaded Python scripts."),
+ 0, 2, weechat_cmd_python, NULL },
{ "server", N_("list, add or remove servers"),
N_("[servername] | "
"[servername hostname port [-auto | -noauto] [-pwd password] [-nicks nick1 "
@@ -1286,13 +1291,12 @@ weechat_cmd_help (int argc, char **argv)
int
weechat_cmd_perl (int argc, char **argv)
{
- #ifdef PLUGINS
+ #ifdef PLUGIN_PERL
t_plugin_script *ptr_plugin_script;
t_plugin_handler *ptr_plugin_handler;
int handler_found, path_length;
char *path_script;
- #ifdef PLUGIN_PERL
switch (argc)
{
case 0:
@@ -1418,11 +1422,146 @@ weechat_cmd_perl (int argc, char **argv)
(void) argv;
#endif /* PLUGIN_PERL */
+ return 0;
+}
+
+/*
+ * weechat_cmd_python: list/load/unload Python scripts
+ */
+
+int
+weechat_cmd_python (int argc, char **argv)
+{
+ #ifdef PLUGIN_PYTHON
+ t_plugin_script *ptr_plugin_script;
+ t_plugin_handler *ptr_plugin_handler;
+ int handler_found, path_length;
+ char *path_script;
+
+ switch (argc)
+ {
+ case 0:
+ /* list registered Python scripts */
+ gui_printf (NULL, "\n");
+ gui_printf (NULL, _("Registered Python scripts:\n"));
+ if (python_scripts)
+ {
+ for (ptr_plugin_script = python_scripts; ptr_plugin_script;
+ ptr_plugin_script = ptr_plugin_script->next_script)
+ {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, " %s v%s%s%s\n",
+ ptr_plugin_script->name,
+ ptr_plugin_script->version,
+ (ptr_plugin_script->description[0]) ? " - " : "",
+ ptr_plugin_script->description);
+ }
+ }
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _(" (none)\n"));
+ }
+
+ /* list Python message handlers */
+ gui_printf (NULL, "\n");
+ gui_printf (NULL, _("Python message handlers:\n"));
+ handler_found = 0;
+ for (ptr_plugin_handler = plugin_msg_handlers; ptr_plugin_handler;
+ ptr_plugin_handler = ptr_plugin_handler->next_handler)
+ {
+ if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PYTHON)
+ {
+ handler_found = 1;
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _(" IRC(%s) => Python(%s)\n"),
+ ptr_plugin_handler->name,
+ ptr_plugin_handler->function_name);
+ }
+ }
+ if (!handler_found)
+ {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _(" (none)\n"));
+ }
+
+ /* list Python command handlers */
+ gui_printf (NULL, "\n");
+ gui_printf (NULL, _("Python command handlers:\n"));
+ handler_found = 0;
+ for (ptr_plugin_handler = plugin_cmd_handlers; ptr_plugin_handler;
+ ptr_plugin_handler = ptr_plugin_handler->next_handler)
+ {
+ if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PYTHON)
+ {
+ handler_found = 1;
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _(" Command /%s => Python(%s)\n"),
+ ptr_plugin_handler->name,
+ ptr_plugin_handler->function_name);
+ }
+ }
+ if (!handler_found)
+ {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _(" (none)\n"));
+ }
+
+ break;
+ case 1:
+ if (strcasecmp (argv[0], "autoload") == 0)
+ plugin_auto_load (PLUGIN_TYPE_PYTHON, "python/autoload");
+ if (strcasecmp (argv[0], "unload") == 0)
+ {
+ /* unload all Python scripts */
+ plugin_unload (PLUGIN_TYPE_PYTHON, NULL);
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _("Python scripts unloaded\n"));
+ }
+ break;
+ case 2:
+ if (strcasecmp (argv[0], "load") == 0)
+ {
+ /* load Python script */
+ if (strstr(argv[1], DIR_SEPARATOR))
+ path_script = NULL;
+ else
+ {
+ path_length = strlen (weechat_home) + strlen (argv[1]) + 7;
+ path_script = (char *) malloc (path_length * sizeof (char));
+ snprintf (path_script, path_length, "%s%s%s%s%s",
+ weechat_home, DIR_SEPARATOR, "python",
+ DIR_SEPARATOR, argv[1]);
+ }
+ plugin_load (PLUGIN_TYPE_PYTHON,
+ (path_script) ? path_script : argv[1]);
+ if (path_script)
+ free (path_script);
+ }
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s unknown option for \"%s\" command\n"),
+ WEECHAT_ERROR, "python");
+ }
+ break;
+ default:
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s wrong argument count for \"%s\" command\n"),
+ WEECHAT_ERROR, "python");
+ }
#else
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("WeeChat was build without Python support.\n"
+ "Please rebuild WeeChat with "
+ "\"--enable-python\" option for ./configure script\n"));
/* make gcc happy */
(void) argc;
(void) argv;
- #endif /* PLUGINS */
+ #endif /* PLUGIN_PYTHON */
return 0;
}
diff --git a/src/common/command.h b/src/common/command.h
index fa808aa1e..aac5701fb 100644
--- a/src/common/command.h
+++ b/src/common/command.h
@@ -70,6 +70,7 @@ extern int weechat_cmd_debug (int, char **);
extern int weechat_cmd_disconnect (int, char **);
extern int weechat_cmd_help (int, char **);
extern int weechat_cmd_perl (int, char **);
+extern int weechat_cmd_python (int, char **);
extern int weechat_cmd_save (int, char **);
extern int weechat_cmd_server (int, char **);
extern int weechat_cmd_set (char *);
diff --git a/src/common/completion.c b/src/common/completion.c
index 27bc9b5a5..03b6ada59 100644
--- a/src/common/completion.c
+++ b/src/common/completion.c
@@ -207,6 +207,20 @@ completion_build_list (t_completion *completion, void *channel)
"unload");
return;
}
+ if ((strcasecmp (completion->base_command, "python") == 0)
+ && (completion->base_command_arg == 1))
+ {
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "load");
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "autoload");
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "unload");
+ return;
+ }
if ((strcasecmp (completion->base_command, "set") == 0)
&& (completion->base_command_arg == 1))
{
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
index 823b41475..b52375faf 100644
--- a/src/plugins/Makefile.am
+++ b/src/plugins/Makefile.am
@@ -21,16 +21,16 @@ if PLUGIN_PERL
perl_dir = perl
endif
-# if PLUGIN_PYTHON
-# python_dir = python
-# endif
+if PLUGIN_PYTHON
+python_dir = python
+endif
# if PLUGIN_RUBY
# ruby_dir = ruby
# endif
# SUBDIRS = $(perl_dir) $(python_dir) $(ruby_dir)
-SUBDIRS = $(perl_dir)
+SUBDIRS = $(perl_dir) $(python_dir)
noinst_LIBRARIES = lib_weechat_plugins.a
diff --git a/src/plugins/plugins.c b/src/plugins/plugins.c
index e9f25354d..85a3d5033 100644
--- a/src/plugins/plugins.c
+++ b/src/plugins/plugins.c
@@ -39,6 +39,10 @@
#include "perl/wee-perl.h"
#endif
+#ifdef PLUGIN_PYTHON
+#include "python/wee-python.h"
+#endif
+
char *plugin_name[3] = { "Perl", "Python", "Ruby" };
@@ -115,6 +119,11 @@ plugin_init ()
wee_perl_init();
plugin_auto_load (PLUGIN_TYPE_PERL, "perl/autoload");
#endif
+
+ #ifdef PLUGIN_PYTHON
+ wee_python_init();
+ plugin_auto_load (PLUGIN_TYPE_PYTHON, "python/autoload");
+ #endif
}
/*
@@ -133,7 +142,9 @@ plugin_load (int plugin_type, char *filename)
#endif
break;
case PLUGIN_TYPE_PYTHON:
- /* TODO: load Python script */
+ #ifdef PLUGIN_PYTHON
+ wee_python_load (filename);
+ #endif
break;
case PLUGIN_TYPE_RUBY:
/* TODO: load Ruby script */
@@ -292,6 +303,10 @@ plugin_event_msg (char *irc_command, char *arguments, char *server)
if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PERL)
wee_perl_exec (ptr_plugin_handler->function_name, arguments, server);
#endif
+ #ifdef PLUGIN_PYTHON
+ if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PYTHON)
+ wee_python_exec (ptr_plugin_handler->function_name, arguments, server);
+ #endif
}
}
#else
@@ -321,6 +336,10 @@ plugin_exec_command (char *user_command, char *arguments, char *server)
if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PERL)
wee_perl_exec (ptr_plugin_handler->function_name, arguments, server);
#endif
+ #ifdef PLUGIN_PYTHON
+ if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PYTHON)
+ wee_python_exec (ptr_plugin_handler->function_name, arguments, server);
+ #endif
/* command executed */
return 1;
@@ -358,7 +377,10 @@ plugin_unload (int plugin_type, char *scriptname)
#endif
break;
case PLUGIN_TYPE_PYTHON:
- /* TODO: unload Python scripts */
+ #ifdef PLUGIN_PYTHON
+ wee_python_end ();
+ wee_python_init ();
+ #endif
break;
case PLUGIN_TYPE_RUBY:
/* TODO: unload Ruby scripts */
@@ -383,4 +405,8 @@ plugin_end ()
#ifdef PLUGIN_PERL
wee_perl_end();
#endif
+
+ #ifdef PLUGIN_PYTHON
+ wee_python_end();
+ #endif
}
diff --git a/src/plugins/python/Makefile.am b/src/plugins/python/Makefile.am
new file mode 100644
index 000000000..1828903a7
--- /dev/null
+++ b/src/plugins/python/Makefile.am
@@ -0,0 +1,23 @@
+# Copyright (c) 2003-2005 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\" $(PYTHON_CFLAGS)
+
+noinst_LIBRARIES = lib_weechat_python.a
+
+lib_weechat_python_a_SOURCES = wee-python.h \
+ wee-python.c
diff --git a/src/plugins/python/wee-python.c b/src/plugins/python/wee-python.c
new file mode 100644
index 000000000..6c4e48b42
--- /dev/null
+++ b/src/plugins/python/wee-python.c
@@ -0,0 +1,713 @@
+/*
+ * Copyright (c) 2003-2005 by FlashCode <flashcode@flashtux.org>
+ * See README for License detail, AUTHORS for developers list.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* wee-python.c: Python plugin support for WeeChat */
+
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <Python.h>
+#include <stdlib.h>
+#include <string.h>
+#undef _
+#include "../../common/weechat.h"
+#include "../plugins.h"
+#include "wee-python.h"
+#include "../../common/command.h"
+#include "../../irc/irc.h"
+#include "../../gui/gui.h"
+
+
+t_plugin_script *python_scripts = NULL;
+t_plugin_script *last_python_script = NULL;
+
+
+/*
+ * weechat.register(nom, version, fonction, description):
+ * startup function for all WeeChat Python scripts
+ */
+
+static PyObject *
+wee_python_register (PyObject *self, PyObject *args)
+{
+ char *name, *version, *shutdown_func, *description;
+ t_plugin_script *ptr_python_script, *python_script_found, *new_python_script;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "ssss", &name, &version, &shutdown_func, &description))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'print_with_channel' Python function\n"));
+ return NULL;
+ }
+
+ python_script_found = NULL;
+ for (ptr_python_script = python_scripts; ptr_python_script;
+ ptr_python_script = ptr_python_script->next_script)
+ {
+ if (strcasecmp (ptr_python_script->name, name) == 0)
+ {
+ python_script_found = ptr_python_script;
+ break;
+ }
+ }
+
+ if (python_script_found)
+ {
+ /* error: another scripts already exists with this name! */
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: unable to register Python script \"%s\" (another script "
+ "already exists with this name)\n"),
+ name);
+ }
+ else
+ {
+ /* registering script */
+ new_python_script = (t_plugin_script *)malloc (sizeof (t_plugin_script));
+ if (new_python_script)
+ {
+ new_python_script->name = strdup (name);
+ new_python_script->version = strdup (version);
+ new_python_script->shutdown_func = strdup (shutdown_func);
+ new_python_script->description = strdup (description);
+
+ /* add new script to list */
+ new_python_script->prev_script = last_python_script;
+ new_python_script->next_script = NULL;
+ if (python_scripts)
+ last_python_script->next_script = new_python_script;
+ else
+ python_scripts = new_python_script;
+ last_python_script = new_python_script;
+
+ wee_log_printf (_("registered Python script: \"%s\", version %s (%s)\n"),
+ name, version, description);
+ }
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s unable to load Python script \"%s\" (not enough memory)\n"),
+ WEECHAT_ERROR, name);
+ }
+ }
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.print(message): print message to current buffer
+ */
+
+static PyObject *
+wee_python_print (PyObject *self, PyObject *args)
+{
+ char *message;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "s", &message))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'print' Python function\n"));
+ return NULL;
+ }
+
+ irc_display_prefix (gui_current_window->buffer, PREFIX_PLUGIN);
+ gui_printf (gui_current_window->buffer, "%s\n", message);
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.print_with_channel(message, channel, server=None):
+ * print message to a specific channel/server
+ * (server is optional)
+ */
+
+static PyObject *
+wee_python_print_with_channel (PyObject *self, PyObject *args)
+{
+ char *message, *channel, *server = NULL;
+ int ret = 0;
+ t_gui_buffer *ptr_buffer;
+ t_irc_server *ptr_server;
+ t_irc_channel *ptr_channel;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "ss|s", &message, &channel, &server))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'print_with_channel' Python function\n"));
+ return NULL;
+ }
+
+ ptr_buffer = NULL;
+ for (ptr_server = irc_servers; ptr_server;
+ ptr_server = ptr_server->next_server)
+ {
+ if (!server || (strcasecmp (ptr_server->name, server)) == 0)
+ {
+ for (ptr_channel = ptr_server->channels; ptr_channel;
+ ptr_channel = ptr_channel->next_channel)
+ {
+ if (strcasecmp (ptr_channel->name, channel) == 0)
+ {
+ ptr_buffer = ptr_channel->buffer;
+ break;
+ }
+ }
+ }
+ if (ptr_buffer)
+ break;
+ }
+
+ /* buffer found => display message & return 1 ~= True */
+ if (ptr_buffer)
+ {
+ irc_display_prefix (ptr_buffer, PREFIX_PLUGIN);
+ gui_printf (ptr_buffer, "%s", message);
+ ret = 1;
+ }
+
+ return Py_BuildValue ("i", ret);
+}
+
+/*
+ * weechat.print_infobar(delay, message): print message to infobar
+ */
+
+static PyObject *
+wee_python_print_infobar (PyObject *self, PyObject *args)
+{
+ int delay;
+ char *message;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "is", &delay, &message))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'print_infobar' Python function\n"));
+ return NULL;
+ }
+
+ gui_infobar_printf (delay, COLOR_WIN_INFOBAR, message);
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.command(command, server=None): send command to server
+ */
+
+static PyObject *
+wee_python_command (PyObject *self, PyObject *args)
+{
+ char *server = NULL, *command, *command2;
+ t_irc_server *ptr_server;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "s|s", &command, &server))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'command' Python function\n"));
+ return NULL;
+ }
+
+ if (server == NULL)
+ {
+ ptr_server = SERVER(gui_current_window->buffer);
+ }
+ else
+ {
+ for (ptr_server = irc_servers; ptr_server; ptr_server = ptr_server->next_server)
+ {
+ if (strcasecmp (ptr_server->name, server) == 0)
+ break;
+ }
+ if (!ptr_server)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: server not found for 'command' Python function\n"));
+ }
+ }
+
+ if (ptr_server)
+ {
+ command2 = (char *) malloc (strlen (command) + 8);
+ strcpy (command2, command);
+ if (!strstr (command2, "\r\n"))
+ strcat (command2, "\r\n");
+ server_sendf (ptr_server, command2);
+ free (command2);
+ }
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.add_message_handler(message, function):
+ * add handler for messages
+ */
+
+static PyObject *
+wee_python_add_message_handler (PyObject *self, PyObject *args)
+{
+ char *message, *function;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "ss", &message, &function))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'add_message_handler' Python function\n"));
+ return NULL;
+ }
+
+ plugin_handler_add (&plugin_msg_handlers, &last_plugin_msg_handler,
+ PLUGIN_TYPE_PYTHON, message, function);
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.add_command_handler(name, function):
+ * define/redefines commands
+ */
+
+static PyObject *
+wee_python_add_command_handler(PyObject *self, PyObject *args)
+{
+ char *name, *function;
+ t_plugin_handler *ptr_plugin_handler;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "ss", &name, &function))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'add_command_handler' Python function\n"));
+ return NULL;
+ }
+
+ if (!weelist_search (index_commands, name))
+ weelist_add (&index_commands, &last_index_command, name);
+
+ ptr_plugin_handler = plugin_handler_search (plugin_cmd_handlers, name);
+ if (ptr_plugin_handler)
+ {
+ free (ptr_plugin_handler->function_name);
+ ptr_plugin_handler->function_name = strdup (function);
+ }
+ else
+ plugin_handler_add (&plugin_cmd_handlers, &last_plugin_cmd_handler,
+ PLUGIN_TYPE_PYTHON, name, function);
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.get_info(info, server=None):
+ * get various infos
+ */
+
+static PyObject *
+wee_python_get_info (PyObject *self, PyObject *args)
+{
+ char *arg, *info = NULL, *server = NULL;
+ t_irc_server *ptr_server;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "s|s", &arg, &server))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'get_info' Python function\n"));
+ return NULL;
+ }
+
+ if (server == NULL)
+ {
+ ptr_server = SERVER(gui_current_window->buffer);
+ }
+ else
+ {
+ for (ptr_server = irc_servers; ptr_server; ptr_server = ptr_server->next_server)
+ {
+ if (strcasecmp (ptr_server->name, server) == 0)
+ break;
+ }
+ if (!ptr_server)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: server not found for 'get_info' Python function\n"));
+ }
+ }
+
+ if (ptr_server && arg)
+ {
+ if ( (strcasecmp (arg, "0") == 0) || (strcasecmp (arg, "version") == 0) )
+ {
+ info = PACKAGE_STRING;
+ }
+ else if ( (strcasecmp (arg, "1") == 0) || (strcasecmp (arg, "nick") == 0) )
+ {
+ if (ptr_server->nick)
+ info = ptr_server->nick;
+ }
+ else if ( (strcasecmp (arg, "2") == 0) || (strcasecmp (arg, "channel") == 0) )
+ {
+ if (BUFFER_IS_CHANNEL (gui_current_window->buffer))
+ info = CHANNEL (gui_current_window->buffer)->name;
+ }
+ else if ( (strcasecmp (arg, "3") == 0) || (strcasecmp (arg, "server") == 0) )
+ {
+ if (ptr_server->name)
+ info = ptr_server->name;
+ }
+ else if ( (strcasecmp (arg, "4") == 0) || (strcasecmp (arg, "weechatdir") == 0) )
+ {
+ info = weechat_home;
+ }
+ else if ( (strcasecmp (arg, "5") == 0) || (strcasecmp (arg, "away") == 0) )
+ {
+ return Py_BuildValue ("i", SERVER(gui_current_window->buffer)->is_away);
+ }
+
+ if (info)
+ return Py_BuildValue ("s", info);
+ else
+ return Py_BuildValue ("s", "");
+ }
+
+ return Py_BuildValue ("i", 1);
+}
+
+/*
+ * initialize subroutines
+ */
+
+static
+PyMethodDef weechat_funcs[] = {
+ {"register", wee_python_register, METH_VARARGS, ""},
+ {"prnt", wee_python_print, METH_VARARGS, ""},
+ {"print_with_channel", wee_python_print_with_channel, METH_VARARGS, ""},
+ {"print_infobar", wee_python_print_infobar, METH_VARARGS, ""},
+ {"command", wee_python_command, METH_VARARGS, ""},
+ {"add_message_handler", wee_python_add_message_handler, METH_VARARGS, ""},
+ {"add_command_handler", wee_python_add_command_handler, METH_VARARGS, ""},
+ {"get_info", wee_python_get_info, METH_VARARGS, ""},
+ {NULL, NULL, 0, NULL}
+};
+
+/*
+ * wee_python_init: initialize Python interface for WeeChat
+ */
+
+void
+wee_python_init ()
+{
+
+ Py_Initialize ();
+ if (Py_IsInitialized () == 0)
+ {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _("Python error: error while launching Python interpreter\n"));
+ }
+ else
+ {
+ Py_InitModule ("weechat", weechat_funcs);
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _("Loading Python module \"weechat\"\n"));
+ }
+}
+
+/*
+ * wee_python_search: search a (loaded) Python script by name
+ */
+
+t_plugin_script *
+wee_python_search (char *name)
+{
+ t_plugin_script *ptr_python_script;
+
+ for (ptr_python_script = python_scripts; ptr_python_script;
+ ptr_python_script = ptr_python_script->next_script)
+ {
+ if (strcmp (ptr_python_script->name, name) == 0)
+ return ptr_python_script;
+ }
+
+ /* script not found */
+ return NULL;
+}
+
+/*
+ * wee_python_exec: execute a Python script
+ */
+
+int
+wee_python_exec (char *function, char *server, char *arguments)
+{
+ int len, return_code, i, j, alen;
+ char *srv, *args, *runstring;
+
+ return_code = 1;
+
+ if (arguments == NULL)
+ {
+ alen = 0;
+ args = strdup ("");
+ }
+ else
+ {
+ alen = (int) strlen (arguments);
+ args = (char *) malloc ( 2 * alen * sizeof (*args));
+ }
+
+ if (!args)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: unable to run function \"%s\"in Python script (not enough memory)\n"),
+ function);
+ return 0;
+ }
+
+ // copy arguments in args to escape double quotes
+ j = 0;
+ for (i=0; i < alen; ++i)
+ {
+ if (arguments[i] == '"' || arguments[i] == '\\')
+ {
+ args[j] = '\\';
+ ++j;
+ }
+ args[j] = arguments[i];
+ ++j;
+ }
+ args[j] = 0;
+
+ if (server == NULL)
+ srv = strdup ("");
+ else
+ srv = strdup (server);
+
+ if (!srv)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: unable to run function \"%s\"in Python script (not enough memory)\n"),
+ function);
+ free (args);
+ return 0;
+ }
+
+ len = (int) strlen (function);
+ len += (int) strlen ("(\"\",\"\")");
+ len += (int) strlen (srv);
+ len += (int) strlen (args);
+ len += 1;
+
+ runstring = (char *) malloc ( len * sizeof (*runstring));
+
+ if (runstring)
+ {
+ sprintf (runstring, "%s(\"%s\",\"%s\")", function, srv, args);
+
+ if (PyRun_SimpleString (runstring) != 0)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: error while running function \"%s\"\n"), function);
+ return_code = 0;
+ }
+ free (runstring);
+ }
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: unable to run function \"%s\"in Python script (not enough memory)\n"),
+ function);
+ return_code = 0;
+ }
+
+ free (args);
+ free (srv);
+
+ return return_code;
+}
+
+/*
+ * wee_python_load: load a Python script
+ */
+
+int
+wee_python_load (char *filename)
+{
+ FILE *fp;
+
+ /* execute Python script */
+ wee_log_printf (_("loading Python script \"%s\"\n"), filename);
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _("Loading Python script \"%s\"\n"), filename);
+
+ if ((fp = fopen (filename, "r")) == NULL)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: error while opening file \"%s\"\n"), filename);
+ return 1;
+ }
+
+ if (PyRun_SimpleFile (fp, filename) != 0)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: error while parsing file \"%s\"\n"), filename);
+ return 1;
+ }
+
+ fclose (fp);
+ return 0;
+}
+
+/*
+ * wee_python_script_free: free a Python script
+ */
+
+void
+wee_python_script_free (t_plugin_script *ptr_python_script)
+{
+ t_plugin_script *new_python_scripts;
+
+ /* remove script from list */
+ if (last_python_script == ptr_python_script)
+ last_python_script = ptr_python_script->prev_script;
+ if (ptr_python_script->prev_script)
+ {
+ (ptr_python_script->prev_script)->next_script = ptr_python_script->next_script;
+ new_python_scripts = python_scripts;
+ }
+ else
+ new_python_scripts = ptr_python_script->next_script;
+
+ if (ptr_python_script->next_script)
+ (ptr_python_script->next_script)->prev_script = ptr_python_script->prev_script;
+
+ /* free data */
+ if (ptr_python_script->name)
+ free (ptr_python_script->name);
+ if (ptr_python_script->version)
+ free (ptr_python_script->version);
+ if (ptr_python_script->shutdown_func)
+ free (ptr_python_script->shutdown_func);
+ if (ptr_python_script->description)
+ free (ptr_python_script->description);
+ free (ptr_python_script);
+ python_scripts = new_python_scripts;
+}
+
+/*
+ * wee_python_unload: unload a Python script
+ */
+
+void
+wee_python_unload (t_plugin_script *ptr_python_script)
+{
+ if (ptr_python_script)
+ {
+ wee_log_printf (_("unloading Python script \"%s\"\n"),
+ ptr_python_script->name);
+
+ /* call shutdown callback function */
+ if (ptr_python_script->shutdown_func[0])
+ wee_python_exec (ptr_python_script->shutdown_func, "", "");
+ wee_python_script_free (ptr_python_script);
+ }
+}
+
+/*
+ * wee_python_unload_all: unload all Python scripts
+ */
+
+void
+wee_python_unload_all ()
+{
+ wee_log_printf (_("unloading all Python scripts...\n"));
+ while (python_scripts)
+ wee_python_unload (python_scripts);
+}
+
+/*
+ * wee_python_end: shutdown Python interface
+ */
+
+void
+wee_python_end ()
+{
+ /* unload all scripts */
+ wee_python_unload_all ();
+
+ /* free all handlers */
+ plugin_handler_free_all_type (&plugin_msg_handlers,
+ &last_plugin_msg_handler,
+ PLUGIN_TYPE_PYTHON);
+ plugin_handler_free_all_type (&plugin_cmd_handlers,
+ &last_plugin_cmd_handler,
+ PLUGIN_TYPE_PYTHON);
+
+ Py_Finalize ();
+ if (Py_IsInitialized () != 0) {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _("Python error: error while freeing Python interpreter\n"));
+ }
+}
diff --git a/src/plugins/python/wee-python.h b/src/plugins/python/wee-python.h
new file mode 100644
index 000000000..f805c4d63
--- /dev/null
+++ b/src/plugins/python/wee-python.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2003-2005 by FlashCode <flashcode@flashtux.org>
+ * See README for License detail, AUTHORS for developers list.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+
+#ifndef __WEECHAT_PYTHON_H
+#define __WEECHAT_PYTHON_H 1
+
+#include "../plugins.h"
+
+extern void wee_python_init ();
+extern t_plugin_script *wee_python_search (char *);
+extern int wee_python_exec (char *, char *, char *);
+extern int wee_python_load (char *);
+extern void wee_python_unload (t_plugin_script *);
+extern void wee_python_unload_all ();
+extern void wee_python_end ();
+
+#endif /* wee-python.h */
diff --git a/weechat/ChangeLog b/weechat/ChangeLog
index 40aa9e2ed..a222fddec 100644
--- a/weechat/ChangeLog
+++ b/weechat/ChangeLog
@@ -1,10 +1,11 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
-ChangeLog - 2005-04-30
+ChangeLog - 2005-05-01
Version 0.1.2 (under dev!):
+ * added Python plugin support
* added nicklist scroll keys (Alt+{home/end/pgup/pgdn} or F11/F12)
* added transfer rate for DCC files
* added "-all" option for /nick command
diff --git a/weechat/TODO b/weechat/TODO
index ad6111f96..f909f5c4d 100644
--- a/weechat/TODO
+++ b/weechat/TODO
@@ -34,8 +34,8 @@ v0.1.2:
- add key bindings to config file
* Plugins:
- + Python plugin
- + "/python load" and "/python unload" commands to (un)load Python scripts
+ # Python plugin
+ # "/python load" and "/python unload" commands to (un)load Python scripts
Future versions:
diff --git a/weechat/configure.in b/weechat/configure.in
index 5c4192447..54dec8e7b 100644
--- a/weechat/configure.in
+++ b/weechat/configure.in
@@ -68,6 +68,7 @@ AC_CHECK_FUNCS([gethostbyname gethostname getsockname gettimeofday inet_ntoa mem
AH_VERBATIM([PLUGINS], [#undef PLUGINS])
AH_VERBATIM([PLUGIN_PERL], [#undef PLUGIN_PERL])
+AH_VERBATIM([PLUGIN_PYTHON], [#undef PLUGIN_PYTHON])
AH_VERBATIM([DEBUG], [#undef DEBUG])
AC_ARG_ENABLE(ncurses, [ --disable-ncurses Turn off ncurses interface (default=auto)],,enable_ncurses=yes)
@@ -75,11 +76,10 @@ AC_ARG_ENABLE(wxwidgets,[ --enable-wxwidgets Turn on WxWidgets interface (
AC_ARG_ENABLE(gtk, [ --enable-gtk Turn on Gtk+ interface (default=no)],enable_gtk=yes,enable_gtk=no)
AC_ARG_ENABLE(qt, [ --enable-qt Turn on Qt interface (default=no)],enable_qt=yes,enable_qt=no)
AC_ARG_ENABLE(perl, [ --enable-perl Turn on Perl plugins (default=no)],enable_perl=yes,enable_perl=no)
+AC_ARG_ENABLE(python, [ --enable-python Turn on Python plugins (default=no)],enable_python=yes,enable_python=no)
AC_ARG_WITH(debug, [ --with-debug Debugging: 0=no debug, 1=debug compilation, 2=debug compilation + verbose msgs (default=0)],debug=$withval,debug=0)
enable_plugins="no"
-enable_python="no"
-PYTHON_CFLAGS=
enable_ruby="no"
RUBY_CFLAGS=
@@ -88,7 +88,7 @@ AM_CONDITIONAL(GUI_WXWIDGETS, test "$enable_wxwidgets" = "yes")
AM_CONDITIONAL(GUI_GTK, test "$enable_gtk" = "yes")
AM_CONDITIONAL(GUI_QT, test "$enable_qt" = "yes")
AM_CONDITIONAL(PLUGIN_PERL, test "$enable_perl" = "yes")
-# AM_CONDITIONAL(PLUGIN_PYTHON, test "$enable_python" = "yes")
+AM_CONDITIONAL(PLUGIN_PYTHON, test "$enable_python" = "yes")
# AM_CONDITIONAL(PLUGIN_RUBY, test "$enable_ruby" = "yes")
if test "x$enable_ncurses" = "xyes" ; then
@@ -141,6 +141,15 @@ if test "x$enable_perl" = "xyes" ; then
AC_DEFINE(PLUGIN_PERL)
fi
+if test "x$enable_python" = "xyes" ; then
+ enable_plugins="yes"
+ PYTHON_CFLAGS=`python -c "import distutils.sysconfig,string; print ' -I' + distutils.sysconfig.get_config_var('CONFINCLUDEPY')"`
+ PYTHON_LFLAGS=`python -c "import distutils.sysconfig,string; print string.join(distutils.sysconfig.get_config_vars('LINKFORSHARED', 'BLDLIBRARY', 'SHLIBS'))"`
+ PLUGINS_LIBS="$PLUGINS_LIBS ../../plugins/python/lib_weechat_python.a $PYTHON_LFLAGS"
+ AC_SUBST(PYTHON_CFLAGS)
+ AC_DEFINE(PLUGIN_PYTHON)
+fi
+
if test "x$enable_plugins" = "xyes" ; then
AC_DEFINE(PLUGINS)
fi
@@ -171,6 +180,7 @@ AC_OUTPUT([Makefile
src/irc/Makefile
src/plugins/Makefile
src/plugins/perl/Makefile
+ src/plugins/python/Makefile
src/gui/Makefile
src/gui/curses/Makefile
src/gui/wxwidgets/Makefile
diff --git a/weechat/po/POTFILES.in b/weechat/po/POTFILES.in
index c39199f8e..cfd8fb9bd 100644
--- a/weechat/po/POTFILES.in
+++ b/weechat/po/POTFILES.in
@@ -9,6 +9,8 @@
./src/irc/irc.h
./src/plugins/perl/wee-perl.c
./src/plugins/perl/wee-perl.h
+./src/plugins/python/wee-python.c
+./src/plugins/python/wee-python.h
./src/plugins/plugins.c
./src/plugins/plugins.h
./src/gui/curses/gui-input.c
diff --git a/weechat/po/es.po b/weechat/po/es.po
index 36f0a7ac0..ac980c3df 100644
--- a/weechat/po/es.po
+++ b/weechat/po/es.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.2-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-04-30 19:48+0200\n"
-"PO-Revision-Date: 2005-04-30 19:49+0200\n"
+"POT-Creation-Date: 2005-05-01 20:47+0200\n"
+"PO-Revision-Date: 2005-05-01 20:48+0200\n"
"Last-Translator: Roberto González Cardenete <robert.glez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -1251,7 +1251,7 @@ msgstr "no es posible cambiar el modo para el resto de usuarios"
msgid "whois (secure connection)"
msgstr ""
-#: src/irc/irc-display.c:154 src/common/command.c:812
+#: src/irc/irc-display.c:154 src/common/command.c:817
msgid "Server: "
msgstr "Servidor: "
@@ -1300,7 +1300,8 @@ msgstr ""
#: src/irc/irc-send.c:345 src/irc/irc-send.c:357 src/irc/irc-send.c:375
#: src/irc/irc-send.c:996 src/irc/irc-send.c:1089 src/irc/irc-send.c:1609
-#: src/common/command.c:1124 src/common/command.c:1407
+#: src/common/command.c:1129 src/common/command.c:1411
+#: src/common/command.c:1552
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr "%s número de argumentos incorrecto para el comando \"%s\"\n"
@@ -1960,12 +1961,138 @@ msgstr "descarga del Perl script \"%s\"\n"
msgid "unloading all Perl scripts...\n"
msgstr "descargando todos los Perl scripts...\n"
-#: src/plugins/plugins.c:89
+#: src/plugins/python/wee-python.c:61 src/plugins/python/wee-python.c:170
+msgid ""
+"Python error: wrong parameters for 'print_with_channel' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python "
+"'print_with_channel'\n"
+
+#: src/plugins/python/wee-python.c:81
+#, c-format
+msgid ""
+"Python error: unable to register Python script \"%s\" (another script "
+"already exists with this name)\n"
+msgstr ""
+"Error de Python: no ha sido posible registrar el Python script \"%s\" (ya "
+"existe otro script con ese nombre)\n"
+
+#: src/plugins/python/wee-python.c:105
+#, c-format
+msgid "registered Python script: \"%s\", version %s (%s)\n"
+msgstr "Python script registrado: \"%s\", versión %s (%s)\n"
+
+#: src/plugins/python/wee-python.c:112
+#, c-format
+msgid "%s unable to load Python script \"%s\" (not enough memory)\n"
+msgstr ""
+"%s no ha sido posible cargar el Python script \"%s\" (memoria insuficiente)\n"
+
+#: src/plugins/python/wee-python.c:137
+msgid "Python error: wrong parameters for 'print' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python 'print'\n"
+
+#: src/plugins/python/wee-python.c:222
+msgid "Python error: wrong parameters for 'print_infobar' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python "
+"'print_infobar'\n"
+
+#: src/plugins/python/wee-python.c:249
+msgid "Python error: wrong parameters for 'command' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python 'command'\n"
+
+#: src/plugins/python/wee-python.c:268
+msgid "Python error: server not found for 'command' Python function\n"
+msgstr ""
+"Error de Python: servidor no encontrado para la función Python 'command'\n"
+
+#: src/plugins/python/wee-python.c:303
+msgid ""
+"Python error: wrong parameters for 'add_message_handler' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python "
+"'add_message_handler'\n"
+
+#: src/plugins/python/wee-python.c:332
+msgid ""
+"Python error: wrong parameters for 'add_command_handler' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python "
+"'add_command_handler'\n"
+
+#: src/plugins/python/wee-python.c:371
+msgid "Python error: wrong parameters for 'get_info' Python function\n"
+msgstr ""
+"Error de Python: parámetros incorrectos para la función Python 'get_info'\n"
+
+#: src/plugins/python/wee-python.c:390
+msgid "Python error: server not found for 'get_info' Python function\n"
+msgstr ""
+"Error de Python: servidor no encontrado para la función Python 'get_info'\n"
+
+#: src/plugins/python/wee-python.c:462
+msgid "Python error: error while launching Python interpreter\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:468
+msgid "Loading Python module \"weechat\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:519 src/plugins/python/wee-python.c:547
+#: src/plugins/python/wee-python.c:578
+#, c-format
+msgid ""
+"Python error: unable to run function \"%s\"in Python script (not enough "
+"memory)\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:569
+#, c-format
+msgid "Python error: error while running function \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:599
+#, c-format
+msgid "loading Python script \"%s\"\n"
+msgstr "carga del Python script \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:601
+#, c-format
+msgid "Loading Python script \"%s\"\n"
+msgstr "Cargando Python script \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:607
+#, c-format
+msgid "Python error: error while opening file \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:615
+#, c-format
+msgid "Python error: error while parsing file \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:668
+#, c-format
+msgid "unloading Python script \"%s\"\n"
+msgstr "descarga del Python script \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:685
+msgid "unloading all Python scripts...\n"
+msgstr "descargando todos los Python scripts...\n"
+
+#: src/plugins/python/wee-python.c:711
+msgid "Python error: error while freeing Python interpreter\n"
+msgstr ""
+
+#: src/plugins/plugins.c:93
#, c-format
msgid "auto-loading %s script: %s%s%s\n"
msgstr "carga automática del script %s : %s%s%s\n"
-#: src/plugins/plugins.c:200
+#: src/plugins/plugins.c:211
#, c-format
msgid "%s unable to add handler for \"%s\" message (not enough memory)\n"
msgstr ""
@@ -2164,7 +2291,7 @@ msgstr "comando: nombre de un comando de Weechat ó de IRC"
msgid "list/load/unload Perl scripts"
msgstr "lista/carga/descarga de los Perl scripts"
-#: src/common/command.c:76
+#: src/common/command.c:76 src/common/command.c:81
msgid "[load filename] | [autoload] | [unload]"
msgstr "[load fichero] | [autoload] | [unload]"
@@ -2177,10 +2304,22 @@ msgstr ""
"Sin argumentos, el comando /perl lista todos los Perl scripts cargados."
#: src/common/command.c:80
+msgid "list/load/unload Python scripts"
+msgstr "lista/carga/descarga de los Python scripts"
+
+#: src/common/command.c:82
+msgid ""
+"filename: Python script (file) to load\n"
+"Without argument, /python command lists all loaded Python scripts."
+msgstr ""
+"fichero: Python script (archivo) a cargar\n"
+"Sin argumentos, el comando /python lista todos los Python scripts cargados."
+
+#: src/common/command.c:85
msgid "list, add or remove servers"
msgstr "lista, añade o elimina servidores"
-#: src/common/command.c:81
+#: src/common/command.c:86
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-pwd password] [-"
"nicks nick1 [nick2 [nick3]]] [-username username] [-realname realname] [-"
@@ -2191,7 +2330,7 @@ msgstr ""
"nombre de usuario] [-realname nombre_real] [-command comando] [-autojoin "
"canal[,canal]] ] | [del nombre_de_servidor]"
-#: src/common/command.c:86
+#: src/common/command.c:91
msgid ""
"servername: server name, for internal & display use\n"
"hostname: name or IP address of server\n"
@@ -2213,27 +2352,27 @@ msgstr ""
"nombre_de_usuario: nombre de usuario\n"
"nombre_real: nombre real del usuario"
-#: src/common/command.c:96
+#: src/common/command.c:101
msgid "save config to disk"
msgstr "guardar configuración a disco"
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "[file]"
msgstr "[archivo]"
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "file: filename for writing config"
msgstr "archivo: fichero en el que guardar la configuración"
-#: src/common/command.c:99
+#: src/common/command.c:104
msgid "set config parameters"
msgstr "modificar parámetros de configuración"
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid "[option[=value]]"
msgstr "[opción[=valor]]"
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid ""
"option: name of an option\n"
"value: value for option"
@@ -2241,27 +2380,27 @@ msgstr ""
"opción: nombre de una opción\n"
"valor: valor para la opción"
-#: src/common/command.c:102
+#: src/common/command.c:107
msgid "remove an alias"
msgstr "eliminar un alias"
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name"
msgstr "alias"
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name: name of alias to remove"
msgstr "alias: nombre del alias a suprimir"
-#: src/common/command.c:105
+#: src/common/command.c:110
msgid "manage windows"
msgstr "gestión de ventanas"
-#: src/common/command.c:106
+#: src/common/command.c:111
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr "[list | splith | splitv | [merge [down | up | left | right | all]]]"
-#: src/common/command.c:108
+#: src/common/command.c:113
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2274,29 +2413,29 @@ msgstr ""
"splitv: dividir la ventana actual verticalmente\n"
"merge: fusionar una ventana con otra"
-#: src/common/command.c:254
+#: src/common/command.c:259
#, c-format
msgid "%s alias or command \"%s\" already exists!\n"
msgstr "%s ¡el alias o el comando \"%s\" ya existe!\n"
-#: src/common/command.c:264
+#: src/common/command.c:269
#, c-format
msgid "%s alias cannot run another alias!\n"
msgstr "%s ¡el alias no puede ejecutar otro alias!\n"
-#: src/common/command.c:271
+#: src/common/command.c:276
#, c-format
msgid "%s target command \"%s\" does not exist!\n"
msgstr "%s ¡el comando objetivo \"%s\" no existe!\n"
-#: src/common/command.c:479
+#: src/common/command.c:484
#, c-format
msgid "%s wrong argument count for %s command \"%s\" (expected: %d arg%s)\n"
msgstr ""
"%s número de argumentos incorrecto para el comando %s \"%s\" (esperado: %d "
"parámetro%s)\n"
-#: src/common/command.c:491
+#: src/common/command.c:496
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
@@ -2305,19 +2444,19 @@ msgstr ""
"%s número de argumentos incorrecto para el comando %s \"%s\" (esperado: "
"entre %d y %d parámetro%s)\n"
-#: src/common/command.c:513 src/common/command.c:583
+#: src/common/command.c:518 src/common/command.c:588
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr "%s el comando \"%s\" ha fallado\n"
-#: src/common/command.c:541
+#: src/common/command.c:546
#, c-format
msgid "%s wrong argument count for IRC command \"%s\" (expected: %d arg%s)\n"
msgstr ""
"%s número de argumentos incorrecto para el comando IRC \"%s\" (esperado: %d "
"parámetro%s)\n"
-#: src/common/command.c:553
+#: src/common/command.c:558
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
@@ -2326,178 +2465,180 @@ msgstr ""
"%s número de argumentos incorrecto para el comando IRC \"%s\" (esperado: "
"entre %d y %d parámetro%s)\n"
-#: src/common/command.c:568
+#: src/common/command.c:573
#, c-format
msgid "%s command \"%s\" needs a server connection!\n"
msgstr "%s ¡el comando \"%s\" requiere una conexión a servidor!\n"
-#: src/common/command.c:632
+#: src/common/command.c:637
#, c-format
msgid "%s unknown command \"%s\" (type /help for help)\n"
msgstr "%s comando \"%s\" desconocido (escriba /help para la ayuda)\n"
-#: src/common/command.c:711
+#: src/common/command.c:716
#, c-format
msgid "%s cannot find nick for sending message\n"
msgstr "%s no ha sido posible encontrar el usuario al que enviar el mensaje\n"
-#: src/common/command.c:720
+#: src/common/command.c:725
msgid "This window is not a channel!\n"
msgstr "¡Esta ventana no es un canal!\n"
-#: src/common/command.c:748 src/common/command.c:772 src/common/command.c:876
+#: src/common/command.c:753 src/common/command.c:777 src/common/command.c:881
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr "%s faltan argumentos para el comando \"%s\"\n"
-#: src/common/command.c:757
+#: src/common/command.c:762
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr "Alias \"%s\" => \"%s\" creado\n"
-#: src/common/command.c:763
+#: src/common/command.c:768
#, c-format
msgid "Failed to create alias \"%s\" => \"%s\" (not enough memory)\n"
msgstr ""
"No ha sido posible crear el alias \"%s\" => \"%s\" (no hay suficiente "
"memoria)\n"
-#: src/common/command.c:783
+#: src/common/command.c:788
msgid "List of aliases:\n"
msgstr "Lista de alias:\n"
-#: src/common/command.c:795
+#: src/common/command.c:800
msgid "No alias defined.\n"
msgstr "Ningún alias definido.\n"
-#: src/common/command.c:818
+#: src/common/command.c:823
msgid "Channel: "
msgstr "Canal: "
-#: src/common/command.c:821 src/common/command.c:831
+#: src/common/command.c:826 src/common/command.c:836
msgid " (server: "
msgstr " (servidor: "
-#: src/common/command.c:828
+#: src/common/command.c:833
msgid "Private with: "
msgstr "Privado con: "
-#: src/common/command.c:856
+#: src/common/command.c:861
msgid "Opened buffers:\n"
msgstr "Búfers abiertos:\n"
-#: src/common/command.c:899 src/common/command.c:1026
+#: src/common/command.c:904 src/common/command.c:1031
#, c-format
msgid "%s incorrect buffer number\n"
msgstr "%s número de búfer incorrecto\n"
-#: src/common/command.c:913
+#: src/common/command.c:918
#, c-format
msgid "%s can not close the single buffer\n"
msgstr "%s no es posible cerrar el único búfer\n"
-#: src/common/command.c:923
+#: src/common/command.c:928
#, c-format
msgid "%s can not close server buffer while channels are opened\n"
msgstr ""
"%s no se puede cerrar el búfer de servidor mientras haya canales abiertos\n"
-#: src/common/command.c:962
+#: src/common/command.c:967
msgid "Notify levels: "
msgstr "Niveles de notificación: "
-#: src/common/command.c:989 src/common/command.c:999
+#: src/common/command.c:994 src/common/command.c:1004
#, c-format
msgid "%s incorrect notify level (must be between 0 and 3)\n"
msgstr "%s nivel de notificación incorrecto (debe estar entre 0 y 3)\n"
-#: src/common/command.c:1017
+#: src/common/command.c:1022
#, c-format
msgid "%s buffer \"%s\" not found for \"%s\" command\n"
msgstr "%s búfer \"%s\" no encontrado para el comando \"%s\"\n"
-#: src/common/command.c:1051
+#: src/common/command.c:1056
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr "parámetro desconocido \"%s\" para el comando \"%s\"\n"
-#: src/common/command.c:1081
+#: src/common/command.c:1086
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr "%s ya conectado al servidor \"%s\"!\n"
-#: src/common/command.c:1089
+#: src/common/command.c:1094
#, c-format
msgid "%s currently connecting to server \"%s\"!\n"
msgstr "%s actualmente conectando al servidor \"%s\"!\n"
-#: src/common/command.c:1107 src/common/command.c:1182
+#: src/common/command.c:1112 src/common/command.c:1187
#, c-format
msgid "%s server not found\n"
msgstr "%s servidor no encontrado\n"
-#: src/common/command.c:1137 src/common/command.c:1400
-#: src/common/command.c:2097 src/common/command.c:2109
+#: src/common/command.c:1142 src/common/command.c:1404
+#: src/common/command.c:1545 src/common/command.c:2236
+#: src/common/command.c:2248
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr "%s opción desconocida para el comando \"%s\"\n"
-#: src/common/command.c:1166
+#: src/common/command.c:1171
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr "%s ¡no conectado al servidor \"%s\"!\n"
-#: src/common/command.c:1174
+#: src/common/command.c:1179
msgid "Auto-reconnection is cancelled\n"
msgstr "La reconexión automática está anulada\n"
-#: src/common/command.c:1200 src/common/weechat.c:265
+#: src/common/command.c:1205 src/common/weechat.c:265
#, c-format
msgid "%s internal commands:\n"
msgstr "Comandos internos %s :\n"
-#: src/common/command.c:1209 src/common/weechat.c:285
+#: src/common/command.c:1214 src/common/weechat.c:285
#, c-format
msgid "IRC commands:\n"
msgstr "Comandos IRC :\n"
-#: src/common/command.c:1276
+#: src/common/command.c:1281
#, c-format
msgid "No help available, \"%s\" is an unknown command\n"
msgstr "No hay ayuda disponible, el comando \"%s\" es desconocido\n"
-#: src/common/command.c:1301
+#: src/common/command.c:1305
msgid "Registered Perl scripts:\n"
msgstr "Perl scripts registrados:\n"
-#: src/common/command.c:1318 src/common/command.c:1340
-#: src/common/command.c:1362
+#: src/common/command.c:1322 src/common/command.c:1344
+#: src/common/command.c:1366 src/common/command.c:1463
+#: src/common/command.c:1485 src/common/command.c:1507
msgid " (none)\n"
msgstr " (ninguno)\n"
-#: src/common/command.c:1323
+#: src/common/command.c:1327
msgid "Perl message handlers:\n"
msgstr "Funciones Perl para mensajes:\n"
-#: src/common/command.c:1332
+#: src/common/command.c:1336
#, c-format
msgid " IRC(%s) => Perl(%s)\n"
msgstr " IRC(%s) => Perl(%s)\n"
-#: src/common/command.c:1345
+#: src/common/command.c:1349
msgid "Perl command handlers:\n"
msgstr "Comandos Perl :\n"
-#: src/common/command.c:1354
+#: src/common/command.c:1358
#, c-format
msgid " Command /%s => Perl(%s)\n"
msgstr " Comando /%s => Perl(%s)\n"
-#: src/common/command.c:1374
+#: src/common/command.c:1378
msgid "Perl scripts unloaded\n"
msgstr "Perl scripts descargados\n"
-#: src/common/command.c:1413
+#: src/common/command.c:1417
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
@@ -2506,32 +2647,68 @@ msgstr ""
"Por favor, recompile WeeChat con la opción \"--enable-perl\" para el "
"script ./configure\n"
-#: src/common/command.c:1467
+#: src/common/command.c:1446
+msgid "Registered Python scripts:\n"
+msgstr "Python scripts registrados:\n"
+
+#: src/common/command.c:1468
+msgid "Python message handlers:\n"
+msgstr "Funciones Python para mensajes:\n"
+
+#: src/common/command.c:1477
+#, c-format
+msgid " IRC(%s) => Python(%s)\n"
+msgstr " IRC(%s) => Python(%s)\n"
+
+#: src/common/command.c:1490
+msgid "Python command handlers:\n"
+msgstr "Comandos Python :\n"
+
+#: src/common/command.c:1499
+#, c-format
+msgid " Command /%s => Python(%s)\n"
+msgstr " Comando /%s => Python(%s)\n"
+
+#: src/common/command.c:1519
+msgid "Python scripts unloaded\n"
+msgstr "Python scripts descargados\n"
+
+#: src/common/command.c:1558
+msgid ""
+"WeeChat was build without Python support.\n"
+"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
+"script\n"
+msgstr ""
+"WeeChat ha sido compilado sin soporte para Python.\n"
+"Por favor, recompile WeeChat con la opción \"--enable-python\" para el "
+"script ./configure\n"
+
+#: src/common/command.c:1606
msgid "No server.\n"
msgstr "Ningún servidor.\n"
-#: src/common/command.c:1478
+#: src/common/command.c:1617
#, c-format
msgid "Server '%s' not found.\n"
msgstr "Servidor '%s' no encontrado.\n"
-#: src/common/command.c:1490
+#: src/common/command.c:1629
#, c-format
msgid "%s missing servername for \"%s\" command\n"
msgstr "%s falta el nombre de servidor para el comando \"%s\"\n"
-#: src/common/command.c:1498
+#: src/common/command.c:1637
#, c-format
msgid "%s too much arguments for \"%s\" command, ignoring arguments\n"
msgstr ""
"%s demasiados argumentos para el comando \"%s\", ignorando parámetros\n"
-#: src/common/command.c:1517
+#: src/common/command.c:1656
#, c-format
msgid "%s server \"%s\" not found for \"%s\" command\n"
msgstr "%s servidor \"%s\" no encontrado para el comando \"%s\"\n"
-#: src/common/command.c:1525
+#: src/common/command.c:1664
#, c-format
msgid ""
"%s you can not delete server \"%s\" because you are connected to. Try /"
@@ -2540,108 +2717,108 @@ msgstr ""
"%s usted no puede eliminar el servidor \"%s\" ya que está usted conectado a "
"él. Pruebe /disconnect %s antes.\n"
-#: src/common/command.c:1541 src/common/command.c:1682
+#: src/common/command.c:1680 src/common/command.c:1821
msgid "Server"
msgstr "Servidor"
-#: src/common/command.c:1544
+#: src/common/command.c:1683
msgid "has been deleted\n"
msgstr "ha sido eliminado\n"
-#: src/common/command.c:1559
+#: src/common/command.c:1698
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr "%s faltan parámetros para el comando \"%s\"\n"
-#: src/common/command.c:1569
+#: src/common/command.c:1708
#, c-format
msgid "%s server \"%s\" already exists, can't create it!\n"
msgstr "%s el servidor \"%s\" ya existe, ¡no se puede crear!\n"
-#: src/common/command.c:1594 src/common/command.c:1622
-#: src/common/command.c:1635 src/common/command.c:1661
+#: src/common/command.c:1733 src/common/command.c:1761
+#: src/common/command.c:1774 src/common/command.c:1800
#, c-format
msgid "%s missing password for \"%s\" parameter\n"
msgstr "%s falta contraseña para el comando \"%s\"\n"
-#: src/common/command.c:1607
+#: src/common/command.c:1746
#, c-format
msgid "%s missing nick(s) for \"%s\" parameter\n"
msgstr "%s falta(n) usuario(s) para el parámetro \"%s\"\n"
-#: src/common/command.c:1648
+#: src/common/command.c:1787
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr "%s falta comando para el parámetro \"%s\"\n"
-#: src/common/command.c:1685
+#: src/common/command.c:1824
msgid "created\n"
msgstr "creado\n"
-#: src/common/command.c:1691
+#: src/common/command.c:1830
#, c-format
msgid "%s unable to create server\n"
msgstr "%s no es posible crear el servidor\n"
-#: src/common/command.c:1746
+#: src/common/command.c:1885
msgid "(unknown)"
msgstr "(desconocido)"
-#: src/common/command.c:1769
+#: src/common/command.c:1908
msgid "(password hidden) "
msgstr "(contraseña oculta) "
-#: src/common/command.c:1833
+#: src/common/command.c:1972
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr "%s servidor \"%s\" no encontrado\n"
-#: src/common/command.c:1864 src/common/command.c:1910
+#: src/common/command.c:2003 src/common/command.c:2049
#, c-format
msgid "%s config option \"%s\" not found\n"
msgstr "%s opción de configuración \"%s\" no encontrada\n"
-#: src/common/command.c:1869 src/common/command.c:1902
+#: src/common/command.c:2008 src/common/command.c:2041
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr "%s valor incorrecto para la opción \"%s\"\n"
-#: src/common/command.c:1885
+#: src/common/command.c:2024
#, c-format
msgid "%s option \"%s\" can not be changed while WeeChat is running\n"
msgstr ""
"%s la opción \"%s\" no puede ser modificada mientras WeeChat esté en "
"ejecución\n"
-#: src/common/command.c:1983
+#: src/common/command.c:2122
#, c-format
msgid "No config option found with \"%s\"\n"
msgstr "Ninguna opción de configuración encontrada con \"%s\"\n"
-#: src/common/command.c:1986
+#: src/common/command.c:2125
msgid "No config option found\n"
msgstr "Ninguna opción de configuración encontrada\n"
-#: src/common/command.c:1992
+#: src/common/command.c:2131
#, c-format
msgid "config option(s) found with \"%s\"\n"
msgstr "opción/opciones de configuración encontrada(s) con \"%s\"\n"
-#: src/common/command.c:1995
+#: src/common/command.c:2134
msgid "config option(s) found\n"
msgstr "opción/opciones de configuración encontrada(s)\n"
-#: src/common/command.c:2015
+#: src/common/command.c:2154
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr "%s alias o comando \"%s\" no encontrado\n"
-#: src/common/command.c:2025
+#: src/common/command.c:2164
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr "Alias \"%s\" eliminado\n"
-#: src/common/command.c:2045
+#: src/common/command.c:2184
msgid "Opened windows:\n"
msgstr "Ventanas abiertas:\n"
@@ -3735,6 +3912,3 @@ msgstr ""
#: src/common/weeconfig.c:1564
msgid "saving config to disk\n"
msgstr "guardar configuración a disco\n"
-
-#~ msgid "nickname: new nickname for current IRC server"
-#~ msgstr "usuario: nuevo nombre de usuario para el servidor IRC actual"
diff --git a/weechat/po/fr.po b/weechat/po/fr.po
index dfd6250a5..999a8c412 100644
--- a/weechat/po/fr.po
+++ b/weechat/po/fr.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.2-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-04-30 19:48+0200\n"
-"PO-Revision-Date: 2005-04-30 19:49+0200\n"
+"POT-Creation-Date: 2005-05-01 20:47+0200\n"
+"PO-Revision-Date: 2005-05-01 20:47+0200\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -1252,7 +1252,7 @@ msgstr "impossible de changer le mode pour les autres utilisateurs"
msgid "whois (secure connection)"
msgstr "qui est (connexion sécurisée)"
-#: src/irc/irc-display.c:154 src/common/command.c:812
+#: src/irc/irc-display.c:154 src/common/command.c:817
msgid "Server: "
msgstr "Serveur: "
@@ -1302,7 +1302,8 @@ msgstr ""
#: src/irc/irc-send.c:345 src/irc/irc-send.c:357 src/irc/irc-send.c:375
#: src/irc/irc-send.c:996 src/irc/irc-send.c:1089 src/irc/irc-send.c:1609
-#: src/common/command.c:1124 src/common/command.c:1407
+#: src/common/command.c:1129 src/common/command.c:1411
+#: src/common/command.c:1552
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr "%s nombre de paramètres erroné pour la commande \"%s\"\n"
@@ -1959,12 +1960,134 @@ msgstr "déchargement du script Perl \"%s\"\n"
msgid "unloading all Perl scripts...\n"
msgstr "déchargement de tous les scripts Perl...\n"
-#: src/plugins/plugins.c:89
+#: src/plugins/python/wee-python.c:61 src/plugins/python/wee-python.c:170
+msgid ""
+"Python error: wrong parameters for 'print_with_channel' Python function\n"
+msgstr ""
+"Erreur Python: mauvais paramètres pour la fonction Python "
+"'print_with_channel'\n"
+
+#: src/plugins/python/wee-python.c:81
+#, c-format
+msgid ""
+"Python error: unable to register Python script \"%s\" (another script "
+"already exists with this name)\n"
+msgstr ""
+"Erreur Python: impossible d'enregistrer le script Python \"%s\" (un autre "
+"script existe déjà avec ce nom)\n"
+
+#: src/plugins/python/wee-python.c:105
+#, c-format
+msgid "registered Python script: \"%s\", version %s (%s)\n"
+msgstr "script Python enregistré: \"%s\", version %s (%s)\n"
+
+#: src/plugins/python/wee-python.c:112
+#, c-format
+msgid "%s unable to load Python script \"%s\" (not enough memory)\n"
+msgstr ""
+"%s impossible de charger le script Python \"%s\" (mémoire insuffisante)\n"
+
+#: src/plugins/python/wee-python.c:137
+msgid "Python error: wrong parameters for 'print' Python function\n"
+msgstr "Erreur Python: mauvais paramètres pour la fonction Python 'print'\n"
+
+#: src/plugins/python/wee-python.c:222
+msgid "Python error: wrong parameters for 'print_infobar' Python function\n"
+msgstr ""
+"Erreur Python: mauvais paramètres pour la fonction Python 'print_infobar'\n"
+
+#: src/plugins/python/wee-python.c:249
+msgid "Python error: wrong parameters for 'command' Python function\n"
+msgstr "Erreur Python: mauvais paramètres pour la fonction Python 'command'\n"
+
+#: src/plugins/python/wee-python.c:268
+msgid "Python error: server not found for 'command' Python function\n"
+msgstr "Erreur Python: serveur non trouvé pour la fonction Python 'command'\n"
+
+#: src/plugins/python/wee-python.c:303
+msgid ""
+"Python error: wrong parameters for 'add_message_handler' Python function\n"
+msgstr ""
+"Erreur Python: mauvais paramètres pour la fonction Python "
+"'add_message_handler'\n"
+
+#: src/plugins/python/wee-python.c:332
+msgid ""
+"Python error: wrong parameters for 'add_command_handler' Python function\n"
+msgstr ""
+"Erreur Python: mauvais paramètres pour la fonction Python "
+"'add_command_handler'\n"
+
+#: src/plugins/python/wee-python.c:371
+msgid "Python error: wrong parameters for 'get_info' Python function\n"
+msgstr "Erreur Python: mauvais paramètres pour la fonction Python 'get_info'\n"
+
+#: src/plugins/python/wee-python.c:390
+msgid "Python error: server not found for 'get_info' Python function\n"
+msgstr "Erreur Python: serveur non trouvé pour la fonction Python 'get_info'\n"
+
+#: src/plugins/python/wee-python.c:462
+msgid "Python error: error while launching Python interpreter\n"
+msgstr "Erreur Python: erreur pendant le chargement de l'interpréteur Python\n"
+
+#: src/plugins/python/wee-python.c:468
+msgid "Loading Python module \"weechat\"\n"
+msgstr "Chargement du module Python \"weechat\"\n"
+
+#: src/plugins/python/wee-python.c:519 src/plugins/python/wee-python.c:547
+#: src/plugins/python/wee-python.c:578
+#, c-format
+msgid ""
+"Python error: unable to run function \"%s\"in Python script (not enough "
+"memory)\n"
+msgstr ""
+"Erreur Python: impossible de charger le script Python \"%s\" (mémoire "
+"insuffisante)\n"
+
+#: src/plugins/python/wee-python.c:569
+#, c-format
+msgid "Python error: error while running function \"%s\"\n"
+msgstr "Erreur Python: erreur dans la fonction \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:599
+#, c-format
+msgid "loading Python script \"%s\"\n"
+msgstr "chargement du script Python \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:601
+#, c-format
+msgid "Loading Python script \"%s\"\n"
+msgstr "Chargement du script Python \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:607
+#, c-format
+msgid "Python error: error while opening file \"%s\"\n"
+msgstr "Erreur Python: erreur à l'ouverture du fichier \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:615
+#, c-format
+msgid "Python error: error while parsing file \"%s\"\n"
+msgstr "Erreur Python: erreur en analysant le fichier \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:668
+#, c-format
+msgid "unloading Python script \"%s\"\n"
+msgstr "déchargement du script Python \"%s\"\n"
+
+#: src/plugins/python/wee-python.c:685
+msgid "unloading all Python scripts...\n"
+msgstr "déchargement de tous les scripts Python...\n"
+
+#: src/plugins/python/wee-python.c:711
+msgid "Python error: error while freeing Python interpreter\n"
+msgstr "Erreur Python: impossible de libérer l'interpréteur Python\n"
+
+#: src/plugins/plugins.c:93
#, c-format
msgid "auto-loading %s script: %s%s%s\n"
msgstr "chargement automatique du script %s : %s%s%s\n"
-#: src/plugins/plugins.c:200
+#: src/plugins/plugins.c:211
#, c-format
msgid "%s unable to add handler for \"%s\" message (not enough memory)\n"
msgstr ""
@@ -2162,7 +2285,7 @@ msgstr "commande: nom d'une commande WeeChat ou IRC"
msgid "list/load/unload Perl scripts"
msgstr "liste/charge/décharge des scripts Perl"
-#: src/common/command.c:76
+#: src/common/command.c:76 src/common/command.c:81
msgid "[load filename] | [autoload] | [unload]"
msgstr "[load fichier] | [autoload] | [unload]"
@@ -2175,10 +2298,22 @@ msgstr ""
"Sans paramètre, la commande /perl liste tous les scripts Perl chargés."
#: src/common/command.c:80
+msgid "list/load/unload Python scripts"
+msgstr "liste/charge/décharge des scripts Python"
+
+#: src/common/command.c:82
+msgid ""
+"filename: Python script (file) to load\n"
+"Without argument, /python command lists all loaded Python scripts."
+msgstr ""
+"fichier: script Python (fichier) à charger\n"
+"Sans paramètre, la commande /python liste tous les scripts Python chargés."
+
+#: src/common/command.c:85
msgid "list, add or remove servers"
msgstr "liste, ajoute ou retire des serveurs"
-#: src/common/command.c:81
+#: src/common/command.c:86
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-pwd password] [-"
"nicks nick1 [nick2 [nick3]]] [-username username] [-realname realname] [-"
@@ -2189,7 +2324,7 @@ msgstr ""
"nom_utilisateur] [-realname nom_réel] [-command commande] [-autojoin canal[,"
"canal]] ] | [del nom_serveur]"
-#: src/common/command.c:86
+#: src/common/command.c:91
msgid ""
"servername: server name, for internal & display use\n"
"hostname: name or IP address of server\n"
@@ -2211,27 +2346,27 @@ msgstr ""
"nom_utilisateur: nom d'utilisateur\n"
"nom_réel: nom réel de l'utilisateur"
-#: src/common/command.c:96
+#: src/common/command.c:101
msgid "save config to disk"
msgstr "sauvegarder la configuration sur disque"
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "[file]"
msgstr "[fichier]"
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "file: filename for writing config"
msgstr "fichier: fichier pour sauvegarder la configuration"
-#: src/common/command.c:99
+#: src/common/command.c:104
msgid "set config parameters"
msgstr "modifier des paramètres de configuration"
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid "[option[=value]]"
msgstr "[option[=valeur]]"
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid ""
"option: name of an option\n"
"value: value for option"
@@ -2239,27 +2374,27 @@ msgstr ""
"option: nom d'une option\n"
"valeur: valeur pour l'option"
-#: src/common/command.c:102
+#: src/common/command.c:107
msgid "remove an alias"
msgstr "supprimer un alias"
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name"
msgstr "nom_alias"
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name: name of alias to remove"
msgstr "nom_alias: nom de l'alias à supprimer"
-#: src/common/command.c:105
+#: src/common/command.c:110
msgid "manage windows"
msgstr "gestion des fenêtres"
-#: src/common/command.c:106
+#: src/common/command.c:111
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr "[list | splith | splitv | [merge [down | up | left | right | all]]]"
-#: src/common/command.c:108
+#: src/common/command.c:113
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2271,29 +2406,29 @@ msgstr ""
"splitv: éclate la fenêtre en deux verticalement\n"
"merge: fusionne la fenêtre avec une autre"
-#: src/common/command.c:254
+#: src/common/command.c:259
#, c-format
msgid "%s alias or command \"%s\" already exists!\n"
msgstr "%s l'alias ou la commande \"%s\" existe déjà !\n"
-#: src/common/command.c:264
+#: src/common/command.c:269
#, c-format
msgid "%s alias cannot run another alias!\n"
msgstr "%s l'alias ne peux pas lancer un autre alias !\n"
-#: src/common/command.c:271
+#: src/common/command.c:276
#, c-format
msgid "%s target command \"%s\" does not exist!\n"
msgstr "%s la commande cible \"%s\" n'existe pas !\n"
-#: src/common/command.c:479
+#: src/common/command.c:484
#, c-format
msgid "%s wrong argument count for %s command \"%s\" (expected: %d arg%s)\n"
msgstr ""
"%s nombre de paramètres incorrect pour la commande %s \"%s\" (attendu: %d "
"paramètre%s)\n"
-#: src/common/command.c:491
+#: src/common/command.c:496
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
@@ -2302,19 +2437,19 @@ msgstr ""
"%s nombre de paramètres incorrect pour la commande %s \"%s\" (attendu: entre "
"%d et %d paramètre%s)\n"
-#: src/common/command.c:513 src/common/command.c:583
+#: src/common/command.c:518 src/common/command.c:588
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr "%s la commande \"%s\" a échoué\n"
-#: src/common/command.c:541
+#: src/common/command.c:546
#, c-format
msgid "%s wrong argument count for IRC command \"%s\" (expected: %d arg%s)\n"
msgstr ""
"%s nombre de paramètres incorrect pour la commande IRC \"%s\" (attendu: %d "
"paramètre%s)\n"
-#: src/common/command.c:553
+#: src/common/command.c:558
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
@@ -2323,177 +2458,179 @@ msgstr ""
"%s nombre de paramètres incorrect pour la commande IRC \"%s\" (attendu: "
"entre %d et %d paramètre%s)\n"
-#: src/common/command.c:568
+#: src/common/command.c:573
#, c-format
msgid "%s command \"%s\" needs a server connection!\n"
msgstr "%s la commande \"%s\" nécessite une connexion au serveur !\n"
-#: src/common/command.c:632
+#: src/common/command.c:637
#, c-format
msgid "%s unknown command \"%s\" (type /help for help)\n"
msgstr "%s commande \"%s\" inconnue (tapez /help pour l'aide)\n"
-#: src/common/command.c:711
+#: src/common/command.c:716
#, c-format
msgid "%s cannot find nick for sending message\n"
msgstr "%s impossible de trouver le pseudo pour envoyer le message\n"
-#: src/common/command.c:720
+#: src/common/command.c:725
msgid "This window is not a channel!\n"
msgstr "Cette fenêtre n'est pas un canal !\n"
-#: src/common/command.c:748 src/common/command.c:772 src/common/command.c:876
+#: src/common/command.c:753 src/common/command.c:777 src/common/command.c:881
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr "%s paramètres manquants pour la commande \"%s\"\n"
-#: src/common/command.c:757
+#: src/common/command.c:762
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr "Alias \"%s\" => \"%s\" créé\n"
-#: src/common/command.c:763
+#: src/common/command.c:768
#, c-format
msgid "Failed to create alias \"%s\" => \"%s\" (not enough memory)\n"
msgstr "Impossible de créer l'alias \"%s\" => \"%s\" (pas assez de mémoire)\n"
-#: src/common/command.c:783
+#: src/common/command.c:788
msgid "List of aliases:\n"
msgstr "Liste des alias:\n"
-#: src/common/command.c:795
+#: src/common/command.c:800
msgid "No alias defined.\n"
msgstr "Aucun alias défini.\n"
-#: src/common/command.c:818
+#: src/common/command.c:823
msgid "Channel: "
msgstr "Canal: "
-#: src/common/command.c:821 src/common/command.c:831
+#: src/common/command.c:826 src/common/command.c:836
msgid " (server: "
msgstr " (serveur: "
-#: src/common/command.c:828
+#: src/common/command.c:833
msgid "Private with: "
msgstr "Privé avec: "
-#: src/common/command.c:856
+#: src/common/command.c:861
msgid "Opened buffers:\n"
msgstr "Tampons ouverts:\n"
-#: src/common/command.c:899 src/common/command.c:1026
+#: src/common/command.c:904 src/common/command.c:1031
#, c-format
msgid "%s incorrect buffer number\n"
msgstr "%s numéro de buffer incorrect\n"
-#: src/common/command.c:913
+#: src/common/command.c:918
#, c-format
msgid "%s can not close the single buffer\n"
msgstr "%s impossible de fermer le tampon unique\n"
-#: src/common/command.c:923
+#: src/common/command.c:928
#, c-format
msgid "%s can not close server buffer while channels are opened\n"
msgstr ""
"%s impossible de fermer le tampon du serveur tant que des canaux sont "
"ouverts\n"
-#: src/common/command.c:962
+#: src/common/command.c:967
msgid "Notify levels: "
msgstr "Niveaux de notification: "
-#: src/common/command.c:989 src/common/command.c:999
+#: src/common/command.c:994 src/common/command.c:1004
#, c-format
msgid "%s incorrect notify level (must be between 0 and 3)\n"
msgstr "%s niveau de notification incorrect (doit être entre 0 et 3)\n"
-#: src/common/command.c:1017
+#: src/common/command.c:1022
#, c-format
msgid "%s buffer \"%s\" not found for \"%s\" command\n"
msgstr "%s buffer \"%s\" non trouvé pour la commande \"%s\"\n"
-#: src/common/command.c:1051
+#: src/common/command.c:1056
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr "paramètre inconnu \"%s\" pour la commande \"%s\"\n"
-#: src/common/command.c:1081
+#: src/common/command.c:1086
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr "%s déjà connecté au serveur \"%s\" !\n"
-#: src/common/command.c:1089
+#: src/common/command.c:1094
#, c-format
msgid "%s currently connecting to server \"%s\"!\n"
msgstr "%s une connexion vers le serveur \"%s\" est en cours !\n"
-#: src/common/command.c:1107 src/common/command.c:1182
+#: src/common/command.c:1112 src/common/command.c:1187
#, c-format
msgid "%s server not found\n"
msgstr "%s serveur non trouvé\n"
-#: src/common/command.c:1137 src/common/command.c:1400
-#: src/common/command.c:2097 src/common/command.c:2109
+#: src/common/command.c:1142 src/common/command.c:1404
+#: src/common/command.c:1545 src/common/command.c:2236
+#: src/common/command.c:2248
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr "%s option inconnue pour la commande \"%s\"\n"
-#: src/common/command.c:1166
+#: src/common/command.c:1171
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr "%s non connecté au serveur \"%s\" !\n"
-#: src/common/command.c:1174
+#: src/common/command.c:1179
msgid "Auto-reconnection is cancelled\n"
msgstr "La reconnexion automatique est annulée\n"
-#: src/common/command.c:1200 src/common/weechat.c:265
+#: src/common/command.c:1205 src/common/weechat.c:265
#, c-format
msgid "%s internal commands:\n"
msgstr "Commandes internes %s :\n"
-#: src/common/command.c:1209 src/common/weechat.c:285
+#: src/common/command.c:1214 src/common/weechat.c:285
#, c-format
msgid "IRC commands:\n"
msgstr "Commandes IRC :\n"
-#: src/common/command.c:1276
+#: src/common/command.c:1281
#, c-format
msgid "No help available, \"%s\" is an unknown command\n"
msgstr "Pas d'aide disponible, la commande \"%s\" est inconnue\n"
-#: src/common/command.c:1301
+#: src/common/command.c:1305
msgid "Registered Perl scripts:\n"
msgstr "Scripts Perl enregistrés :\n"
-#: src/common/command.c:1318 src/common/command.c:1340
-#: src/common/command.c:1362
+#: src/common/command.c:1322 src/common/command.c:1344
+#: src/common/command.c:1366 src/common/command.c:1463
+#: src/common/command.c:1485 src/common/command.c:1507
msgid " (none)\n"
msgstr " (aucun)\n"
-#: src/common/command.c:1323
+#: src/common/command.c:1327
msgid "Perl message handlers:\n"
msgstr "Fonctions Perl pour messages :\n"
-#: src/common/command.c:1332
+#: src/common/command.c:1336
#, c-format
msgid " IRC(%s) => Perl(%s)\n"
msgstr " IRC(%s) => Perl(%s)\n"
-#: src/common/command.c:1345
+#: src/common/command.c:1349
msgid "Perl command handlers:\n"
msgstr "Commandes Perl :\n"
-#: src/common/command.c:1354
+#: src/common/command.c:1358
#, c-format
msgid " Command /%s => Perl(%s)\n"
msgstr " Commande /%s => Perl(%s)\n"
-#: src/common/command.c:1374
+#: src/common/command.c:1378
msgid "Perl scripts unloaded\n"
msgstr "Scripts Perl déchargés\n"
-#: src/common/command.c:1413
+#: src/common/command.c:1417
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
@@ -2502,31 +2639,67 @@ msgstr ""
"Merci de reconstruire WeeChat avec l'option \"--enable-perl\" pour le "
"script ./configure\n"
-#: src/common/command.c:1467
+#: src/common/command.c:1446
+msgid "Registered Python scripts:\n"
+msgstr "Scripts Python enregistrés :\n"
+
+#: src/common/command.c:1468
+msgid "Python message handlers:\n"
+msgstr "Fonctions Python pour messages :\n"
+
+#: src/common/command.c:1477
+#, c-format
+msgid " IRC(%s) => Python(%s)\n"
+msgstr " IRC(%s) => Python(%s)\n"
+
+#: src/common/command.c:1490
+msgid "Python command handlers:\n"
+msgstr "Commandes Python :\n"
+
+#: src/common/command.c:1499
+#, c-format
+msgid " Command /%s => Python(%s)\n"
+msgstr " Commande /%s => Python(%s)\n"
+
+#: src/common/command.c:1519
+msgid "Python scripts unloaded\n"
+msgstr "Scripts Python déchargés\n"
+
+#: src/common/command.c:1558
+msgid ""
+"WeeChat was build without Python support.\n"
+"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
+"script\n"
+msgstr ""
+"WeeChat a été construit sans le support Python.\n"
+"Merci de reconstruire WeeChat avec l'option \"--enable-python\" pour le "
+"script ./configure\n"
+
+#: src/common/command.c:1606
msgid "No server.\n"
msgstr "Pas de serveur.\n"
-#: src/common/command.c:1478
+#: src/common/command.c:1617
#, c-format
msgid "Server '%s' not found.\n"
msgstr "Serveur '%s' non trouvé.\n"
-#: src/common/command.c:1490
+#: src/common/command.c:1629
#, c-format
msgid "%s missing servername for \"%s\" command\n"
msgstr "%s il manque le nom du serveur pour la commande \"%s\"\n"
-#: src/common/command.c:1498
+#: src/common/command.c:1637
#, c-format
msgid "%s too much arguments for \"%s\" command, ignoring arguments\n"
msgstr "%s trop de paramètres pour la commande \"%s\", paramètres ignorés\n"
-#: src/common/command.c:1517
+#: src/common/command.c:1656
#, c-format
msgid "%s server \"%s\" not found for \"%s\" command\n"
msgstr "%s le serveur \"%s\" n'existe pas pour la commande \"%s\"\n"
-#: src/common/command.c:1525
+#: src/common/command.c:1664
#, c-format
msgid ""
"%s you can not delete server \"%s\" because you are connected to. Try /"
@@ -2535,106 +2708,106 @@ msgstr ""
"%s vous ne pouvez pas supprimer le server \"%s\" car vous êtes connecté "
"dessus. Essayez /disconnect %s avant.\n"
-#: src/common/command.c:1541 src/common/command.c:1682
+#: src/common/command.c:1680 src/common/command.c:1821
msgid "Server"
msgstr "Serveur"
-#: src/common/command.c:1544
+#: src/common/command.c:1683
msgid "has been deleted\n"
msgstr "a été supprimé\n"
-#: src/common/command.c:1559
+#: src/common/command.c:1698
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr "%s paramètres manquants pour la commande \"%s\"\n"
-#: src/common/command.c:1569
+#: src/common/command.c:1708
#, c-format
msgid "%s server \"%s\" already exists, can't create it!\n"
msgstr "%s le serveur \"%s\" existe déjà, impossible de le créer !\n"
-#: src/common/command.c:1594 src/common/command.c:1622
-#: src/common/command.c:1635 src/common/command.c:1661
+#: src/common/command.c:1733 src/common/command.c:1761
+#: src/common/command.c:1774 src/common/command.c:1800
#, c-format
msgid "%s missing password for \"%s\" parameter\n"
msgstr "%s mot de passe manquant pour le paramètre \"%s\"\n"
-#: src/common/command.c:1607
+#: src/common/command.c:1746
#, c-format
msgid "%s missing nick(s) for \"%s\" parameter\n"
msgstr "%s pseudo(s) manquant(s) pour le paramètre \"%s\"\n"
-#: src/common/command.c:1648
+#: src/common/command.c:1787
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr "%s commande manquante pour le paramètre \"%s\"\n"
-#: src/common/command.c:1685
+#: src/common/command.c:1824
msgid "created\n"
msgstr "créé\n"
-#: src/common/command.c:1691
+#: src/common/command.c:1830
#, c-format
msgid "%s unable to create server\n"
msgstr "%s impossible de créer le serveur\n"
-#: src/common/command.c:1746
+#: src/common/command.c:1885
msgid "(unknown)"
msgstr "(inconnu)"
-#: src/common/command.c:1769
+#: src/common/command.c:1908
msgid "(password hidden) "
msgstr "(mot de passe caché) "
-#: src/common/command.c:1833
+#: src/common/command.c:1972
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr "%s serveur \"%s\" non trouvé\n"
-#: src/common/command.c:1864 src/common/command.c:1910
+#: src/common/command.c:2003 src/common/command.c:2049
#, c-format
msgid "%s config option \"%s\" not found\n"
msgstr "%s option de configuration \"%s\" non trouvée\n"
-#: src/common/command.c:1869 src/common/command.c:1902
+#: src/common/command.c:2008 src/common/command.c:2041
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr "%s valeur incorrecte pour l'option \"%s\"\n"
-#: src/common/command.c:1885
+#: src/common/command.c:2024
#, c-format
msgid "%s option \"%s\" can not be changed while WeeChat is running\n"
msgstr "%s l'option \"%s\" ne peut pas être changée lorsque WeeChat tourne\n"
-#: src/common/command.c:1983
+#: src/common/command.c:2122
#, c-format
msgid "No config option found with \"%s\"\n"
msgstr "Aucune option de configuration trouvée avec \"%s\"\n"
-#: src/common/command.c:1986
+#: src/common/command.c:2125
msgid "No config option found\n"
msgstr "Aucune option de configuration trouvée\n"
-#: src/common/command.c:1992
+#: src/common/command.c:2131
#, c-format
msgid "config option(s) found with \"%s\"\n"
msgstr "option(s) de configuration trouvée(s) avec \"%s\"\n"
-#: src/common/command.c:1995
+#: src/common/command.c:2134
msgid "config option(s) found\n"
msgstr "option(s) de configuration trouvée(s)\n"
-#: src/common/command.c:2015
+#: src/common/command.c:2154
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr "%s alias ou commande \"%s\" non trouvé\n"
-#: src/common/command.c:2025
+#: src/common/command.c:2164
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr "Alias \"%s\" supprimé\n"
-#: src/common/command.c:2045
+#: src/common/command.c:2184
msgid "Opened windows:\n"
msgstr "Fenêtres ouvertes:\n"
@@ -3726,6 +3899,3 @@ msgstr ""
#: src/common/weeconfig.c:1564
msgid "saving config to disk\n"
msgstr "sauvegarde de la configuration sur disque\n"
-
-#~ msgid "nickname: new nickname for current IRC server"
-#~ msgstr "pseudo: nouveau pseudo pour le serveur IRC courant"
diff --git a/weechat/po/weechat.pot b/weechat/po/weechat.pot
index 504e52df1..35ee1a51a 100644
--- a/weechat/po/weechat.pot
+++ b/weechat/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: 2005-04-30 19:48+0200\n"
+"POT-Creation-Date: 2005-05-01 20:47+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1146,7 +1146,7 @@ msgstr ""
msgid "whois (secure connection)"
msgstr ""
-#: src/irc/irc-display.c:154 src/common/command.c:812
+#: src/irc/irc-display.c:154 src/common/command.c:817
msgid "Server: "
msgstr ""
@@ -1194,7 +1194,8 @@ msgstr ""
#: src/irc/irc-send.c:345 src/irc/irc-send.c:357 src/irc/irc-send.c:375
#: src/irc/irc-send.c:996 src/irc/irc-send.c:1089 src/irc/irc-send.c:1609
-#: src/common/command.c:1124 src/common/command.c:1407
+#: src/common/command.c:1129 src/common/command.c:1411
+#: src/common/command.c:1552
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr ""
@@ -1833,12 +1834,122 @@ msgstr ""
msgid "unloading all Perl scripts...\n"
msgstr ""
-#: src/plugins/plugins.c:89
+#: src/plugins/python/wee-python.c:61 src/plugins/python/wee-python.c:170
+msgid ""
+"Python error: wrong parameters for 'print_with_channel' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:81
+#, c-format
+msgid ""
+"Python error: unable to register Python script \"%s\" (another script "
+"already exists with this name)\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:105
+#, c-format
+msgid "registered Python script: \"%s\", version %s (%s)\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:112
+#, c-format
+msgid "%s unable to load Python script \"%s\" (not enough memory)\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:137
+msgid "Python error: wrong parameters for 'print' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:222
+msgid "Python error: wrong parameters for 'print_infobar' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:249
+msgid "Python error: wrong parameters for 'command' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:268
+msgid "Python error: server not found for 'command' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:303
+msgid ""
+"Python error: wrong parameters for 'add_message_handler' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:332
+msgid ""
+"Python error: wrong parameters for 'add_command_handler' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:371
+msgid "Python error: wrong parameters for 'get_info' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:390
+msgid "Python error: server not found for 'get_info' Python function\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:462
+msgid "Python error: error while launching Python interpreter\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:468
+msgid "Loading Python module \"weechat\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:519 src/plugins/python/wee-python.c:547
+#: src/plugins/python/wee-python.c:578
+#, c-format
+msgid ""
+"Python error: unable to run function \"%s\"in Python script (not enough "
+"memory)\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:569
+#, c-format
+msgid "Python error: error while running function \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:599
+#, c-format
+msgid "loading Python script \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:601
+#, c-format
+msgid "Loading Python script \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:607
+#, c-format
+msgid "Python error: error while opening file \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:615
+#, c-format
+msgid "Python error: error while parsing file \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:668
+#, c-format
+msgid "unloading Python script \"%s\"\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:685
+msgid "unloading all Python scripts...\n"
+msgstr ""
+
+#: src/plugins/python/wee-python.c:711
+msgid "Python error: error while freeing Python interpreter\n"
+msgstr ""
+
+#: src/plugins/plugins.c:93
#, c-format
msgid "auto-loading %s script: %s%s%s\n"
msgstr ""
-#: src/plugins/plugins.c:200
+#: src/plugins/plugins.c:211
#, c-format
msgid "%s unable to add handler for \"%s\" message (not enough memory)\n"
msgstr ""
@@ -2020,7 +2131,7 @@ msgstr ""
msgid "list/load/unload Perl scripts"
msgstr ""
-#: src/common/command.c:76
+#: src/common/command.c:76 src/common/command.c:81
msgid "[load filename] | [autoload] | [unload]"
msgstr ""
@@ -2031,17 +2142,27 @@ msgid ""
msgstr ""
#: src/common/command.c:80
+msgid "list/load/unload Python scripts"
+msgstr ""
+
+#: src/common/command.c:82
+msgid ""
+"filename: Python script (file) to load\n"
+"Without argument, /python command lists all loaded Python scripts."
+msgstr ""
+
+#: src/common/command.c:85
msgid "list, add or remove servers"
msgstr ""
-#: src/common/command.c:81
+#: src/common/command.c:86
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-pwd password] [-"
"nicks nick1 [nick2 [nick3]]] [-username username] [-realname realname] [-"
"command command] [-autojoin channel[,channel]] ] | [del servername]"
msgstr ""
-#: src/common/command.c:86
+#: src/common/command.c:91
msgid ""
"servername: server name, for internal & display use\n"
"hostname: name or IP address of server\n"
@@ -2054,53 +2175,53 @@ msgid ""
"realname: real name of user"
msgstr ""
-#: src/common/command.c:96
+#: src/common/command.c:101
msgid "save config to disk"
msgstr ""
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "[file]"
msgstr ""
-#: src/common/command.c:97
+#: src/common/command.c:102
msgid "file: filename for writing config"
msgstr ""
-#: src/common/command.c:99
+#: src/common/command.c:104
msgid "set config parameters"
msgstr ""
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid "[option[=value]]"
msgstr ""
-#: src/common/command.c:100
+#: src/common/command.c:105
msgid ""
"option: name of an option\n"
"value: value for option"
msgstr ""
-#: src/common/command.c:102
+#: src/common/command.c:107
msgid "remove an alias"
msgstr ""
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name"
msgstr ""
-#: src/common/command.c:103
+#: src/common/command.c:108
msgid "alias_name: name of alias to remove"
msgstr ""
-#: src/common/command.c:105
+#: src/common/command.c:110
msgid "manage windows"
msgstr ""
-#: src/common/command.c:106
+#: src/common/command.c:111
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr ""
-#: src/common/command.c:108
+#: src/common/command.c:113
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2108,355 +2229,390 @@ msgid ""
"merge: merge window with another"
msgstr ""
-#: src/common/command.c:254
+#: src/common/command.c:259
#, c-format
msgid "%s alias or command \"%s\" already exists!\n"
msgstr ""
-#: src/common/command.c:264
+#: src/common/command.c:269
#, c-format
msgid "%s alias cannot run another alias!\n"
msgstr ""
-#: src/common/command.c:271
+#: src/common/command.c:276
#, c-format
msgid "%s target command \"%s\" does not exist!\n"
msgstr ""
-#: src/common/command.c:479
+#: src/common/command.c:484
#, c-format
msgid "%s wrong argument count for %s command \"%s\" (expected: %d arg%s)\n"
msgstr ""
-#: src/common/command.c:491
+#: src/common/command.c:496
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
"arg%s)\n"
msgstr ""
-#: src/common/command.c:513 src/common/command.c:583
+#: src/common/command.c:518 src/common/command.c:588
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr ""
-#: src/common/command.c:541
+#: src/common/command.c:546
#, c-format
msgid "%s wrong argument count for IRC command \"%s\" (expected: %d arg%s)\n"
msgstr ""
-#: src/common/command.c:553
+#: src/common/command.c:558
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
"arg%s)\n"
msgstr ""
-#: src/common/command.c:568
+#: src/common/command.c:573
#, c-format
msgid "%s command \"%s\" needs a server connection!\n"
msgstr ""
-#: src/common/command.c:632
+#: src/common/command.c:637
#, c-format
msgid "%s unknown command \"%s\" (type /help for help)\n"
msgstr ""
-#: src/common/command.c:711
+#: src/common/command.c:716
#, c-format
msgid "%s cannot find nick for sending message\n"
msgstr ""
-#: src/common/command.c:720
+#: src/common/command.c:725
msgid "This window is not a channel!\n"
msgstr ""
-#: src/common/command.c:748 src/common/command.c:772 src/common/command.c:876
+#: src/common/command.c:753 src/common/command.c:777 src/common/command.c:881
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:757
+#: src/common/command.c:762
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr ""
-#: src/common/command.c:763
+#: src/common/command.c:768
#, c-format
msgid "Failed to create alias \"%s\" => \"%s\" (not enough memory)\n"
msgstr ""
-#: src/common/command.c:783
+#: src/common/command.c:788
msgid "List of aliases:\n"
msgstr ""
-#: src/common/command.c:795
+#: src/common/command.c:800
msgid "No alias defined.\n"
msgstr ""
-#: src/common/command.c:818
+#: src/common/command.c:823
msgid "Channel: "
msgstr ""
-#: src/common/command.c:821 src/common/command.c:831
+#: src/common/command.c:826 src/common/command.c:836
msgid " (server: "
msgstr ""
-#: src/common/command.c:828
+#: src/common/command.c:833
msgid "Private with: "
msgstr ""
-#: src/common/command.c:856
+#: src/common/command.c:861
msgid "Opened buffers:\n"
msgstr ""
-#: src/common/command.c:899 src/common/command.c:1026
+#: src/common/command.c:904 src/common/command.c:1031
#, c-format
msgid "%s incorrect buffer number\n"
msgstr ""
-#: src/common/command.c:913
+#: src/common/command.c:918
#, c-format
msgid "%s can not close the single buffer\n"
msgstr ""
-#: src/common/command.c:923
+#: src/common/command.c:928
#, c-format
msgid "%s can not close server buffer while channels are opened\n"
msgstr ""
-#: src/common/command.c:962
+#: src/common/command.c:967
msgid "Notify levels: "
msgstr ""
-#: src/common/command.c:989 src/common/command.c:999
+#: src/common/command.c:994 src/common/command.c:1004
#, c-format
msgid "%s incorrect notify level (must be between 0 and 3)\n"
msgstr ""
-#: src/common/command.c:1017
+#: src/common/command.c:1022
#, c-format
msgid "%s buffer \"%s\" not found for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1051
+#: src/common/command.c:1056
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1081
+#: src/common/command.c:1086
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1089
+#: src/common/command.c:1094
#, c-format
msgid "%s currently connecting to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1107 src/common/command.c:1182
+#: src/common/command.c:1112 src/common/command.c:1187
#, c-format
msgid "%s server not found\n"
msgstr ""
-#: src/common/command.c:1137 src/common/command.c:1400
-#: src/common/command.c:2097 src/common/command.c:2109
+#: src/common/command.c:1142 src/common/command.c:1404
+#: src/common/command.c:1545 src/common/command.c:2236
+#: src/common/command.c:2248
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1166
+#: src/common/command.c:1171
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1174
+#: src/common/command.c:1179
msgid "Auto-reconnection is cancelled\n"
msgstr ""
-#: src/common/command.c:1200 src/common/weechat.c:265
+#: src/common/command.c:1205 src/common/weechat.c:265
#, c-format
msgid "%s internal commands:\n"
msgstr ""
-#: src/common/command.c:1209 src/common/weechat.c:285
+#: src/common/command.c:1214 src/common/weechat.c:285
#, c-format
msgid "IRC commands:\n"
msgstr ""
-#: src/common/command.c:1276
+#: src/common/command.c:1281
#, c-format
msgid "No help available, \"%s\" is an unknown command\n"
msgstr ""
-#: src/common/command.c:1301
+#: src/common/command.c:1305
msgid "Registered Perl scripts:\n"
msgstr ""
-#: src/common/command.c:1318 src/common/command.c:1340
-#: src/common/command.c:1362
+#: src/common/command.c:1322 src/common/command.c:1344
+#: src/common/command.c:1366 src/common/command.c:1463
+#: src/common/command.c:1485 src/common/command.c:1507
msgid " (none)\n"
msgstr ""
-#: src/common/command.c:1323
+#: src/common/command.c:1327
msgid "Perl message handlers:\n"
msgstr ""
-#: src/common/command.c:1332
+#: src/common/command.c:1336
#, c-format
msgid " IRC(%s) => Perl(%s)\n"
msgstr ""
-#: src/common/command.c:1345
+#: src/common/command.c:1349
msgid "Perl command handlers:\n"
msgstr ""
-#: src/common/command.c:1354
+#: src/common/command.c:1358
#, c-format
msgid " Command /%s => Perl(%s)\n"
msgstr ""
-#: src/common/command.c:1374
+#: src/common/command.c:1378
msgid "Perl scripts unloaded\n"
msgstr ""
-#: src/common/command.c:1413
+#: src/common/command.c:1417
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
msgstr ""
-#: src/common/command.c:1467
+#: src/common/command.c:1446
+msgid "Registered Python scripts:\n"
+msgstr ""
+
+#: src/common/command.c:1468
+msgid "Python message handlers:\n"
+msgstr ""
+
+#: src/common/command.c:1477
+#, c-format
+msgid " IRC(%s) => Python(%s)\n"
+msgstr ""
+
+#: src/common/command.c:1490
+msgid "Python command handlers:\n"
+msgstr ""
+
+#: src/common/command.c:1499
+#, c-format
+msgid " Command /%s => Python(%s)\n"
+msgstr ""
+
+#: src/common/command.c:1519
+msgid "Python scripts unloaded\n"
+msgstr ""
+
+#: src/common/command.c:1558
+msgid ""
+"WeeChat was build without Python support.\n"
+"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
+"script\n"
+msgstr ""
+
+#: src/common/command.c:1606
msgid "No server.\n"
msgstr ""
-#: src/common/command.c:1478
+#: src/common/command.c:1617
#, c-format
msgid "Server '%s' not found.\n"
msgstr ""
-#: src/common/command.c:1490
+#: src/common/command.c:1629
#, c-format
msgid "%s missing servername for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1498
+#: src/common/command.c:1637
#, c-format
msgid "%s too much arguments for \"%s\" command, ignoring arguments\n"
msgstr ""
-#: src/common/command.c:1517
+#: src/common/command.c:1656
#, c-format
msgid "%s server \"%s\" not found for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1525
+#: src/common/command.c:1664
#, c-format
msgid ""
"%s you can not delete server \"%s\" because you are connected to. Try /"
"disconnect %s before.\n"
msgstr ""
-#: src/common/command.c:1541 src/common/command.c:1682
+#: src/common/command.c:1680 src/common/command.c:1821
msgid "Server"
msgstr ""
-#: src/common/command.c:1544
+#: src/common/command.c:1683
msgid "has been deleted\n"
msgstr ""
-#: src/common/command.c:1559
+#: src/common/command.c:1698
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1569
+#: src/common/command.c:1708
#, c-format
msgid "%s server \"%s\" already exists, can't create it!\n"
msgstr ""
-#: src/common/command.c:1594 src/common/command.c:1622
-#: src/common/command.c:1635 src/common/command.c:1661
+#: src/common/command.c:1733 src/common/command.c:1761
+#: src/common/command.c:1774 src/common/command.c:1800
#, c-format
msgid "%s missing password for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1607
+#: src/common/command.c:1746
#, c-format
msgid "%s missing nick(s) for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1648
+#: src/common/command.c:1787
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1685
+#: src/common/command.c:1824
msgid "created\n"
msgstr ""
-#: src/common/command.c:1691
+#: src/common/command.c:1830
#, c-format
msgid "%s unable to create server\n"
msgstr ""
-#: src/common/command.c:1746
+#: src/common/command.c:1885
msgid "(unknown)"
msgstr ""
-#: src/common/command.c:1769
+#: src/common/command.c:1908
msgid "(password hidden) "
msgstr ""
-#: src/common/command.c:1833
+#: src/common/command.c:1972
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:1864 src/common/command.c:1910
+#: src/common/command.c:2003 src/common/command.c:2049
#, c-format
msgid "%s config option \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:1869 src/common/command.c:1902
+#: src/common/command.c:2008 src/common/command.c:2041
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr ""
-#: src/common/command.c:1885
+#: src/common/command.c:2024
#, c-format
msgid "%s option \"%s\" can not be changed while WeeChat is running\n"
msgstr ""
-#: src/common/command.c:1983
+#: src/common/command.c:2122
#, c-format
msgid "No config option found with \"%s\"\n"
msgstr ""
-#: src/common/command.c:1986
+#: src/common/command.c:2125
msgid "No config option found\n"
msgstr ""
-#: src/common/command.c:1992
+#: src/common/command.c:2131
#, c-format
msgid "config option(s) found with \"%s\"\n"
msgstr ""
-#: src/common/command.c:1995
+#: src/common/command.c:2134
msgid "config option(s) found\n"
msgstr ""
-#: src/common/command.c:2015
+#: src/common/command.c:2154
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:2025
+#: src/common/command.c:2164
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr ""
-#: src/common/command.c:2045
+#: src/common/command.c:2184
msgid "Opened windows:\n"
msgstr ""
diff --git a/weechat/src/common/command.c b/weechat/src/common/command.c
index a5f6fe58e..d2a8c14f6 100644
--- a/weechat/src/common/command.c
+++ b/weechat/src/common/command.c
@@ -77,6 +77,11 @@ t_weechat_command weechat_commands[] =
N_("filename: Perl script (file) to load\n"
"Without argument, /perl command lists all loaded Perl scripts."),
0, 2, weechat_cmd_perl, NULL },
+ { "python", N_("list/load/unload Python scripts"),
+ N_("[load filename] | [autoload] | [unload]"),
+ N_("filename: Python script (file) to load\n"
+ "Without argument, /python command lists all loaded Python scripts."),
+ 0, 2, weechat_cmd_python, NULL },
{ "server", N_("list, add or remove servers"),
N_("[servername] | "
"[servername hostname port [-auto | -noauto] [-pwd password] [-nicks nick1 "
@@ -1286,13 +1291,12 @@ weechat_cmd_help (int argc, char **argv)
int
weechat_cmd_perl (int argc, char **argv)
{
- #ifdef PLUGINS
+ #ifdef PLUGIN_PERL
t_plugin_script *ptr_plugin_script;
t_plugin_handler *ptr_plugin_handler;
int handler_found, path_length;
char *path_script;
- #ifdef PLUGIN_PERL
switch (argc)
{
case 0:
@@ -1418,11 +1422,146 @@ weechat_cmd_perl (int argc, char **argv)
(void) argv;
#endif /* PLUGIN_PERL */
+ return 0;
+}
+
+/*
+ * weechat_cmd_python: list/load/unload Python scripts
+ */
+
+int
+weechat_cmd_python (int argc, char **argv)
+{
+ #ifdef PLUGIN_PYTHON
+ t_plugin_script *ptr_plugin_script;
+ t_plugin_handler *ptr_plugin_handler;
+ int handler_found, path_length;
+ char *path_script;
+
+ switch (argc)
+ {
+ case 0:
+ /* list registered Python scripts */
+ gui_printf (NULL, "\n");
+ gui_printf (NULL, _("Registered Python scripts:\n"));
+ if (python_scripts)
+ {
+ for (ptr_plugin_script = python_scripts; ptr_plugin_script;
+ ptr_plugin_script = ptr_plugin_script->next_script)
+ {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, " %s v%s%s%s\n",
+ ptr_plugin_script->name,
+ ptr_plugin_script->version,
+ (ptr_plugin_script->description[0]) ? " - " : "",
+ ptr_plugin_script->description);
+ }
+ }
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _(" (none)\n"));
+ }
+
+ /* list Python message handlers */
+ gui_printf (NULL, "\n");
+ gui_printf (NULL, _("Python message handlers:\n"));
+ handler_found = 0;
+ for (ptr_plugin_handler = plugin_msg_handlers; ptr_plugin_handler;
+ ptr_plugin_handler = ptr_plugin_handler->next_handler)
+ {
+ if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PYTHON)
+ {
+ handler_found = 1;
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _(" IRC(%s) => Python(%s)\n"),
+ ptr_plugin_handler->name,
+ ptr_plugin_handler->function_name);
+ }
+ }
+ if (!handler_found)
+ {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _(" (none)\n"));
+ }
+
+ /* list Python command handlers */
+ gui_printf (NULL, "\n");
+ gui_printf (NULL, _("Python command handlers:\n"));
+ handler_found = 0;
+ for (ptr_plugin_handler = plugin_cmd_handlers; ptr_plugin_handler;
+ ptr_plugin_handler = ptr_plugin_handler->next_handler)
+ {
+ if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PYTHON)
+ {
+ handler_found = 1;
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _(" Command /%s => Python(%s)\n"),
+ ptr_plugin_handler->name,
+ ptr_plugin_handler->function_name);
+ }
+ }
+ if (!handler_found)
+ {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _(" (none)\n"));
+ }
+
+ break;
+ case 1:
+ if (strcasecmp (argv[0], "autoload") == 0)
+ plugin_auto_load (PLUGIN_TYPE_PYTHON, "python/autoload");
+ if (strcasecmp (argv[0], "unload") == 0)
+ {
+ /* unload all Python scripts */
+ plugin_unload (PLUGIN_TYPE_PYTHON, NULL);
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _("Python scripts unloaded\n"));
+ }
+ break;
+ case 2:
+ if (strcasecmp (argv[0], "load") == 0)
+ {
+ /* load Python script */
+ if (strstr(argv[1], DIR_SEPARATOR))
+ path_script = NULL;
+ else
+ {
+ path_length = strlen (weechat_home) + strlen (argv[1]) + 7;
+ path_script = (char *) malloc (path_length * sizeof (char));
+ snprintf (path_script, path_length, "%s%s%s%s%s",
+ weechat_home, DIR_SEPARATOR, "python",
+ DIR_SEPARATOR, argv[1]);
+ }
+ plugin_load (PLUGIN_TYPE_PYTHON,
+ (path_script) ? path_script : argv[1]);
+ if (path_script)
+ free (path_script);
+ }
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s unknown option for \"%s\" command\n"),
+ WEECHAT_ERROR, "python");
+ }
+ break;
+ default:
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s wrong argument count for \"%s\" command\n"),
+ WEECHAT_ERROR, "python");
+ }
#else
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("WeeChat was build without Python support.\n"
+ "Please rebuild WeeChat with "
+ "\"--enable-python\" option for ./configure script\n"));
/* make gcc happy */
(void) argc;
(void) argv;
- #endif /* PLUGINS */
+ #endif /* PLUGIN_PYTHON */
return 0;
}
diff --git a/weechat/src/common/command.h b/weechat/src/common/command.h
index fa808aa1e..aac5701fb 100644
--- a/weechat/src/common/command.h
+++ b/weechat/src/common/command.h
@@ -70,6 +70,7 @@ extern int weechat_cmd_debug (int, char **);
extern int weechat_cmd_disconnect (int, char **);
extern int weechat_cmd_help (int, char **);
extern int weechat_cmd_perl (int, char **);
+extern int weechat_cmd_python (int, char **);
extern int weechat_cmd_save (int, char **);
extern int weechat_cmd_server (int, char **);
extern int weechat_cmd_set (char *);
diff --git a/weechat/src/common/completion.c b/weechat/src/common/completion.c
index 27bc9b5a5..03b6ada59 100644
--- a/weechat/src/common/completion.c
+++ b/weechat/src/common/completion.c
@@ -207,6 +207,20 @@ completion_build_list (t_completion *completion, void *channel)
"unload");
return;
}
+ if ((strcasecmp (completion->base_command, "python") == 0)
+ && (completion->base_command_arg == 1))
+ {
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "load");
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "autoload");
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "unload");
+ return;
+ }
if ((strcasecmp (completion->base_command, "set") == 0)
&& (completion->base_command_arg == 1))
{
diff --git a/weechat/src/plugins/Makefile.am b/weechat/src/plugins/Makefile.am
index 823b41475..b52375faf 100644
--- a/weechat/src/plugins/Makefile.am
+++ b/weechat/src/plugins/Makefile.am
@@ -21,16 +21,16 @@ if PLUGIN_PERL
perl_dir = perl
endif
-# if PLUGIN_PYTHON
-# python_dir = python
-# endif
+if PLUGIN_PYTHON
+python_dir = python
+endif
# if PLUGIN_RUBY
# ruby_dir = ruby
# endif
# SUBDIRS = $(perl_dir) $(python_dir) $(ruby_dir)
-SUBDIRS = $(perl_dir)
+SUBDIRS = $(perl_dir) $(python_dir)
noinst_LIBRARIES = lib_weechat_plugins.a
diff --git a/weechat/src/plugins/plugins.c b/weechat/src/plugins/plugins.c
index e9f25354d..85a3d5033 100644
--- a/weechat/src/plugins/plugins.c
+++ b/weechat/src/plugins/plugins.c
@@ -39,6 +39,10 @@
#include "perl/wee-perl.h"
#endif
+#ifdef PLUGIN_PYTHON
+#include "python/wee-python.h"
+#endif
+
char *plugin_name[3] = { "Perl", "Python", "Ruby" };
@@ -115,6 +119,11 @@ plugin_init ()
wee_perl_init();
plugin_auto_load (PLUGIN_TYPE_PERL, "perl/autoload");
#endif
+
+ #ifdef PLUGIN_PYTHON
+ wee_python_init();
+ plugin_auto_load (PLUGIN_TYPE_PYTHON, "python/autoload");
+ #endif
}
/*
@@ -133,7 +142,9 @@ plugin_load (int plugin_type, char *filename)
#endif
break;
case PLUGIN_TYPE_PYTHON:
- /* TODO: load Python script */
+ #ifdef PLUGIN_PYTHON
+ wee_python_load (filename);
+ #endif
break;
case PLUGIN_TYPE_RUBY:
/* TODO: load Ruby script */
@@ -292,6 +303,10 @@ plugin_event_msg (char *irc_command, char *arguments, char *server)
if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PERL)
wee_perl_exec (ptr_plugin_handler->function_name, arguments, server);
#endif
+ #ifdef PLUGIN_PYTHON
+ if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PYTHON)
+ wee_python_exec (ptr_plugin_handler->function_name, arguments, server);
+ #endif
}
}
#else
@@ -321,6 +336,10 @@ plugin_exec_command (char *user_command, char *arguments, char *server)
if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PERL)
wee_perl_exec (ptr_plugin_handler->function_name, arguments, server);
#endif
+ #ifdef PLUGIN_PYTHON
+ if (ptr_plugin_handler->plugin_type == PLUGIN_TYPE_PYTHON)
+ wee_python_exec (ptr_plugin_handler->function_name, arguments, server);
+ #endif
/* command executed */
return 1;
@@ -358,7 +377,10 @@ plugin_unload (int plugin_type, char *scriptname)
#endif
break;
case PLUGIN_TYPE_PYTHON:
- /* TODO: unload Python scripts */
+ #ifdef PLUGIN_PYTHON
+ wee_python_end ();
+ wee_python_init ();
+ #endif
break;
case PLUGIN_TYPE_RUBY:
/* TODO: unload Ruby scripts */
@@ -383,4 +405,8 @@ plugin_end ()
#ifdef PLUGIN_PERL
wee_perl_end();
#endif
+
+ #ifdef PLUGIN_PYTHON
+ wee_python_end();
+ #endif
}
diff --git a/weechat/src/plugins/python/Makefile.am b/weechat/src/plugins/python/Makefile.am
new file mode 100644
index 000000000..1828903a7
--- /dev/null
+++ b/weechat/src/plugins/python/Makefile.am
@@ -0,0 +1,23 @@
+# Copyright (c) 2003-2005 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\" $(PYTHON_CFLAGS)
+
+noinst_LIBRARIES = lib_weechat_python.a
+
+lib_weechat_python_a_SOURCES = wee-python.h \
+ wee-python.c
diff --git a/weechat/src/plugins/python/wee-python.c b/weechat/src/plugins/python/wee-python.c
new file mode 100644
index 000000000..6c4e48b42
--- /dev/null
+++ b/weechat/src/plugins/python/wee-python.c
@@ -0,0 +1,713 @@
+/*
+ * Copyright (c) 2003-2005 by FlashCode <flashcode@flashtux.org>
+ * See README for License detail, AUTHORS for developers list.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* wee-python.c: Python plugin support for WeeChat */
+
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <Python.h>
+#include <stdlib.h>
+#include <string.h>
+#undef _
+#include "../../common/weechat.h"
+#include "../plugins.h"
+#include "wee-python.h"
+#include "../../common/command.h"
+#include "../../irc/irc.h"
+#include "../../gui/gui.h"
+
+
+t_plugin_script *python_scripts = NULL;
+t_plugin_script *last_python_script = NULL;
+
+
+/*
+ * weechat.register(nom, version, fonction, description):
+ * startup function for all WeeChat Python scripts
+ */
+
+static PyObject *
+wee_python_register (PyObject *self, PyObject *args)
+{
+ char *name, *version, *shutdown_func, *description;
+ t_plugin_script *ptr_python_script, *python_script_found, *new_python_script;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "ssss", &name, &version, &shutdown_func, &description))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'print_with_channel' Python function\n"));
+ return NULL;
+ }
+
+ python_script_found = NULL;
+ for (ptr_python_script = python_scripts; ptr_python_script;
+ ptr_python_script = ptr_python_script->next_script)
+ {
+ if (strcasecmp (ptr_python_script->name, name) == 0)
+ {
+ python_script_found = ptr_python_script;
+ break;
+ }
+ }
+
+ if (python_script_found)
+ {
+ /* error: another scripts already exists with this name! */
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: unable to register Python script \"%s\" (another script "
+ "already exists with this name)\n"),
+ name);
+ }
+ else
+ {
+ /* registering script */
+ new_python_script = (t_plugin_script *)malloc (sizeof (t_plugin_script));
+ if (new_python_script)
+ {
+ new_python_script->name = strdup (name);
+ new_python_script->version = strdup (version);
+ new_python_script->shutdown_func = strdup (shutdown_func);
+ new_python_script->description = strdup (description);
+
+ /* add new script to list */
+ new_python_script->prev_script = last_python_script;
+ new_python_script->next_script = NULL;
+ if (python_scripts)
+ last_python_script->next_script = new_python_script;
+ else
+ python_scripts = new_python_script;
+ last_python_script = new_python_script;
+
+ wee_log_printf (_("registered Python script: \"%s\", version %s (%s)\n"),
+ name, version, description);
+ }
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s unable to load Python script \"%s\" (not enough memory)\n"),
+ WEECHAT_ERROR, name);
+ }
+ }
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.print(message): print message to current buffer
+ */
+
+static PyObject *
+wee_python_print (PyObject *self, PyObject *args)
+{
+ char *message;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "s", &message))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'print' Python function\n"));
+ return NULL;
+ }
+
+ irc_display_prefix (gui_current_window->buffer, PREFIX_PLUGIN);
+ gui_printf (gui_current_window->buffer, "%s\n", message);
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.print_with_channel(message, channel, server=None):
+ * print message to a specific channel/server
+ * (server is optional)
+ */
+
+static PyObject *
+wee_python_print_with_channel (PyObject *self, PyObject *args)
+{
+ char *message, *channel, *server = NULL;
+ int ret = 0;
+ t_gui_buffer *ptr_buffer;
+ t_irc_server *ptr_server;
+ t_irc_channel *ptr_channel;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "ss|s", &message, &channel, &server))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'print_with_channel' Python function\n"));
+ return NULL;
+ }
+
+ ptr_buffer = NULL;
+ for (ptr_server = irc_servers; ptr_server;
+ ptr_server = ptr_server->next_server)
+ {
+ if (!server || (strcasecmp (ptr_server->name, server)) == 0)
+ {
+ for (ptr_channel = ptr_server->channels; ptr_channel;
+ ptr_channel = ptr_channel->next_channel)
+ {
+ if (strcasecmp (ptr_channel->name, channel) == 0)
+ {
+ ptr_buffer = ptr_channel->buffer;
+ break;
+ }
+ }
+ }
+ if (ptr_buffer)
+ break;
+ }
+
+ /* buffer found => display message & return 1 ~= True */
+ if (ptr_buffer)
+ {
+ irc_display_prefix (ptr_buffer, PREFIX_PLUGIN);
+ gui_printf (ptr_buffer, "%s", message);
+ ret = 1;
+ }
+
+ return Py_BuildValue ("i", ret);
+}
+
+/*
+ * weechat.print_infobar(delay, message): print message to infobar
+ */
+
+static PyObject *
+wee_python_print_infobar (PyObject *self, PyObject *args)
+{
+ int delay;
+ char *message;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "is", &delay, &message))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'print_infobar' Python function\n"));
+ return NULL;
+ }
+
+ gui_infobar_printf (delay, COLOR_WIN_INFOBAR, message);
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.command(command, server=None): send command to server
+ */
+
+static PyObject *
+wee_python_command (PyObject *self, PyObject *args)
+{
+ char *server = NULL, *command, *command2;
+ t_irc_server *ptr_server;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "s|s", &command, &server))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'command' Python function\n"));
+ return NULL;
+ }
+
+ if (server == NULL)
+ {
+ ptr_server = SERVER(gui_current_window->buffer);
+ }
+ else
+ {
+ for (ptr_server = irc_servers; ptr_server; ptr_server = ptr_server->next_server)
+ {
+ if (strcasecmp (ptr_server->name, server) == 0)
+ break;
+ }
+ if (!ptr_server)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: server not found for 'command' Python function\n"));
+ }
+ }
+
+ if (ptr_server)
+ {
+ command2 = (char *) malloc (strlen (command) + 8);
+ strcpy (command2, command);
+ if (!strstr (command2, "\r\n"))
+ strcat (command2, "\r\n");
+ server_sendf (ptr_server, command2);
+ free (command2);
+ }
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.add_message_handler(message, function):
+ * add handler for messages
+ */
+
+static PyObject *
+wee_python_add_message_handler (PyObject *self, PyObject *args)
+{
+ char *message, *function;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "ss", &message, &function))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'add_message_handler' Python function\n"));
+ return NULL;
+ }
+
+ plugin_handler_add (&plugin_msg_handlers, &last_plugin_msg_handler,
+ PLUGIN_TYPE_PYTHON, message, function);
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.add_command_handler(name, function):
+ * define/redefines commands
+ */
+
+static PyObject *
+wee_python_add_command_handler(PyObject *self, PyObject *args)
+{
+ char *name, *function;
+ t_plugin_handler *ptr_plugin_handler;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "ss", &name, &function))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'add_command_handler' Python function\n"));
+ return NULL;
+ }
+
+ if (!weelist_search (index_commands, name))
+ weelist_add (&index_commands, &last_index_command, name);
+
+ ptr_plugin_handler = plugin_handler_search (plugin_cmd_handlers, name);
+ if (ptr_plugin_handler)
+ {
+ free (ptr_plugin_handler->function_name);
+ ptr_plugin_handler->function_name = strdup (function);
+ }
+ else
+ plugin_handler_add (&plugin_cmd_handlers, &last_plugin_cmd_handler,
+ PLUGIN_TYPE_PYTHON, name, function);
+
+ Py_INCREF (Py_None);
+ return Py_None;
+}
+
+/*
+ * weechat.get_info(info, server=None):
+ * get various infos
+ */
+
+static PyObject *
+wee_python_get_info (PyObject *self, PyObject *args)
+{
+ char *arg, *info = NULL, *server = NULL;
+ t_irc_server *ptr_server;
+
+ /* make gcc happy */
+ (void) self;
+
+ if (!PyArg_ParseTuple (args, "s|s", &arg, &server))
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: wrong parameters for 'get_info' Python function\n"));
+ return NULL;
+ }
+
+ if (server == NULL)
+ {
+ ptr_server = SERVER(gui_current_window->buffer);
+ }
+ else
+ {
+ for (ptr_server = irc_servers; ptr_server; ptr_server = ptr_server->next_server)
+ {
+ if (strcasecmp (ptr_server->name, server) == 0)
+ break;
+ }
+ if (!ptr_server)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: server not found for 'get_info' Python function\n"));
+ }
+ }
+
+ if (ptr_server && arg)
+ {
+ if ( (strcasecmp (arg, "0") == 0) || (strcasecmp (arg, "version") == 0) )
+ {
+ info = PACKAGE_STRING;
+ }
+ else if ( (strcasecmp (arg, "1") == 0) || (strcasecmp (arg, "nick") == 0) )
+ {
+ if (ptr_server->nick)
+ info = ptr_server->nick;
+ }
+ else if ( (strcasecmp (arg, "2") == 0) || (strcasecmp (arg, "channel") == 0) )
+ {
+ if (BUFFER_IS_CHANNEL (gui_current_window->buffer))
+ info = CHANNEL (gui_current_window->buffer)->name;
+ }
+ else if ( (strcasecmp (arg, "3") == 0) || (strcasecmp (arg, "server") == 0) )
+ {
+ if (ptr_server->name)
+ info = ptr_server->name;
+ }
+ else if ( (strcasecmp (arg, "4") == 0) || (strcasecmp (arg, "weechatdir") == 0) )
+ {
+ info = weechat_home;
+ }
+ else if ( (strcasecmp (arg, "5") == 0) || (strcasecmp (arg, "away") == 0) )
+ {
+ return Py_BuildValue ("i", SERVER(gui_current_window->buffer)->is_away);
+ }
+
+ if (info)
+ return Py_BuildValue ("s", info);
+ else
+ return Py_BuildValue ("s", "");
+ }
+
+ return Py_BuildValue ("i", 1);
+}
+
+/*
+ * initialize subroutines
+ */
+
+static
+PyMethodDef weechat_funcs[] = {
+ {"register", wee_python_register, METH_VARARGS, ""},
+ {"prnt", wee_python_print, METH_VARARGS, ""},
+ {"print_with_channel", wee_python_print_with_channel, METH_VARARGS, ""},
+ {"print_infobar", wee_python_print_infobar, METH_VARARGS, ""},
+ {"command", wee_python_command, METH_VARARGS, ""},
+ {"add_message_handler", wee_python_add_message_handler, METH_VARARGS, ""},
+ {"add_command_handler", wee_python_add_command_handler, METH_VARARGS, ""},
+ {"get_info", wee_python_get_info, METH_VARARGS, ""},
+ {NULL, NULL, 0, NULL}
+};
+
+/*
+ * wee_python_init: initialize Python interface for WeeChat
+ */
+
+void
+wee_python_init ()
+{
+
+ Py_Initialize ();
+ if (Py_IsInitialized () == 0)
+ {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _("Python error: error while launching Python interpreter\n"));
+ }
+ else
+ {
+ Py_InitModule ("weechat", weechat_funcs);
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _("Loading Python module \"weechat\"\n"));
+ }
+}
+
+/*
+ * wee_python_search: search a (loaded) Python script by name
+ */
+
+t_plugin_script *
+wee_python_search (char *name)
+{
+ t_plugin_script *ptr_python_script;
+
+ for (ptr_python_script = python_scripts; ptr_python_script;
+ ptr_python_script = ptr_python_script->next_script)
+ {
+ if (strcmp (ptr_python_script->name, name) == 0)
+ return ptr_python_script;
+ }
+
+ /* script not found */
+ return NULL;
+}
+
+/*
+ * wee_python_exec: execute a Python script
+ */
+
+int
+wee_python_exec (char *function, char *server, char *arguments)
+{
+ int len, return_code, i, j, alen;
+ char *srv, *args, *runstring;
+
+ return_code = 1;
+
+ if (arguments == NULL)
+ {
+ alen = 0;
+ args = strdup ("");
+ }
+ else
+ {
+ alen = (int) strlen (arguments);
+ args = (char *) malloc ( 2 * alen * sizeof (*args));
+ }
+
+ if (!args)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: unable to run function \"%s\"in Python script (not enough memory)\n"),
+ function);
+ return 0;
+ }
+
+ // copy arguments in args to escape double quotes
+ j = 0;
+ for (i=0; i < alen; ++i)
+ {
+ if (arguments[i] == '"' || arguments[i] == '\\')
+ {
+ args[j] = '\\';
+ ++j;
+ }
+ args[j] = arguments[i];
+ ++j;
+ }
+ args[j] = 0;
+
+ if (server == NULL)
+ srv = strdup ("");
+ else
+ srv = strdup (server);
+
+ if (!srv)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: unable to run function \"%s\"in Python script (not enough memory)\n"),
+ function);
+ free (args);
+ return 0;
+ }
+
+ len = (int) strlen (function);
+ len += (int) strlen ("(\"\",\"\")");
+ len += (int) strlen (srv);
+ len += (int) strlen (args);
+ len += 1;
+
+ runstring = (char *) malloc ( len * sizeof (*runstring));
+
+ if (runstring)
+ {
+ sprintf (runstring, "%s(\"%s\",\"%s\")", function, srv, args);
+
+ if (PyRun_SimpleString (runstring) != 0)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: error while running function \"%s\"\n"), function);
+ return_code = 0;
+ }
+ free (runstring);
+ }
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: unable to run function \"%s\"in Python script (not enough memory)\n"),
+ function);
+ return_code = 0;
+ }
+
+ free (args);
+ free (srv);
+
+ return return_code;
+}
+
+/*
+ * wee_python_load: load a Python script
+ */
+
+int
+wee_python_load (char *filename)
+{
+ FILE *fp;
+
+ /* execute Python script */
+ wee_log_printf (_("loading Python script \"%s\"\n"), filename);
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _("Loading Python script \"%s\"\n"), filename);
+
+ if ((fp = fopen (filename, "r")) == NULL)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: error while opening file \"%s\"\n"), filename);
+ return 1;
+ }
+
+ if (PyRun_SimpleFile (fp, filename) != 0)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("Python error: error while parsing file \"%s\"\n"), filename);
+ return 1;
+ }
+
+ fclose (fp);
+ return 0;
+}
+
+/*
+ * wee_python_script_free: free a Python script
+ */
+
+void
+wee_python_script_free (t_plugin_script *ptr_python_script)
+{
+ t_plugin_script *new_python_scripts;
+
+ /* remove script from list */
+ if (last_python_script == ptr_python_script)
+ last_python_script = ptr_python_script->prev_script;
+ if (ptr_python_script->prev_script)
+ {
+ (ptr_python_script->prev_script)->next_script = ptr_python_script->next_script;
+ new_python_scripts = python_scripts;
+ }
+ else
+ new_python_scripts = ptr_python_script->next_script;
+
+ if (ptr_python_script->next_script)
+ (ptr_python_script->next_script)->prev_script = ptr_python_script->prev_script;
+
+ /* free data */
+ if (ptr_python_script->name)
+ free (ptr_python_script->name);
+ if (ptr_python_script->version)
+ free (ptr_python_script->version);
+ if (ptr_python_script->shutdown_func)
+ free (ptr_python_script->shutdown_func);
+ if (ptr_python_script->description)
+ free (ptr_python_script->description);
+ free (ptr_python_script);
+ python_scripts = new_python_scripts;
+}
+
+/*
+ * wee_python_unload: unload a Python script
+ */
+
+void
+wee_python_unload (t_plugin_script *ptr_python_script)
+{
+ if (ptr_python_script)
+ {
+ wee_log_printf (_("unloading Python script \"%s\"\n"),
+ ptr_python_script->name);
+
+ /* call shutdown callback function */
+ if (ptr_python_script->shutdown_func[0])
+ wee_python_exec (ptr_python_script->shutdown_func, "", "");
+ wee_python_script_free (ptr_python_script);
+ }
+}
+
+/*
+ * wee_python_unload_all: unload all Python scripts
+ */
+
+void
+wee_python_unload_all ()
+{
+ wee_log_printf (_("unloading all Python scripts...\n"));
+ while (python_scripts)
+ wee_python_unload (python_scripts);
+}
+
+/*
+ * wee_python_end: shutdown Python interface
+ */
+
+void
+wee_python_end ()
+{
+ /* unload all scripts */
+ wee_python_unload_all ();
+
+ /* free all handlers */
+ plugin_handler_free_all_type (&plugin_msg_handlers,
+ &last_plugin_msg_handler,
+ PLUGIN_TYPE_PYTHON);
+ plugin_handler_free_all_type (&plugin_cmd_handlers,
+ &last_plugin_cmd_handler,
+ PLUGIN_TYPE_PYTHON);
+
+ Py_Finalize ();
+ if (Py_IsInitialized () != 0) {
+ irc_display_prefix (NULL, PREFIX_PLUGIN);
+ gui_printf (NULL, _("Python error: error while freeing Python interpreter\n"));
+ }
+}
diff --git a/weechat/src/plugins/python/wee-python.h b/weechat/src/plugins/python/wee-python.h
new file mode 100644
index 000000000..f805c4d63
--- /dev/null
+++ b/weechat/src/plugins/python/wee-python.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2003-2005 by FlashCode <flashcode@flashtux.org>
+ * See README for License detail, AUTHORS for developers list.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+
+#ifndef __WEECHAT_PYTHON_H
+#define __WEECHAT_PYTHON_H 1
+
+#include "../plugins.h"
+
+extern void wee_python_init ();
+extern t_plugin_script *wee_python_search (char *);
+extern int wee_python_exec (char *, char *, char *);
+extern int wee_python_load (char *);
+extern void wee_python_unload (t_plugin_script *);
+extern void wee_python_unload_all ();
+extern void wee_python_end ();
+
+#endif /* wee-python.h */