summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2005-07-09 15:30:51 +0000
committerSebastien Helleu <flashcode@flashtux.org>2005-07-09 15:30:51 +0000
commit54d4fc12a69ca6398f8f5d41d73bba22cf6788aa (patch)
tree1ec405acd240e1b3b9ac69ba4ded5e35028bda05
parent55125beee4aa5489f6976521f8ac899398fea836 (diff)
downloadweechat-54d4fc12a69ca6398f8f5d41d73bba22cf6788aa.zip
- new keyboard management: keys are setup in config file, new command /key was added and some new default keys were added
- added seconds in infobar time (optional with new config flag) - fixed some curses refreshs
-rw-r--r--ChangeLog6
-rw-r--r--po/es.po777
-rw-r--r--po/fr.po793
-rw-r--r--po/weechat.pot770
-rw-r--r--src/common/command.c253
-rw-r--r--src/common/command.h1
-rw-r--r--src/common/completion.c20
-rw-r--r--src/common/weechat.c58
-rw-r--r--src/common/weechat.h4
-rw-r--r--src/common/weeconfig.c100
-rw-r--r--src/common/weeconfig.h9
-rw-r--r--src/gui/Makefile.am1
-rw-r--r--src/gui/curses/Makefile.am4
-rw-r--r--src/gui/curses/gui-display.c310
-rw-r--r--src/gui/curses/gui-input.c778
-rw-r--r--src/gui/gui-common.c887
-rw-r--r--src/gui/gui-keyboard.c528
-rw-r--r--src/gui/gui.h145
-rw-r--r--weechat/ChangeLog6
-rw-r--r--weechat/po/es.po777
-rw-r--r--weechat/po/fr.po793
-rw-r--r--weechat/po/weechat.pot770
-rw-r--r--weechat/src/common/command.c253
-rw-r--r--weechat/src/common/command.h1
-rw-r--r--weechat/src/common/completion.c20
-rw-r--r--weechat/src/common/weechat.c58
-rw-r--r--weechat/src/common/weechat.h4
-rw-r--r--weechat/src/common/weeconfig.c100
-rw-r--r--weechat/src/common/weeconfig.h9
-rw-r--r--weechat/src/gui/Makefile.am1
-rw-r--r--weechat/src/gui/curses/Makefile.am4
-rw-r--r--weechat/src/gui/curses/gui-display.c310
-rw-r--r--weechat/src/gui/curses/gui-input.c778
-rw-r--r--weechat/src/gui/gui-common.c887
-rw-r--r--weechat/src/gui/gui-keyboard.c528
-rw-r--r--weechat/src/gui/gui.h145
36 files changed, 6818 insertions, 4070 deletions
diff --git a/ChangeLog b/ChangeLog
index 181c9b373..199c53363 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,14 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
-ChangeLog - 2005-07-06
+ChangeLog - 2005-07-09
Versoin 0.1.4 (under dev!):
+ * new keyboard management: keys are setup in config file, new command
+ /key was added and some new default keys were added
+ * added seconds in infobar time (optional thanks to new setting)
+ * fixed some curses refreshs
* channels auto-prefixed by "#" (if no prefix found) for /join command
Version 0.1.3 (2005-07-02):
diff --git a/po/es.po b/po/es.po
index 85ccfd4ca..7207bd263 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.4-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-07-02 18:30+0200\n"
-"PO-Revision-Date: 2005-07-02 20:21+0200\n"
+"POT-Creation-Date: 2005-07-09 17:25+0200\n"
+"PO-Revision-Date: 2005-07-09 14:35+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"
@@ -20,7 +20,7 @@ msgstr ""
msgid "%s cannot allocate new nick\n"
msgstr "%s no ha sido posible crear un nuevo nick\n"
-#: src/irc/irc-server.c:180 src/common/weeconfig.c:1625
+#: src/irc/irc-server.c:180 src/common/weeconfig.c:1677
msgid "Unable to get user's name"
msgstr "No ha sido posible obtener el nombre de usuario"
@@ -1299,7 +1299,7 @@ msgstr "no es posible cambiar el modo para el resto de usuarios"
msgid "whois (secure connection)"
msgstr ""
-#: src/irc/irc-display.c:156 src/common/command.c:842
+#: src/irc/irc-display.c:156 src/common/command.c:848
msgid "Server: "
msgstr "Servidor: "
@@ -1340,45 +1340,45 @@ msgstr "%s: utilización del nombre de máquina local \"%s\"\n"
#: src/irc/irc-send.c:232 src/irc/irc-send.c:260 src/irc/irc-send.c:426
#: src/irc/irc-send.c:452 src/irc/irc-send.c:478 src/irc/irc-send.c:519
-#: src/irc/irc-send.c:555 src/irc/irc-send.c:619 src/irc/irc-send.c:676
-#: src/irc/irc-send.c:1018 src/irc/irc-send.c:1116 src/irc/irc-send.c:1595
-#: src/irc/irc-send.c:1702
+#: src/irc/irc-send.c:555 src/irc/irc-send.c:622 src/irc/irc-send.c:679
+#: src/irc/irc-send.c:1021 src/irc/irc-send.c:1119 src/irc/irc-send.c:1598
+#: src/irc/irc-send.c:1705
#, c-format
msgid "%s \"%s\" command can only be executed in a channel window\n"
msgstr ""
"%s el comando \"%s\" sólo puede ser ejecutado en una ventana de canal\n"
#: 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:1621
-#: src/common/command.c:1167 src/common/command.c:1451
-#: src/common/command.c:1594
+#: src/irc/irc-send.c:999 src/irc/irc-send.c:1092 src/irc/irc-send.c:1624
+#: src/common/command.c:1189 src/common/command.c:1455
+#: src/common/command.c:1605 src/common/command.c:1748
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr "%s número de argumentos incorrecto para el comando \"%s\"\n"
-#: src/irc/irc-send.c:398 src/irc/irc-send.c:604 src/irc/irc-send.c:661
+#: src/irc/irc-send.c:398 src/irc/irc-send.c:607 src/irc/irc-send.c:664
#, c-format
msgid "%s wrong arguments for \"%s\" command\n"
msgstr "%s argumentos incorrecto para el comando \"%s\"\n"
-#: src/irc/irc-send.c:804 src/irc/irc-send.c:871 src/irc/irc-send.c:1164
-#: src/irc/irc-send.c:1178 src/irc/irc-send.c:1522
+#: src/irc/irc-send.c:807 src/irc/irc-send.c:874 src/irc/irc-send.c:1167
+#: src/irc/irc-send.c:1181 src/irc/irc-send.c:1525
#, c-format
msgid "%s \"%s\" command can not be executed on a server window\n"
msgstr ""
"%s el comando \"%s\" no puede ser ejecutado en una ventana de servidor\n"
-#: src/irc/irc-send.c:889 src/irc/irc-send.c:914 src/irc/irc-recv.c:322
+#: src/irc/irc-send.c:892 src/irc/irc-send.c:917 src/irc/irc-recv.c:322
#, c-format
msgid "%s nick \"%s\" not found for \"%s\" command\n"
msgstr "%s usuario \"%s\" no encontrado para el comando \"%s\"\n"
-#: src/irc/irc-send.c:966 src/irc/irc-send.c:1274 src/irc/irc-recv.c:1505
+#: src/irc/irc-send.c:969 src/irc/irc-send.c:1277 src/irc/irc-recv.c:1505
#, c-format
msgid "%s cannot create new private window \"%s\"\n"
msgstr "%s no es posible crear una nueva ventana privada \"%s\"\n"
-#: src/irc/irc-send.c:1674
+#: src/irc/irc-send.c:1677
#, c-format
msgid "%s, compiled on %s %s\n"
msgstr "%s, compilado en %s %s\n"
@@ -2089,66 +2089,65 @@ msgstr ""
"%s no ha sido posible añadir el manejador para el mensaje \"%s\" (memoria "
"insuficiente)\n"
-#: src/gui/curses/gui-input.c:788
+#: src/gui/curses/gui-input.c:298
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s el lag (retraso) es alto, desconectando del servidor...\n"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "bytes"
msgstr "bytes"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Kb"
msgstr "KB"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Mb"
msgstr "MB"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Gb"
msgstr "GB"
-#: src/gui/curses/gui-display.c:1122
+#: src/gui/curses/gui-display.c:1116
msgid "(away)"
msgstr "(ausente)"
-#: src/gui/curses/gui-display.c:1235
-#, c-format
-msgid "%d:[not connected] "
-msgstr "%d:[no conectado] "
+#: src/gui/curses/gui-display.c:1233
+msgid "[not connected]"
+msgstr "[no conectado]"
-#: src/gui/curses/gui-display.c:1252
+#: src/gui/curses/gui-display.c:1249
msgid "Act: "
msgstr "Act: "
-#: src/gui/curses/gui-display.c:1301
+#: src/gui/curses/gui-display.c:1298
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
-#: src/gui/curses/gui-display.c:1322
+#: src/gui/curses/gui-display.c:1319
msgid "-MORE-"
msgstr "-MÁS-"
-#: src/gui/curses/gui-display.c:1509
+#: src/gui/curses/gui-display.c:1559
msgid " [A] Accept"
msgstr " [A] Aceptar"
-#: src/gui/curses/gui-display.c:1510 src/gui/curses/gui-display.c:1514
+#: src/gui/curses/gui-display.c:1560 src/gui/curses/gui-display.c:1564
msgid " [C] Cancel"
msgstr " [C] Cancelar"
-#: src/gui/curses/gui-display.c:1519
+#: src/gui/curses/gui-display.c:1569
msgid " [R] Remove"
msgstr " [R] Eliminar"
-#: src/gui/curses/gui-display.c:1523
+#: src/gui/curses/gui-display.c:1573
msgid " [P] Purge old DCC"
msgstr " [P] Purgar los viejos DCC"
-#: src/gui/curses/gui-display.c:1524
+#: src/gui/curses/gui-display.c:1574
msgid " [Q] Close DCC view"
msgstr " [Q] Cerrar la vista DCC"
@@ -2156,15 +2155,15 @@ msgstr " [Q] Cerrar la vista DCC"
msgid "server"
msgstr "servidor"
-#: src/gui/gui-common.c:330
+#: src/gui/gui-common.c:333
msgid "Not enough memory for infobar message\n"
msgstr "No hay suficiente memoria para el mensaje de la barra de información\n"
-#: src/gui/gui-common.c:505
+#: src/gui/gui-common.c:508
msgid "Not enough memory for new line\n"
msgstr "No hay suficiente memoria para una nueva línea\n"
-#: src/gui/gui-common.c:548
+#: src/gui/gui-common.c:551
msgid "Not enough memory for new message\n"
msgstr "No hay suficiente memoria para el mensaje de la barra de información\n"
@@ -2275,14 +2274,32 @@ msgid "command: name of a WeeChat or IRC command"
msgstr "comando: nombre de un comando de Weechat ó de IRC"
#: src/common/command.c:75
+msgid "bind/unbind keys"
+msgstr ""
+
+#: src/common/command.c:76
+msgid "[key function/command] [unbind key] [functions] [reset -yes]"
+msgstr ""
+
+#: src/common/command.c:77
+msgid ""
+"key: bind this key to an internal function or a command (beginning by \"/"
+"\")\n"
+"unbind: unbind a key (if \"all\", default bindings are restored)\n"
+"functions: list internal functions for key bindings\n"
+"reset: restore bindings to the default values and delete ALL personal "
+"binding (use carefully!)"
+msgstr ""
+
+#: src/common/command.c:82
msgid "list/load/unload Perl scripts"
msgstr "lista/carga/descarga de los Perl scripts"
-#: src/common/command.c:76 src/common/command.c:81
+#: src/common/command.c:83 src/common/command.c:88
msgid "[load filename] | [autoload] | [reload] | [unload]"
msgstr "[load fichero] | [autoload] | [reload] | [unload]"
-#: src/common/command.c:77
+#: src/common/command.c:84
msgid ""
"filename: Perl script (file) to load\n"
"Without argument, /perl command lists all loaded Perl scripts."
@@ -2290,11 +2307,11 @@ msgstr ""
"fichero: Perl script (archivo) a cargar\n"
"Sin argumentos, el comando /perl lista todos los Perl scripts cargados."
-#: src/common/command.c:80
+#: src/common/command.c:87
msgid "list/load/unload Python scripts"
msgstr "lista/carga/descarga de los Python scripts"
-#: src/common/command.c:82
+#: src/common/command.c:89
msgid ""
"filename: Python script (file) to load\n"
"Without argument, /python command lists all loaded Python scripts."
@@ -2302,11 +2319,11 @@ msgstr ""
"fichero: Python script (archivo) a cargar\n"
"Sin argumentos, el comando /python lista todos los Python scripts cargados."
-#: src/common/command.c:85
+#: src/common/command.c:92
msgid "list, add or remove servers"
msgstr "lista, añade o elimina servidores"
-#: src/common/command.c:86
+#: src/common/command.c:93
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-"
"pwd password] [-nicks nick1 [nick2 [nick3]]] [-username username] [-realname "
@@ -2318,7 +2335,7 @@ msgstr ""
"username nombre de usuario] [-realname nombre_real] [-command comando] [-"
"autojoin canal[,canal]] ] | [del nombre_de_servidor]"
-#: src/common/command.c:91
+#: src/common/command.c:98
#, fuzzy
msgid ""
"servername: server name, for internal & display use\n"
@@ -2344,27 +2361,27 @@ msgstr ""
"nombre_de_usuario: nombre de usuario\n"
"nombre_real: nombre real del usuario"
-#: src/common/command.c:103
+#: src/common/command.c:110
msgid "save config to disk"
msgstr "guardar configuración a disco"
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "[file]"
msgstr "[archivo]"
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "file: filename for writing config"
msgstr "archivo: fichero en el que guardar la configuración"
-#: src/common/command.c:106
+#: src/common/command.c:113
msgid "set config parameters"
msgstr "modificar parámetros de configuración"
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid "[option[=value]]"
msgstr "[opción[=valor]]"
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid ""
"option: name of an option\n"
"value: value for option"
@@ -2372,27 +2389,27 @@ msgstr ""
"opción: nombre de una opción\n"
"valor: valor para la opción"
-#: src/common/command.c:109
+#: src/common/command.c:116
msgid "remove an alias"
msgstr "eliminar un alias"
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name"
msgstr "alias"
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name: name of alias to remove"
msgstr "alias: nombre del alias a suprimir"
-#: src/common/command.c:112
+#: src/common/command.c:119
msgid "manage windows"
msgstr "gestión de ventanas"
-#: src/common/command.c:113
+#: src/common/command.c:120
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr "[list | splith | splitv | [merge [down | up | left | right | all]]]"
-#: src/common/command.c:115
+#: src/common/command.c:121
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2405,29 +2422,29 @@ msgstr ""
"splitv: dividir la ventana actual verticalmente\n"
"merge: fusionar una ventana con otra"
-#: src/common/command.c:261
+#: src/common/command.c:267
#, 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:271
+#: src/common/command.c:277
#, c-format
msgid "%s alias cannot run another alias!\n"
msgstr "%s ¡el alias no puede ejecutar otro alias!\n"
-#: src/common/command.c:278
+#: src/common/command.c:284
#, c-format
msgid "%s target command \"%s\" does not exist!\n"
msgstr "%s ¡el comando objetivo \"%s\" no existe!\n"
-#: src/common/command.c:486
+#: src/common/command.c:492
#, 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:498
+#: src/common/command.c:504
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
@@ -2436,19 +2453,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:520 src/common/command.c:590
+#: src/common/command.c:526 src/common/command.c:596
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr "%s el comando \"%s\" ha fallado\n"
-#: src/common/command.c:548
+#: src/common/command.c:554
#, 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:560
+#: src/common/command.c:566
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
@@ -2457,189 +2474,221 @@ 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:575
+#: src/common/command.c:581
#, 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:639
+#: src/common/command.c:645
#, 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:720
+#: src/common/command.c:726
#, 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:742
+#: src/common/command.c:748
#, c-format
msgid "%s unable to call handler for message (not enough memory)\n"
msgstr ""
-#: src/common/command.c:750
+#: src/common/command.c:756
msgid "This window is not a channel!\n"
msgstr "¡Esta ventana no es un canal!\n"
-#: src/common/command.c:778 src/common/command.c:802 src/common/command.c:906
+#: src/common/command.c:784 src/common/command.c:808 src/common/command.c:913
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr "%s faltan argumentos para el comando \"%s\"\n"
-#: src/common/command.c:787
+#: src/common/command.c:793
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr "Alias \"%s\" => \"%s\" creado\n"
-#: src/common/command.c:793
+#: src/common/command.c:799
#, 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:813
+#: src/common/command.c:819
msgid "List of aliases:\n"
msgstr "Lista de alias:\n"
-#: src/common/command.c:825
+#: src/common/command.c:831
msgid "No alias defined.\n"
msgstr "Ningún alias definido.\n"
-#: src/common/command.c:848
+#: src/common/command.c:854
msgid "Channel: "
msgstr "Canal: "
-#: src/common/command.c:851 src/common/command.c:861
+#: src/common/command.c:857 src/common/command.c:867
msgid " (server: "
msgstr " (servidor: "
-#: src/common/command.c:858
+#: src/common/command.c:864
msgid "Private with: "
msgstr "Privado con: "
-#: src/common/command.c:886
+#: src/common/command.c:893
msgid "Opened buffers:\n"
msgstr "Búfers abiertos:\n"
-#: src/common/command.c:929 src/common/command.c:1069
+#: src/common/command.c:936
#, c-format
msgid "%s incorrect buffer number\n"
msgstr "%s número de búfer incorrecto\n"
-#: src/common/command.c:943
+#: src/common/command.c:950
#, 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:953
+#: src/common/command.c:960
#, 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:992
+#: src/common/command.c:999
msgid "Notify levels: "
msgstr "Niveles de notificación: "
-#: src/common/command.c:1020 src/common/command.c:1042
+#: src/common/command.c:1027 src/common/command.c:1049
#, c-format
msgid "%s incorrect notify level (must be between %d and %d)\n"
msgstr "%s nivel de notificación incorrecto (debe estar entre %d y %d)\n"
-#: src/common/command.c:1029
+#: src/common/command.c:1036
#, c-format
msgid "%s incorrect buffer for notify (must be channel or private)\n"
msgstr ""
-#: src/common/command.c:1060
-#, 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:1094
+#: src/common/command.c:1116
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr "parámetro desconocido \"%s\" para el comando \"%s\"\n"
-#: src/common/command.c:1124
+#: src/common/command.c:1146
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr "%s ya conectado al servidor \"%s\"!\n"
-#: src/common/command.c:1132
+#: src/common/command.c:1154
#, c-format
msgid "%s currently connecting to server \"%s\"!\n"
msgstr "%s actualmente conectando al servidor \"%s\"!\n"
-#: src/common/command.c:1150 src/common/command.c:1225
+#: src/common/command.c:1172 src/common/command.c:1247
#, c-format
msgid "%s server not found\n"
msgstr "%s servidor no encontrado\n"
-#: src/common/command.c:1180 src/common/command.c:1444
-#: src/common/command.c:1587 src/common/command.c:2283
-#: src/common/command.c:2295
+#: src/common/command.c:1202 src/common/command.c:1598
+#: src/common/command.c:1741 src/common/command.c:2438
+#: src/common/command.c:2454
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr "%s opción desconocida para el comando \"%s\"\n"
-#: src/common/command.c:1209
+#: src/common/command.c:1231
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr "%s ¡no conectado al servidor \"%s\"!\n"
-#: src/common/command.c:1217
+#: src/common/command.c:1239
msgid "Auto-reconnection is cancelled\n"
msgstr "La reconexión automática está anulada\n"
-#: src/common/command.c:1243 src/common/weechat.c:273
+#: src/common/command.c:1265 src/common/weechat.c:273
#, c-format
msgid "%s internal commands:\n"
msgstr "Comandos internos %s :\n"
-#: src/common/command.c:1252 src/common/weechat.c:293
+#: src/common/command.c:1274 src/common/weechat.c:293
#, c-format
msgid "IRC commands:\n"
msgstr "Comandos IRC :\n"
-#: src/common/command.c:1319
+#: src/common/command.c:1341
#, 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:1343 src/common/command.c:1486
+#: src/common/command.c:1359
+msgid "New key binding:\n"
+msgstr ""
+
+#: src/common/command.c:1392
+msgid "Key bindings:\n"
+msgstr ""
+
+#: src/common/command.c:1404
+#, c-format
+msgid "Key \"%s\" unbinded\n"
+msgstr ""
+
+#: src/common/command.c:1409
+#, c-format
+msgid "%s unable to unbind key \"%s\"\n"
+msgstr ""
+
+#: src/common/command.c:1417 src/common/weechat.c:324
+#, c-format
+msgid "Internal key functions:\n"
+msgstr ""
+
+#: src/common/command.c:1435
+msgid "Default key bindings restored\n"
+msgstr ""
+
+#: src/common/command.c:1441
+#, c-format
+msgid "%s \"-yes\" argument is required for keys reset (securuty reason)\n"
+msgstr ""
+
+#: src/common/command.c:1470
+#, c-format
+msgid "%s unable to bind key \"%s\"\n"
+msgstr ""
+
+#: src/common/command.c:1497 src/common/command.c:1640
#, c-format
msgid "Registered %s scripts:\n"
msgstr "%s scripts registrados:\n"
-#: src/common/command.c:1360 src/common/command.c:1383
-#: src/common/command.c:1406 src/common/command.c:1503
-#: src/common/command.c:1526 src/common/command.c:1549
+#: src/common/command.c:1514 src/common/command.c:1537
+#: src/common/command.c:1560 src/common/command.c:1657
+#: src/common/command.c:1680 src/common/command.c:1703
msgid " (none)\n"
msgstr " (ninguno)\n"
-#: src/common/command.c:1365 src/common/command.c:1508
+#: src/common/command.c:1519 src/common/command.c:1662
#, c-format
msgid "%s message handlers:\n"
msgstr "Funciones %s para mensajes:\n"
-#: src/common/command.c:1374 src/common/command.c:1517
+#: src/common/command.c:1528 src/common/command.c:1671
#, c-format
msgid " IRC(%s) => %s(%s)\n"
msgstr " IRC(%s) => %s(%s)\n"
-#: src/common/command.c:1388 src/common/command.c:1531
+#: src/common/command.c:1542 src/common/command.c:1685
#, c-format
msgid "%s command handlers:\n"
msgstr "Comandos %s :\n"
-#: src/common/command.c:1397 src/common/command.c:1540
+#: src/common/command.c:1551 src/common/command.c:1694
#, c-format
msgid " Command /%s => %s(%s)\n"
msgstr " Comando /%s => %s(%s)\n"
-#: src/common/command.c:1457
+#: src/common/command.c:1611
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
@@ -2648,7 +2697,7 @@ msgstr ""
"Por favor, recompile WeeChat con la opción \"--enable-perl\" para el "
"script ./configure\n"
-#: src/common/command.c:1600
+#: src/common/command.c:1754
msgid ""
"WeeChat was build without Python support.\n"
"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
@@ -2658,32 +2707,32 @@ msgstr ""
"Por favor, recompile WeeChat con la opción \"--enable-python\" para el "
"script ./configure\n"
-#: src/common/command.c:1648
+#: src/common/command.c:1802
msgid "No server.\n"
msgstr "Ningún servidor.\n"
-#: src/common/command.c:1659
+#: src/common/command.c:1813
#, c-format
msgid "Server '%s' not found.\n"
msgstr "Servidor '%s' no encontrado.\n"
-#: src/common/command.c:1671
+#: src/common/command.c:1825
#, 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:1679
+#: src/common/command.c:1833
#, 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:1698
+#: src/common/command.c:1852
#, 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:1706
+#: src/common/command.c:1860
#, c-format
msgid ""
"%s you can not delete server \"%s\" because you are connected to. Try /"
@@ -2692,108 +2741,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:1722 src/common/command.c:1868
+#: src/common/command.c:1876 src/common/command.c:2022
msgid "Server"
msgstr "Servidor"
-#: src/common/command.c:1725
+#: src/common/command.c:1879
msgid "has been deleted\n"
msgstr "ha sido eliminado\n"
-#: src/common/command.c:1740
+#: src/common/command.c:1894
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr "%s faltan parámetros para el comando \"%s\"\n"
-#: src/common/command.c:1750
+#: src/common/command.c:1904
#, 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:1779 src/common/command.c:1807
-#: src/common/command.c:1820 src/common/command.c:1846
+#: src/common/command.c:1933 src/common/command.c:1961
+#: src/common/command.c:1974 src/common/command.c:2000
#, c-format
msgid "%s missing password for \"%s\" parameter\n"
msgstr "%s falta contraseña para el comando \"%s\"\n"
-#: src/common/command.c:1792
+#: src/common/command.c:1946
#, 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:1833
+#: src/common/command.c:1987
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr "%s falta comando para el parámetro \"%s\"\n"
-#: src/common/command.c:1871
+#: src/common/command.c:2025
msgid "created\n"
msgstr "creado\n"
-#: src/common/command.c:1877
+#: src/common/command.c:2031
#, c-format
msgid "%s unable to create server\n"
msgstr "%s no es posible crear el servidor\n"
-#: src/common/command.c:1932
+#: src/common/command.c:2086
msgid "(unknown)"
msgstr "(desconocido)"
-#: src/common/command.c:1955
+#: src/common/command.c:2109
msgid "(password hidden) "
msgstr "(contraseña oculta) "
-#: src/common/command.c:2019
+#: src/common/command.c:2173
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr "%s servidor \"%s\" no encontrado\n"
-#: src/common/command.c:2050 src/common/command.c:2096
+#: src/common/command.c:2204 src/common/command.c:2250
#, 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:2055 src/common/command.c:2088
+#: src/common/command.c:2209 src/common/command.c:2242
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr "%s valor incorrecto para la opción \"%s\"\n"
-#: src/common/command.c:2071
+#: src/common/command.c:2225
#, 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:2169
+#: src/common/command.c:2324
#, 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:2172
+#: src/common/command.c:2327
msgid "No config option found\n"
msgstr "Ninguna opción de configuración encontrada\n"
-#: src/common/command.c:2178
+#: src/common/command.c:2333
#, 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:2181
+#: src/common/command.c:2336
msgid "config option(s) found\n"
msgstr "opción/opciones de configuración encontrada(s)\n"
-#: src/common/command.c:2201
+#: src/common/command.c:2356
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr "%s alias o comando \"%s\" no encontrado\n"
-#: src/common/command.c:2211
+#: src/common/command.c:2366
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr "Alias \"%s\" eliminado\n"
-#: src/common/command.c:2231
+#: src/common/command.c:2386
msgid "Opened windows:\n"
msgstr "Ventanas abiertas:\n"
@@ -2938,57 +2987,62 @@ msgstr ""
"donde 'j' es el nombre del alias, y 'join' el comando asociado.\n"
"\n"
-#: src/common/weechat.c:371
+#: src/common/weechat.c:344
+#, c-format
+msgid "%s default keys:\n"
+msgstr ""
+
+#: src/common/weechat.c:424
#, c-format
msgid "%s invalid syntax for IRC server ('%s'), ignored\n"
msgstr "%s sintaxis inválida para el servidor IRC ('%s'), ignorado\n"
-#: src/common/weechat.c:384
+#: src/common/weechat.c:437
#, c-format
msgid "%s unable to create server ('%s'), ignored\n"
msgstr "%s no es posible crear el servidor ('%s'), ignorado\n"
-#: src/common/weechat.c:393
+#: src/common/weechat.c:446
#, c-format
msgid "%s unknown parameter '%s', ignored\n"
msgstr "%s parámetro desconocido '%s', ignorado\n"
-#: src/common/weechat.c:413
+#: src/common/weechat.c:466
#, c-format
msgid "%s cannot create directory \"%s\"\n"
msgstr "%s no es posible crear el directorio \"%s\"\n"
-#: src/common/weechat.c:439
+#: src/common/weechat.c:492
#, c-format
msgid "%s unable to get HOME directory\n"
msgstr "%s no ha sido posible leer el directorio HOME\n"
-#: src/common/weechat.c:448
+#: src/common/weechat.c:501
#, c-format
msgid "%s not enough memory for home directory\n"
msgstr "%s no hay suficiente memoria para el directorio home\n"
-#: src/common/weechat.c:458
+#: src/common/weechat.c:511
#, c-format
msgid "%s unable to create ~/.weechat directory\n"
msgstr "%s no es posible crear el directorio ~/.weechat\n"
-#: src/common/weechat.c:510
+#: src/common/weechat.c:563
#, c-format
msgid "%s unable to create ~/.weechat/logs directory\n"
msgstr "%s no es posible crear el directorio ~/.weechat/logs\n"
-#: src/common/weechat.c:553
+#: src/common/weechat.c:606
#, c-format
msgid "%s unable to create/append to log file (~/.weechat/%s)"
msgstr "%s no es posible crear/añadir en el fichero de log (~/.weechat/%s)"
-#: src/common/weechat.c:576
+#: src/common/weechat.c:629
#, c-format
msgid "%sWelcome to "
msgstr "%sBienvenido a "
-#: src/common/weechat.c:589 src/common/weechat.c:598
+#: src/common/weechat.c:642 src/common/weechat.c:651
msgid "compiled on"
msgstr "compilado en"
@@ -3000,33 +3054,33 @@ msgstr "Error WeeChat:"
msgid "WeeChat Warning:"
msgstr "Advertencia WeeChat:"
-#: src/common/weeconfig.c:88 src/common/weeconfig.c:89
+#: src/common/weeconfig.c:90 src/common/weeconfig.c:91
msgid "set title for window (terminal for Curses GUI) with name & version"
msgstr ""
"define el título de la ventana (el terminal para la interfaz Curses) con el "
"nombre y la versión"
-#: src/common/weeconfig.c:92 src/common/weeconfig.c:93
+#: src/common/weeconfig.c:94 src/common/weeconfig.c:95
msgid "display WeeChat logo at startup"
msgstr "mostrar el logotipo de WeeChat en el arranque"
-#: src/common/weeconfig.c:96 src/common/weeconfig.c:97
+#: src/common/weeconfig.c:98 src/common/weeconfig.c:99
msgid "display WeeChat version at startup"
msgstr "mostrar la versión de Weechat en el arranque"
-#: src/common/weeconfig.c:100
+#: src/common/weeconfig.c:102
msgid "WeeChat slogan"
msgstr "eslógan de WeeChat"
-#: src/common/weeconfig.c:101
+#: src/common/weeconfig.c:103
msgid "WeeChat slogan (if empty, slogan is not used)"
msgstr "eslógan de WeeChat (si está vacío, el eslógan no será utilizado)"
-#: src/common/weeconfig.c:104
+#: src/common/weeconfig.c:106
msgid "charset for decoding messages from server"
msgstr "juego de caracteres para decodificar los mensajes del servidor"
-#: src/common/weeconfig.c:105
+#: src/common/weeconfig.c:107
msgid ""
"charset for decoding messages from server, examples: UTF-8, ISO-8859-1 (if "
"empty, messages are not converted)"
@@ -3034,11 +3088,11 @@ msgstr ""
"juego de caracteres para decodificar los mensajes del servidor, ejemplos: "
"UTF-8, ISO-8859-1 (si no se especifica, los mensajes no son convertidos)"
-#: src/common/weeconfig.c:108
+#: src/common/weeconfig.c:110
msgid "charset for encoding messages sent to server"
msgstr "juego de caracteres para codificar los mensajes enviados al servidor"
-#: src/common/weeconfig.c:109
+#: src/common/weeconfig.c:111
msgid ""
"charset for encoding messages sent to server, examples: UFT-8, ISO-8859-1 "
"(if empty, local charset is used)"
@@ -3047,11 +3101,11 @@ msgstr ""
"ejemplos: UFT-8, ISO-8859-1 (si no se especifica, se utiliza el juego de "
"caracteres local)"
-#: src/common/weeconfig.c:112
+#: src/common/weeconfig.c:114
msgid "internal WeeChat charset (should be ISO)"
msgstr "juego de caracteres interno de WeeChat (debería ser ISO)"
-#: src/common/weeconfig.c:113
+#: src/common/weeconfig.c:115
msgid ""
"internal WeeChat charset, should be ISO-xxxx even if locale is UTF-8 (if "
"empty, local charset is used)"
@@ -3060,45 +3114,45 @@ msgstr ""
"locale sea UTF-8 (si no se especifica, se utiliza el juego de caracteres "
"local)"
-#: src/common/weeconfig.c:116 src/common/weeconfig.c:117
+#: src/common/weeconfig.c:118 src/common/weeconfig.c:119
msgid "timestamp for buffers"
msgstr "fecha y hora para las búfers"
-#: src/common/weeconfig.c:120 src/common/weeconfig.c:121
+#: src/common/weeconfig.c:122 src/common/weeconfig.c:123
msgid "display nick names with different colors"
msgstr "mostrar nombres de usuario con colores diferentes"
-#: src/common/weeconfig.c:124 src/common/weeconfig.c:125
+#: src/common/weeconfig.c:126 src/common/weeconfig.c:127
msgid "display actions with different colors"
msgstr "mostrar acciones con colores diferentes"
-#: src/common/weeconfig.c:128 src/common/weeconfig.c:129
+#: src/common/weeconfig.c:130 src/common/weeconfig.c:131
msgid "remove colors from incoming messages"
msgstr "quitar colores en los mensajes entrantes"
-#: src/common/weeconfig.c:132
+#: src/common/weeconfig.c:134
msgid "display nicklist window"
msgstr "mostrar ventana de usuarios"
-#: src/common/weeconfig.c:133
+#: src/common/weeconfig.c:135
msgid "display nicklist window (for channel windows)"
msgstr "mostrar ventana de usuarios (para las ventanas de canal)"
-#: src/common/weeconfig.c:136
+#: src/common/weeconfig.c:138
msgid "nicklist position"
msgstr "posición de la ventana de usuarios"
-#: src/common/weeconfig.c:137
+#: src/common/weeconfig.c:139
msgid "nicklist position (top, left, right (default), bottom)"
msgstr ""
"posición de la ventana de usuarios (arriba (top), izquierda (left), derecha "
"(right, por defecto), abajo (bottom))"
-#: src/common/weeconfig.c:140
+#: src/common/weeconfig.c:142
msgid "min size for nicklist"
msgstr "tamaño mínimo para la ventana de usuarios"
-#: src/common/weeconfig.c:141
+#: src/common/weeconfig.c:143
msgid ""
"min size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no min size))"
@@ -3106,11 +3160,11 @@ msgstr ""
"tamaño mínimo para la ventana de usuarios (ancho o alto, dependiendo de "
"look_nicklist_position (0 = sin tamaño mínimo))"
-#: src/common/weeconfig.c:145
+#: src/common/weeconfig.c:147
msgid "max size for nicklist"
msgstr "tamaño máximo para la ventana de usuarios"
-#: src/common/weeconfig.c:146
+#: src/common/weeconfig.c:148
msgid ""
"max size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no max size; if min == max and > 0, then size is fixed))"
@@ -3119,37 +3173,41 @@ msgstr ""
"look_nicklist_position (0 = sin tamaño máximo, si min == max y > 0, entonces "
"se fija el tamaño))"
-#: src/common/weeconfig.c:150 src/common/weeconfig.c:151
+#: src/common/weeconfig.c:152 src/common/weeconfig.c:153
msgid "text to display instead of nick when not connected"
msgstr "texto a mostrar en lugar del nick cuando no se está conectado"
-#: src/common/weeconfig.c:154 src/common/weeconfig.c:155
+#: src/common/weeconfig.c:156 src/common/weeconfig.c:157
msgid "display nick mode ((half)op/voice) before each nick"
msgstr "mostrar modo del usuario ((half)op/voice) antes de cada usuario"
-#: src/common/weeconfig.c:158 src/common/weeconfig.c:159
+#: src/common/weeconfig.c:160 src/common/weeconfig.c:161
msgid "display space if nick mode is not (half)op/voice"
msgstr "mostrar un espacio si el modo de usuario no es (half)op/voice"
-#: src/common/weeconfig.c:162 src/common/weeconfig.c:163
+#: src/common/weeconfig.c:164 src/common/weeconfig.c:165
msgid "the string inserted after nick completion"
msgstr "la cadena mostrada tras la finalización de los nombres de usuario"
-#: src/common/weeconfig.c:166 src/common/weeconfig.c:167
+#: src/common/weeconfig.c:168 src/common/weeconfig.c:169
msgid "enable info bar"
msgstr "activa la barra de información"
-#: src/common/weeconfig.c:170 src/common/weeconfig.c:171
+#: src/common/weeconfig.c:172 src/common/weeconfig.c:173
msgid "timestamp for time in infobar"
msgstr "fecha y hora para las conversaciones guardadas"
-#: src/common/weeconfig.c:174
+#: src/common/weeconfig.c:176 src/common/weeconfig.c:177
+msgid "display seconds in infobar time"
+msgstr ""
+
+#: src/common/weeconfig.c:180
msgid "delay (in seconds) for highlight messages in infobar"
msgstr ""
"retraso (en segundos) para la notificación de mensajes en la barra de "
"información"
-#: src/common/weeconfig.c:175
+#: src/common/weeconfig.c:181
msgid ""
"delay (in seconds) for highlight messages in infobar (0 = disable highlight "
"notifications in infobar)"
@@ -3157,260 +3215,264 @@ msgstr ""
"retraso (en segundos) para la notificación de mensajes en la barra de "
"información (0 = desactivar las notificaciones en la barra de información)"
-#: src/common/weeconfig.c:233 src/common/weeconfig.c:234
+#: src/common/weeconfig.c:240 src/common/weeconfig.c:241
msgid "color for title bar"
msgstr "color para la barra de título"
-#: src/common/weeconfig.c:237 src/common/weeconfig.c:238
+#: src/common/weeconfig.c:244 src/common/weeconfig.c:245
msgid "background for title bar"
msgstr "color de fondo para la barra de título"
-#: src/common/weeconfig.c:243 src/common/weeconfig.c:244
+#: src/common/weeconfig.c:250 src/common/weeconfig.c:251
msgid "color for chat text"
msgstr "color para el texto de conversación"
-#: src/common/weeconfig.c:247
+#: src/common/weeconfig.c:254
msgid "color for time"
msgstr "color para la hora"
-#: src/common/weeconfig.c:248
+#: src/common/weeconfig.c:255
msgid "color for time in chat window"
msgstr "color para la hora en la ventana de conversación"
-#: src/common/weeconfig.c:251
+#: src/common/weeconfig.c:258
msgid "color for time separator"
msgstr "color para el separador de la hora"
-#: src/common/weeconfig.c:252
+#: src/common/weeconfig.c:259
msgid "color for time separator (chat window)"
msgstr "color para el separador de la hora (ventana de conversación)"
-#: src/common/weeconfig.c:255 src/common/weeconfig.c:256
+#: src/common/weeconfig.c:262 src/common/weeconfig.c:263
msgid "color for 1st and 3rd char of prefix"
msgstr "color para el primer o tercer carácter de prefijo"
-#: src/common/weeconfig.c:259 src/common/weeconfig.c:260
+#: src/common/weeconfig.c:266 src/common/weeconfig.c:267
msgid "color for middle char of prefix"
msgstr "color para el carácter de en medio del prefijo"
-#: src/common/weeconfig.c:263
+#: src/common/weeconfig.c:270
msgid "color for nicks in actions"
msgstr "color para los nombres de usuario en las acciones"
-#: src/common/weeconfig.c:264
+#: src/common/weeconfig.c:271
msgid "color for nicks in actions (chat window)"
msgstr ""
"color para los nombres de usuario en las acciones (ventana de conversación)"
-#: src/common/weeconfig.c:267
+#: src/common/weeconfig.c:274
msgid "color for hostnames"
msgstr "color para los nombres de máquina"
-#: src/common/weeconfig.c:268
+#: src/common/weeconfig.c:275
msgid "color for hostnames (chat window)"
msgstr "color para los nombres de máquina (ventana de conversación)"
-#: src/common/weeconfig.c:271
+#: src/common/weeconfig.c:278
msgid "color for channel names in actions"
msgstr "color para los nombres de canal en las acciones"
-#: src/common/weeconfig.c:272
+#: src/common/weeconfig.c:279
msgid "color for channel names in actions (chat window)"
msgstr ""
"color para los nombres de canal en las acciones (ventana de conversación)"
-#: src/common/weeconfig.c:275
+#: src/common/weeconfig.c:282
msgid "color for dark separators"
msgstr "color para los separadores oscuros"
-#: src/common/weeconfig.c:276
+#: src/common/weeconfig.c:283
msgid "color for dark separators (chat window)"
msgstr "color para los separadores oscuros (ventana de conversación)"
-#: src/common/weeconfig.c:279
+#: src/common/weeconfig.c:286
msgid "color for highlighted nick"
msgstr "color para el alias subrayado"
-#: src/common/weeconfig.c:280
+#: src/common/weeconfig.c:287
msgid "color for highlighted nick (chat window)"
msgstr "color para el alias subrayado (ventana de conversación)"
-#: src/common/weeconfig.c:283
+#: src/common/weeconfig.c:290
msgid "background for chat"
msgstr "color de fondo para la conversación"
-#: src/common/weeconfig.c:284
+#: src/common/weeconfig.c:291
msgid "background for chat window"
msgstr "color de fondo para la ventana de conversación"
-#: src/common/weeconfig.c:289 src/common/weeconfig.c:290
+#: src/common/weeconfig.c:296 src/common/weeconfig.c:297
msgid "color for status bar"
msgstr "color para la barra de estado"
-#: src/common/weeconfig.c:293 src/common/weeconfig.c:294
+#: src/common/weeconfig.c:300 src/common/weeconfig.c:301
msgid "color for status bar delimiters"
msgstr "color para los delimitadores de la barra de estado"
-#: src/common/weeconfig.c:297
+#: src/common/weeconfig.c:304
msgid "color for window with new messages"
msgstr "color para una ventana con mensajes nuevos"
-#: src/common/weeconfig.c:298
+#: src/common/weeconfig.c:305
msgid "color for window with new messages (status bar)"
msgstr "color para una ventana con mensajes nuevos (barra de estado)"
-#: src/common/weeconfig.c:301
+#: src/common/weeconfig.c:308
msgid "color for window with highlight"
msgstr "color para una ventana con resaltado"
-#: src/common/weeconfig.c:302
+#: src/common/weeconfig.c:309
msgid "color for window with highlight (status bar)"
msgstr "color para una ventana con resaltado (barra de estado)"
-#: src/common/weeconfig.c:305
+#: src/common/weeconfig.c:312
msgid "color for window with new data (not messages)"
msgstr "color para una ventana con nuevos datos (no mensajes)"
-#: src/common/weeconfig.c:306
+#: src/common/weeconfig.c:313
msgid "color for window with new data (not messages) (status bar)"
msgstr ""
"color para una ventana con nuevos datos (no mensajes) (barra de estado)"
-#: src/common/weeconfig.c:309
+#: src/common/weeconfig.c:316
msgid "color for \"-MORE-\" text"
msgstr "color para el texto \"-MÁS-\""
-#: src/common/weeconfig.c:310
+#: src/common/weeconfig.c:317
msgid "color for window with new data (status bar)"
msgstr "color para una ventana con nuevos datos (barra de estado)"
-#: src/common/weeconfig.c:313 src/common/weeconfig.c:314
+#: src/common/weeconfig.c:320 src/common/weeconfig.c:321
msgid "background for status window"
msgstr "color de fondo para la ventana de estado"
-#: src/common/weeconfig.c:319 src/common/weeconfig.c:320
+#: src/common/weeconfig.c:326 src/common/weeconfig.c:327
msgid "color for info bar text"
msgstr "color para el texto de la barra de información"
-#: src/common/weeconfig.c:323 src/common/weeconfig.c:324
+#: src/common/weeconfig.c:330 src/common/weeconfig.c:331
+msgid "color for infobar delimiters"
+msgstr "color para los delimitadores de la barra de información"
+
+#: src/common/weeconfig.c:334 src/common/weeconfig.c:335
msgid "color for info bar highlight notification"
msgstr "color para la notificación en la barra de información"
-#: src/common/weeconfig.c:327 src/common/weeconfig.c:328
+#: src/common/weeconfig.c:338 src/common/weeconfig.c:339
msgid "background for info bar window"
msgstr "color de fondo para la ventana de la barra de información"
-#: src/common/weeconfig.c:333 src/common/weeconfig.c:334
+#: src/common/weeconfig.c:344 src/common/weeconfig.c:345
msgid "color for input text"
msgstr "color para el texto de entrada"
-#: src/common/weeconfig.c:337 src/common/weeconfig.c:338
+#: src/common/weeconfig.c:348 src/common/weeconfig.c:349
msgid "color for input text (channel name)"
msgstr "color para el texto de entrada (nombre de canal)"
-#: src/common/weeconfig.c:341 src/common/weeconfig.c:342
+#: src/common/weeconfig.c:352 src/common/weeconfig.c:353
msgid "color for input text (nick name)"
msgstr "color para el texto de entrada (alias)"
-#: src/common/weeconfig.c:345 src/common/weeconfig.c:346
+#: src/common/weeconfig.c:356 src/common/weeconfig.c:357
msgid "background for input window"
msgstr "color de fondo para la ventana de entrada"
-#: src/common/weeconfig.c:351 src/common/weeconfig.c:352
+#: src/common/weeconfig.c:362 src/common/weeconfig.c:363
msgid "color for nicknames"
msgstr "color para los nombres de usuario"
-#: src/common/weeconfig.c:355 src/common/weeconfig.c:356
+#: src/common/weeconfig.c:366 src/common/weeconfig.c:367
msgid "color for away nicknames"
msgstr "color para los usuarios ausentes"
-#: src/common/weeconfig.c:359
+#: src/common/weeconfig.c:370
msgid "color for chan owner symbol"
msgstr "color para el símbolo de propietario de canal"
-#: src/common/weeconfig.c:360
+#: src/common/weeconfig.c:371
msgid "color for chan owner symbol (specific to unrealircd)"
msgstr ""
"color para el símbolo de propietario de canal (especificado en unrealircd)"
-#: src/common/weeconfig.c:363
+#: src/common/weeconfig.c:374
msgid "color for chan admin symbol"
msgstr "color para el símbolo de administrador de canal"
-#: src/common/weeconfig.c:364
+#: src/common/weeconfig.c:375
msgid "color for chan admin symbol (specific to unrealircd)"
msgstr ""
"color para el símbolo de administrador de canal (especificado en unrealircd)"
-#: src/common/weeconfig.c:367 src/common/weeconfig.c:368
+#: src/common/weeconfig.c:378 src/common/weeconfig.c:379
msgid "color for operator symbol"
msgstr "color para el símbolo de operador"
-#: src/common/weeconfig.c:371 src/common/weeconfig.c:372
+#: src/common/weeconfig.c:382 src/common/weeconfig.c:383
msgid "color for half-operator symbol"
msgstr "color para el símbolo de semi-operador"
-#: src/common/weeconfig.c:375 src/common/weeconfig.c:376
+#: src/common/weeconfig.c:386 src/common/weeconfig.c:387
msgid "color for voice symbol"
msgstr "color para el símbolo de voz"
-#: src/common/weeconfig.c:379 src/common/weeconfig.c:380
+#: src/common/weeconfig.c:390 src/common/weeconfig.c:391
msgid "color for '+' when scrolling nicks"
msgstr ""
-#: src/common/weeconfig.c:383 src/common/weeconfig.c:384
+#: src/common/weeconfig.c:394 src/common/weeconfig.c:395
msgid "color for nick separator"
msgstr "color para el separador de alias"
-#: src/common/weeconfig.c:387 src/common/weeconfig.c:388
+#: src/common/weeconfig.c:398 src/common/weeconfig.c:399
msgid "color for local nick"
msgstr "color para el alias local"
-#: src/common/weeconfig.c:391 src/common/weeconfig.c:392
+#: src/common/weeconfig.c:402 src/common/weeconfig.c:403
msgid "color for other nick in private window"
msgstr "color para el otro alias en la ventana privada"
-#: src/common/weeconfig.c:395 src/common/weeconfig.c:396
+#: src/common/weeconfig.c:406 src/common/weeconfig.c:407
msgid "background for nicknames"
msgstr "color de fondo para los nombres de usuario"
-#: src/common/weeconfig.c:401
+#: src/common/weeconfig.c:412
msgid "color for selected DCC"
msgstr "color para el DCC seleccionado"
-#: src/common/weeconfig.c:402
+#: src/common/weeconfig.c:413
msgid "color for selected DCC (chat window)"
msgstr "color para el DCC seleccionado (ventana de conversación)"
-#: src/common/weeconfig.c:405 src/common/weeconfig.c:406
+#: src/common/weeconfig.c:416 src/common/weeconfig.c:417
msgid "color for \"waiting\" dcc status"
msgstr "color para el estado dcc \"esperando\""
-#: src/common/weeconfig.c:409 src/common/weeconfig.c:410
+#: src/common/weeconfig.c:420 src/common/weeconfig.c:421
msgid "color for \"connecting\" dcc status"
msgstr "color para el estado dcc \"conectando\""
-#: src/common/weeconfig.c:413 src/common/weeconfig.c:414
+#: src/common/weeconfig.c:424 src/common/weeconfig.c:425
msgid "color for \"active\" dcc status"
msgstr "color para el estado dcc \"activo\""
-#: src/common/weeconfig.c:417 src/common/weeconfig.c:418
+#: src/common/weeconfig.c:428 src/common/weeconfig.c:429
msgid "color for \"done\" dcc status"
msgstr "color para el estado dcc \"terminado\""
-#: src/common/weeconfig.c:421 src/common/weeconfig.c:422
+#: src/common/weeconfig.c:432 src/common/weeconfig.c:433
msgid "color for \"failed\" dcc status"
msgstr "color para el estado dcc \"fallo\""
-#: src/common/weeconfig.c:425 src/common/weeconfig.c:426
+#: src/common/weeconfig.c:436 src/common/weeconfig.c:437
msgid "color for \"aborted\" dcc status"
msgstr "color para el estado dcc \"abortado\""
-#: src/common/weeconfig.c:439
+#: src/common/weeconfig.c:450
msgid "max lines in history (per window)"
msgstr "número máximo de líneas en el histórico (por ventana)"
-#: src/common/weeconfig.c:440
+#: src/common/weeconfig.c:451
msgid ""
"maximum number of lines in history for one server/channel/private window (0 "
"= unlimited)"
@@ -3418,341 +3480,341 @@ msgstr ""
"número máximo de líneas en el histórico para un servidor/canal/privado (0 = "
"ilimitado)"
-#: src/common/weeconfig.c:444
+#: src/common/weeconfig.c:455
msgid "max user commands in history"
msgstr "número máximo de comandos de usuario en el histórico"
-#: src/common/weeconfig.c:445
+#: src/common/weeconfig.c:456
msgid "maximum number of user commands in history (0 = unlimited)"
msgstr "número máximo de comandos de usuario en el histórico (0 = ilimitado)"
-#: src/common/weeconfig.c:462 src/common/weeconfig.c:463
+#: src/common/weeconfig.c:473 src/common/weeconfig.c:474
msgid "automatically log server messages"
msgstr "registrar automáticamente los mensajes de servidor"
-#: src/common/weeconfig.c:466 src/common/weeconfig.c:467
+#: src/common/weeconfig.c:477 src/common/weeconfig.c:478
msgid "automatically log channel chats"
msgstr "registrar automáticamente las conversaciones de canal"
-#: src/common/weeconfig.c:470 src/common/weeconfig.c:471
+#: src/common/weeconfig.c:481 src/common/weeconfig.c:482
msgid "automatically log private chats"
msgstr "registrar automáticamente las conversaciones privadas"
-#: src/common/weeconfig.c:474 src/common/weeconfig.c:475
+#: src/common/weeconfig.c:485 src/common/weeconfig.c:486
msgid "log messages from plugins (scripts)"
msgstr "registrar mensajes de plugins (scripts)"
-#: src/common/weeconfig.c:478
+#: src/common/weeconfig.c:489
msgid "path for log files"
msgstr "ruta para los archivos de registro (logs)"
-#: src/common/weeconfig.c:479
+#: src/common/weeconfig.c:490
msgid "path for WeeChat log files"
msgstr "ruta para los archivos de registro (logs) de WeeChat"
-#: src/common/weeconfig.c:482
+#: src/common/weeconfig.c:493
msgid "timestamp for log"
msgstr "fecha y hora para las conversaciones registradas"
-#: src/common/weeconfig.c:483
+#: src/common/weeconfig.c:494
msgid "timestamp for log (see man strftime for date/time specifiers)"
msgstr ""
"fecha y hora para los registros (ver man strftime para el formato de fecha/"
"hora)"
-#: src/common/weeconfig.c:486 src/common/weeconfig.c:487
+#: src/common/weeconfig.c:497 src/common/weeconfig.c:498
msgid "hide password displayed by nickserv"
msgstr "ocultar contraseña mostrada por nickserv"
-#: src/common/weeconfig.c:506
+#: src/common/weeconfig.c:517
msgid "display message to all channels when away"
msgstr "mostrar mensaje en todos los canales cuando se está ausente"
-#: src/common/weeconfig.c:507
+#: src/common/weeconfig.c:518
msgid "display message to all channels when (un)marking as away"
msgstr ""
"mostrar mensaje en todos los canales cuando se vuelva del estado ausente"
-#: src/common/weeconfig.c:510 src/common/weeconfig.c:511
+#: src/common/weeconfig.c:521 src/common/weeconfig.c:522
msgid "default message when away"
msgstr "mensaje por defecto para el estado ausente"
-#: src/common/weeconfig.c:514 src/common/weeconfig.c:515
+#: src/common/weeconfig.c:525 src/common/weeconfig.c:526
msgid "default part message (leaving channel)"
msgstr "mensaje por defecto de salida (saliendo de un canal)"
-#: src/common/weeconfig.c:518
+#: src/common/weeconfig.c:529
msgid "default quit message"
msgstr "mensaje de fin por defecto"
-#: src/common/weeconfig.c:519
+#: src/common/weeconfig.c:530
msgid ""
"default quit message ('%v' will be replaced by WeeChat version in string)"
msgstr ""
"mensaje de fin por defecto ('%v' será reemplazado por la versión de WeeChat "
"en la cadena)"
-#: src/common/weeconfig.c:522
+#: src/common/weeconfig.c:533
msgid "interval between two checks for away"
msgstr "intervalo entre dos comprobaciones de ausencia"
-#: src/common/weeconfig.c:523
+#: src/common/weeconfig.c:534
msgid "interval between two checks for away (in minutes, 0 = never check)"
msgstr ""
"intervalo entre dos comprobaciones de ausencia (en minutos, 0 = no comprobar)"
-#: src/common/weeconfig.c:526
+#: src/common/weeconfig.c:537
msgid "interval between two checks for lag"
msgstr "intervalo entre dos medidas de lag (retraso)"
-#: src/common/weeconfig.c:527
+#: src/common/weeconfig.c:538
msgid "interval between two checks for lag (in seconds)"
msgstr "intervalo entre dos medidas de lag (en segundos)"
-#: src/common/weeconfig.c:530
+#: src/common/weeconfig.c:541
msgid "minimum lag to show"
msgstr "lag (retraso) mínimo a mostrar"
-#: src/common/weeconfig.c:531
+#: src/common/weeconfig.c:542
msgid "minimum lag to show (in seconds)"
msgstr "lag mínimo a mostrar (en segundos)"
-#: src/common/weeconfig.c:534
+#: src/common/weeconfig.c:545
msgid "disconnect after important lag"
msgstr "desconexión tras un lag importante"
-#: src/common/weeconfig.c:535
+#: src/common/weeconfig.c:546
msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
"desconexión tras un lag importante (en minutos, 0 = no desconectar nunca)"
-#: src/common/weeconfig.c:538 src/common/weeconfig.c:539
+#: src/common/weeconfig.c:549 src/common/weeconfig.c:550
msgid "create a FIFO pipe for remote control"
msgstr "crea una tubería FIFO para control remoto"
-#: src/common/weeconfig.c:558
+#: src/common/weeconfig.c:569
msgid "automatically accept dcc files"
msgstr "aceptar automáticamente los ficheros dcc"
-#: src/common/weeconfig.c:559
+#: src/common/weeconfig.c:570
msgid "automatically accept incoming dcc files"
msgstr "aceptar automáticamente los ficheros dcc entrantes"
-#: src/common/weeconfig.c:562
+#: src/common/weeconfig.c:573
msgid "automatically accept dcc chats"
msgstr "aceptar automáticamente las peticiones de conversación dcc"
-#: src/common/weeconfig.c:563
+#: src/common/weeconfig.c:574
msgid "automatically accept dcc chats (use carefully!)"
msgstr ""
"aceptar automáticamente las peticiones de conversación dcc (¡utilizar con "
"precaución!)"
-#: src/common/weeconfig.c:566
+#: src/common/weeconfig.c:577
msgid "timeout for dcc request"
msgstr "tiempo de espera (timeout) para la petición dcc"
-#: src/common/weeconfig.c:567
+#: src/common/weeconfig.c:578
msgid "timeout for dcc request (in seconds)"
msgstr "tiempo de espera para la petición dcc (en segundos)"
-#: src/common/weeconfig.c:570
+#: src/common/weeconfig.c:581
msgid "block size for dcc packets"
msgstr "tamaño de bloque para los paquetes dcc"
-#: src/common/weeconfig.c:571
+#: src/common/weeconfig.c:582
msgid "block size for dcc packets in bytes (default: 65536)"
msgstr "tamaño de bloque para los paquetes dcc en bytes (por defecto: 65536)"
-#: src/common/weeconfig.c:574
+#: src/common/weeconfig.c:585
msgid "path for incoming files with dcc"
msgstr "ruta para los ficheros recibidos con dcc"
-#: src/common/weeconfig.c:575
+#: src/common/weeconfig.c:586
msgid "path for writing incoming files with dcc (default: user home)"
msgstr ""
"ruta para los ficheros recibidos con dcc (por defecto: directorio home del "
"usuario)"
-#: src/common/weeconfig.c:578
+#: src/common/weeconfig.c:589
msgid "default path for sending files with dcc"
msgstr "ruta por defecto para enviar ficheros con dcc"
-#: src/common/weeconfig.c:579
+#: src/common/weeconfig.c:590
msgid ""
"path for reading files when sending thru dcc (when no path is specified)"
msgstr ""
"ruta para la lectura de ficheros cuando se envían a través de dcc (cuando no "
"se especifica una ruta)"
-#: src/common/weeconfig.c:582 src/common/weeconfig.c:583
+#: src/common/weeconfig.c:593 src/common/weeconfig.c:594
msgid "convert spaces to underscores when sending files"
msgstr "convertir los espacios a subrayados cuando se envían los ficheros"
-#: src/common/weeconfig.c:586
+#: src/common/weeconfig.c:597
msgid "automatically rename dcc files if already exists"
msgstr "renombrar automáticamente los ficheros dcc si ya existen"
-#: src/common/weeconfig.c:587
+#: src/common/weeconfig.c:598
msgid "rename incoming files if already exists (add '.1', '.2', ...)"
msgstr ""
"renombrar los ficheros recibidos si ya existen (añadir '.1', '.2', ...)"
-#: src/common/weeconfig.c:590
+#: src/common/weeconfig.c:601
msgid "automatically resume aborted transfers"
msgstr "continuar automáticamente las transferencias canceladas"
-#: src/common/weeconfig.c:591
+#: src/common/weeconfig.c:602
msgid ""
"automatically resume dcc transfer if connection with remote host is loosed"
msgstr ""
"continuar automáticamente la transferencia dcc si se ha perdido la conexión "
"con la máquina remota"
-#: src/common/weeconfig.c:610
+#: src/common/weeconfig.c:621
msgid "use proxy"
msgstr "utilizar un proxy"
-#: src/common/weeconfig.c:611
+#: src/common/weeconfig.c:622
msgid "use a proxy server to connect to irc server"
msgstr "utilizar un proxy para conectarse al servidor irc"
-#: src/common/weeconfig.c:614
+#: src/common/weeconfig.c:625
msgid "proxy type"
msgstr ""
-#: src/common/weeconfig.c:615
+#: src/common/weeconfig.c:626
msgid "proxy type (http (default), socks4, socks5)"
msgstr ""
-#: src/common/weeconfig.c:618
+#: src/common/weeconfig.c:629
msgid "use ipv6 proxy"
msgstr ""
-#: src/common/weeconfig.c:619
+#: src/common/weeconfig.c:630
msgid "connect to proxy in ipv6"
msgstr ""
-#: src/common/weeconfig.c:622
+#: src/common/weeconfig.c:633
msgid "proxy address"
msgstr "dirección del proxy"
-#: src/common/weeconfig.c:623
+#: src/common/weeconfig.c:634
msgid "proxy server address (IP or hostname)"
msgstr "dirección del servidor proxy (IP o nombre de máquina)"
-#: src/common/weeconfig.c:626
+#: src/common/weeconfig.c:637
msgid "port for proxy"
msgstr "puerto para el proxy"
-#: src/common/weeconfig.c:627
+#: src/common/weeconfig.c:638
msgid "port for connecting to proxy server"
msgstr "puerto para conectarse al servidor proxy"
-#: src/common/weeconfig.c:630
+#: src/common/weeconfig.c:641
msgid "proxy username"
msgstr ""
-#: src/common/weeconfig.c:631
+#: src/common/weeconfig.c:642
msgid "username for proxy server"
msgstr ""
-#: src/common/weeconfig.c:634
+#: src/common/weeconfig.c:645
msgid "proxy password"
msgstr "contraseña para el proxy"
-#: src/common/weeconfig.c:635
+#: src/common/weeconfig.c:646
msgid "password for proxy server"
msgstr "contraseña para el servidor proxy"
-#: src/common/weeconfig.c:646
+#: src/common/weeconfig.c:657
msgid "server name"
msgstr "nombre de servidor"
-#: src/common/weeconfig.c:647
+#: src/common/weeconfig.c:658
msgid "name associated to IRC server (for display only)"
msgstr "nombre asociado al servidor IRC (para mostrar solamente)"
-#: src/common/weeconfig.c:650
+#: src/common/weeconfig.c:661
msgid "automatically connect to server"
msgstr "conexión automática al servidor"
-#: src/common/weeconfig.c:651
+#: src/common/weeconfig.c:662
msgid "automatically connect to server when WeeChat is starting"
msgstr "conexión automática al servidor cuando WeeChat esté arrancando"
-#: src/common/weeconfig.c:654
+#: src/common/weeconfig.c:665
msgid "automatically reconnect to server"
msgstr "reconexión automática al servidor"
-#: src/common/weeconfig.c:655
+#: src/common/weeconfig.c:666
msgid "automatically reconnect to server when disconnected"
msgstr "reconexión automática al servidor tras una desconexión"
-#: src/common/weeconfig.c:658
+#: src/common/weeconfig.c:669
msgid "delay before trying again to reconnect"
msgstr "esperar antes de intentar de nuevo una reconexión"
-#: src/common/weeconfig.c:659
+#: src/common/weeconfig.c:670
msgid "delay (in seconds) before trying again to reconnect to server"
msgstr ""
"espera (en segundos) antes de intentar de nuevo una reconexión al servidor"
-#: src/common/weeconfig.c:662
+#: src/common/weeconfig.c:673
msgid "server address or hostname"
msgstr "dirección o nombre de máquina del servidor"
-#: src/common/weeconfig.c:663
+#: src/common/weeconfig.c:674
msgid "IP address or hostname of IRC server"
msgstr "dirección IP o nombre de máquina del servidor IRC"
-#: src/common/weeconfig.c:666
+#: src/common/weeconfig.c:677
msgid "port for IRC server"
msgstr "puerto para el servidor IRC"
-#: src/common/weeconfig.c:667
+#: src/common/weeconfig.c:678
msgid "port for connecting to server"
msgstr "puerto para conectarse al servidor"
-#: src/common/weeconfig.c:670 src/common/weeconfig.c:671
+#: src/common/weeconfig.c:681 src/common/weeconfig.c:682
msgid "use IPv6 protocol for server communication"
msgstr ""
-#: src/common/weeconfig.c:674 src/common/weeconfig.c:675
+#: src/common/weeconfig.c:685 src/common/weeconfig.c:686
msgid "use SSL for server communication"
msgstr ""
-#: src/common/weeconfig.c:678
+#: src/common/weeconfig.c:689
msgid "server password"
msgstr "contraseña para el servidor"
-#: src/common/weeconfig.c:679
+#: src/common/weeconfig.c:690
msgid "password for IRC server"
msgstr "contraseña para el servidor IRC"
-#: src/common/weeconfig.c:682
+#: src/common/weeconfig.c:693
msgid "nickname for server"
msgstr "nombre de usuario para el servidor"
-#: src/common/weeconfig.c:683
+#: src/common/weeconfig.c:694
msgid "nickname to use on IRC server"
msgstr "nombre de usuario a utilizar en el servidor IRC"
-#: src/common/weeconfig.c:686
+#: src/common/weeconfig.c:697
msgid "alternate nickname for server"
msgstr "nombre de usuario alternativo para el servidor"
-#: src/common/weeconfig.c:687
+#: src/common/weeconfig.c:698
msgid "alternate nickname to use on IRC server (if nickname is already used)"
msgstr ""
"nombre de usuario alternativo para el servidor IRC (si el nombre de usuario "
"ya está en uso)"
-#: src/common/weeconfig.c:690
+#: src/common/weeconfig.c:701
msgid "2nd alternate nickname for server"
msgstr "segundo nombre de usuario alternativo para el servidor"
-#: src/common/weeconfig.c:691
+#: src/common/weeconfig.c:702
msgid ""
"2nd alternate nickname to use on IRC server (if alternate nickname is "
"already used)"
@@ -3760,31 +3822,31 @@ msgstr ""
"segundo nombre de usuario alternativo a utilizar en el servidor IRC (si el "
"nombre de usuario alternativo ya está en uso)"
-#: src/common/weeconfig.c:694
+#: src/common/weeconfig.c:705
msgid "user name for server"
msgstr "nombre de usuario para el servidor"
-#: src/common/weeconfig.c:695
+#: src/common/weeconfig.c:706
msgid "user name to use on IRC server"
msgstr "nombre de usuario para el servidor IRC"
-#: src/common/weeconfig.c:698
+#: src/common/weeconfig.c:709
msgid "real name for server"
msgstr "nombre real para el servidor"
-#: src/common/weeconfig.c:699
+#: src/common/weeconfig.c:710
msgid "real name to use on IRC server"
msgstr "nombre real para el servidor IRC"
-#: src/common/weeconfig.c:702 src/common/weeconfig.c:703
+#: src/common/weeconfig.c:713 src/common/weeconfig.c:714
msgid "first command to run when connected to server"
msgstr "primer comando a ejecutar cuando se conecte a un servidor"
-#: src/common/weeconfig.c:706
+#: src/common/weeconfig.c:717
msgid "delay (in seconds) after command was executed"
msgstr "espera (en segundos) después de que el comando sea ejecutado"
-#: src/common/weeconfig.c:707
+#: src/common/weeconfig.c:718
msgid ""
"delay (in seconds) after command was executed (example: give some time for "
"authentication)"
@@ -3792,86 +3854,86 @@ msgstr ""
"espera (en segundos) después de que el comando sea ejecutado (ejemplo: dar "
"algo de tiempo para la autenticación)"
-#: src/common/weeconfig.c:710
+#: src/common/weeconfig.c:721
msgid "list of channels to join when connected to server"
msgstr "lista de canales a unirse cuando se conecte a un servidor"
-#: src/common/weeconfig.c:711
+#: src/common/weeconfig.c:722
msgid "comma separated list of channels to join when connected to server"
msgstr ""
"lista de canales (separados por comas) a unirse cuando se conecte a un "
"servidor"
-#: src/common/weeconfig.c:714 src/common/weeconfig.c:715
+#: src/common/weeconfig.c:725 src/common/weeconfig.c:726
msgid "automatically rejoin channels when kicked"
msgstr "unirse de nuevo automáticamente a los canales cuando sea expulsado"
-#: src/common/weeconfig.c:718
+#: src/common/weeconfig.c:729
msgid "notify levels for channels of this server"
msgstr ""
-#: src/common/weeconfig.c:719
+#: src/common/weeconfig.c:730
msgid ""
"comma separated list of notify levels for channels of this server (format: "
"#channel:1,..)"
msgstr ""
-#: src/common/weeconfig.c:1177
+#: src/common/weeconfig.c:1190
#, c-format
msgid "%s %s, line %d: new server, but previous was incomplete\n"
msgstr "%s %s, línea %d: nuevo servidor, pero el anterior estaba incompleto\n"
-#: src/common/weeconfig.c:1186
+#: src/common/weeconfig.c:1199
#, c-format
msgid "%s %s, line %d: server '%s' already exists\n"
msgstr "%s %s, línea %d: el servidor '%s' ya existe\n"
-#: src/common/weeconfig.c:1201
+#: src/common/weeconfig.c:1214
#, c-format
msgid "%s %s, line %d: unable to create server\n"
msgstr "%s %s, línea %d: no es posible crear el servidor\n"
-#: src/common/weeconfig.c:1240
+#: src/common/weeconfig.c:1254
#, c-format
msgid "%s unable to assign default int with string (\"%s\")\n"
msgstr "%s no es posible asignar el valor entero con la cadena (\"%s\")\n"
-#: src/common/weeconfig.c:1251
+#: src/common/weeconfig.c:1265
#, c-format
msgid "%s unable to assign default color (\"%s\")\n"
msgstr "%s no es posible asignar el color por defecto (\"%s\")\n"
-#: src/common/weeconfig.c:1290
+#: src/common/weeconfig.c:1304
#, c-format
msgid "%s config file \"%s\" not found.\n"
msgstr "%s fichero de configuración \"%s\" no encontrado.\n"
-#: src/common/weeconfig.c:1322
+#: src/common/weeconfig.c:1336
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"]\"\n"
msgstr "%s %s, línea %d: sintaxis inválida, falta \"]\"\n"
-#: src/common/weeconfig.c:1339
+#: src/common/weeconfig.c:1353
#, c-format
msgid "%s %s, line %d: unknown section identifier (\"%s\")\n"
msgstr "%s %s, línea %d: identificador de sección desconocido (\"%s\")\n"
-#: src/common/weeconfig.c:1357
+#: src/common/weeconfig.c:1371
#, c-format
msgid "%s %s, line %d: invalid section for option, line is ignored\n"
msgstr "%s %s, línea %d: sección inválida para la opción, línea ignorada\n"
-#: src/common/weeconfig.c:1365
+#: src/common/weeconfig.c:1379
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"=\"\n"
msgstr "%s %s, línea %d: sintaxis inválida, falta \"=\"\n"
-#: src/common/weeconfig.c:1399
+#: src/common/weeconfig.c:1427
#, c-format
msgid "%s %s, line %d: invalid option \"%s\"\n"
msgstr "%s %s, línea %d: opción \"%s\" inválida\n"
-#: src/common/weeconfig.c:1410
+#: src/common/weeconfig.c:1438
#, c-format
msgid ""
"%s %s, line %d: invalid value foroption '%s'\n"
@@ -3880,7 +3942,7 @@ msgstr ""
"%s %s, línea %d: valor inválido para la opción '%s'\n"
"Esperado: valor booleano: 'off' u 'on'\n"
-#: src/common/weeconfig.c:1419
+#: src/common/weeconfig.c:1447
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
@@ -3889,7 +3951,7 @@ msgstr ""
"%s %s, línea %d: valor inválido para la opción %s'\n"
"Esperado: entero comprendido entre %d y %d\n"
-#: src/common/weeconfig.c:1430
+#: src/common/weeconfig.c:1458
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
@@ -3898,26 +3960,26 @@ msgstr ""
"%s %s, línea %d: valor inválido para la opción '%s'\n"
"Esperado: una de estas cadenas: "
-#: src/common/weeconfig.c:1446
+#: src/common/weeconfig.c:1474
#, c-format
msgid "%s %s, line %d: invalid color name for option '%s'\n"
msgstr "%s %s, línea %d: nombre de color inválido para la opción '%s'\n"
-#: src/common/weeconfig.c:1506 src/common/weeconfig.c:1677
+#: src/common/weeconfig.c:1536 src/common/weeconfig.c:1731
#, c-format
msgid "%s cannot create file \"%s\"\n"
msgstr "%s no es posible crear el fichero \"%s\"\n"
-#: src/common/weeconfig.c:1512
+#: src/common/weeconfig.c:1542
#, c-format
msgid "%s: creating default config file...\n"
msgstr "%s: creando fichero de configuración por defecto...\n"
-#: src/common/weeconfig.c:1513
+#: src/common/weeconfig.c:1543
msgid "Creating default config file\n"
msgstr "Creando fichero de configuración por defecto\n"
-#: src/common/weeconfig.c:1516 src/common/weeconfig.c:1686
+#: src/common/weeconfig.c:1546 src/common/weeconfig.c:1740
#, c-format
msgid ""
"#\n"
@@ -3926,6 +3988,9 @@ msgstr ""
"#\n"
"# %s: fichero de configuración, creado por %s v%s el %s#\n"
-#: src/common/weeconfig.c:1683
+#: src/common/weeconfig.c:1737
msgid "Saving config to disk\n"
msgstr "Guardar configuración a disco\n"
+
+#~ msgid "%d:[not connected] "
+#~ msgstr "%d:[no conectado] "
diff --git a/po/fr.po b/po/fr.po
index 1e69c89c3..667a96f5f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.4-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-07-02 18:30+0200\n"
-"PO-Revision-Date: 2005-07-02 20:21+0200\n"
+"POT-Creation-Date: 2005-07-09 17:25+0200\n"
+"PO-Revision-Date: 2005-07-09 14:34+0200\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
msgid "%s cannot allocate new nick\n"
msgstr "%s impossible d'allouer un nouveau pseudo\n"
-#: src/irc/irc-server.c:180 src/common/weeconfig.c:1625
+#: src/irc/irc-server.c:180 src/common/weeconfig.c:1677
msgid "Unable to get user's name"
msgstr "Impossible de déterminer le nom d'utilisateur"
@@ -1304,7 +1304,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:156 src/common/command.c:842
+#: src/irc/irc-display.c:156 src/common/command.c:848
msgid "Server: "
msgstr "Serveur: "
@@ -1345,9 +1345,9 @@ msgstr "%s: utilisation du nom de machine local \"%s\"\n"
#: src/irc/irc-send.c:232 src/irc/irc-send.c:260 src/irc/irc-send.c:426
#: src/irc/irc-send.c:452 src/irc/irc-send.c:478 src/irc/irc-send.c:519
-#: src/irc/irc-send.c:555 src/irc/irc-send.c:619 src/irc/irc-send.c:676
-#: src/irc/irc-send.c:1018 src/irc/irc-send.c:1116 src/irc/irc-send.c:1595
-#: src/irc/irc-send.c:1702
+#: src/irc/irc-send.c:555 src/irc/irc-send.c:622 src/irc/irc-send.c:679
+#: src/irc/irc-send.c:1021 src/irc/irc-send.c:1119 src/irc/irc-send.c:1598
+#: src/irc/irc-send.c:1705
#, c-format
msgid "%s \"%s\" command can only be executed in a channel window\n"
msgstr ""
@@ -1355,36 +1355,36 @@ msgstr ""
"canal\n"
#: 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:1621
-#: src/common/command.c:1167 src/common/command.c:1451
-#: src/common/command.c:1594
+#: src/irc/irc-send.c:999 src/irc/irc-send.c:1092 src/irc/irc-send.c:1624
+#: src/common/command.c:1189 src/common/command.c:1455
+#: src/common/command.c:1605 src/common/command.c:1748
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr "%s nombre de paramètres erroné pour la commande \"%s\"\n"
-#: src/irc/irc-send.c:398 src/irc/irc-send.c:604 src/irc/irc-send.c:661
+#: src/irc/irc-send.c:398 src/irc/irc-send.c:607 src/irc/irc-send.c:664
#, c-format
msgid "%s wrong arguments for \"%s\" command\n"
msgstr "%s paramètres invalides pour la commande \"%s\"\n"
-#: src/irc/irc-send.c:804 src/irc/irc-send.c:871 src/irc/irc-send.c:1164
-#: src/irc/irc-send.c:1178 src/irc/irc-send.c:1522
+#: src/irc/irc-send.c:807 src/irc/irc-send.c:874 src/irc/irc-send.c:1167
+#: src/irc/irc-send.c:1181 src/irc/irc-send.c:1525
#, c-format
msgid "%s \"%s\" command can not be executed on a server window\n"
msgstr ""
"%s la commande \"%s\" ne peut pas être exécutée dans une fenêtre serveur\n"
-#: src/irc/irc-send.c:889 src/irc/irc-send.c:914 src/irc/irc-recv.c:322
+#: src/irc/irc-send.c:892 src/irc/irc-send.c:917 src/irc/irc-recv.c:322
#, c-format
msgid "%s nick \"%s\" not found for \"%s\" command\n"
msgstr "%s pseudo \"%s\" non trouvé pour la commande \"%s\"\n"
-#: src/irc/irc-send.c:966 src/irc/irc-send.c:1274 src/irc/irc-recv.c:1505
+#: src/irc/irc-send.c:969 src/irc/irc-send.c:1277 src/irc/irc-recv.c:1505
#, c-format
msgid "%s cannot create new private window \"%s\"\n"
msgstr "%s impossible de créer la fenêtre privée \"%s\"\n"
-#: src/irc/irc-send.c:1674
+#: src/irc/irc-send.c:1677
#, c-format
msgid "%s, compiled on %s %s\n"
msgstr "%s, compilé le %s %s\n"
@@ -2094,66 +2094,65 @@ msgstr ""
"%s impossible d'ajouter la fonction pour le message \"%s\" (mémoire "
"insuffisante)\n"
-#: src/gui/curses/gui-input.c:788
+#: src/gui/curses/gui-input.c:298
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s le lag est élevé, déconnexion du serveur...\n"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "bytes"
msgstr "octets"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Kb"
msgstr "Ko"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Mb"
msgstr "Mo"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Gb"
msgstr "Go"
-#: src/gui/curses/gui-display.c:1122
+#: src/gui/curses/gui-display.c:1116
msgid "(away)"
msgstr "(absent)"
-#: src/gui/curses/gui-display.c:1235
-#, c-format
-msgid "%d:[not connected] "
-msgstr "%d:[non connecté] "
+#: src/gui/curses/gui-display.c:1233
+msgid "[not connected]"
+msgstr "[non connecté]"
-#: src/gui/curses/gui-display.c:1252
+#: src/gui/curses/gui-display.c:1249
msgid "Act: "
msgstr "Act: "
-#: src/gui/curses/gui-display.c:1301
+#: src/gui/curses/gui-display.c:1298
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
-#: src/gui/curses/gui-display.c:1322
+#: src/gui/curses/gui-display.c:1319
msgid "-MORE-"
msgstr "-PLUS-"
-#: src/gui/curses/gui-display.c:1509
+#: src/gui/curses/gui-display.c:1559
msgid " [A] Accept"
msgstr " [A] Accepter"
-#: src/gui/curses/gui-display.c:1510 src/gui/curses/gui-display.c:1514
+#: src/gui/curses/gui-display.c:1560 src/gui/curses/gui-display.c:1564
msgid " [C] Cancel"
msgstr " [C] Annuler"
-#: src/gui/curses/gui-display.c:1519
+#: src/gui/curses/gui-display.c:1569
msgid " [R] Remove"
msgstr " [R] Retirer"
-#: src/gui/curses/gui-display.c:1523
+#: src/gui/curses/gui-display.c:1573
msgid " [P] Purge old DCC"
msgstr " [P] Purger anciens DCC"
-#: src/gui/curses/gui-display.c:1524
+#: src/gui/curses/gui-display.c:1574
msgid " [Q] Close DCC view"
msgstr " [Q] Fermer la vue DCC"
@@ -2161,15 +2160,15 @@ msgstr " [Q] Fermer la vue DCC"
msgid "server"
msgstr "serveur"
-#: src/gui/gui-common.c:330
+#: src/gui/gui-common.c:333
msgid "Not enough memory for infobar message\n"
msgstr "Pas assez de mémoire pour un message de la barre d'infos\n"
-#: src/gui/gui-common.c:505
+#: src/gui/gui-common.c:508
msgid "Not enough memory for new line\n"
msgstr "Pas assez de mémoire pour une nouvelle ligne !\n"
-#: src/gui/gui-common.c:548
+#: src/gui/gui-common.c:551
msgid "Not enough memory for new message\n"
msgstr "Pas assez de mémoire pour un message de la barre d'infos\n"
@@ -2280,14 +2279,40 @@ msgid "command: name of a WeeChat or IRC command"
msgstr "commande: nom d'une commande WeeChat ou IRC"
#: src/common/command.c:75
+msgid "bind/unbind keys"
+msgstr "associer/libérer des touches"
+
+#: src/common/command.c:76
+msgid "[key function/command] [unbind key] [functions] [reset -yes]"
+msgstr "[touche fonction/commande] [unbind touche] [functions] [reset -yes]"
+
+#: src/common/command.c:77
+msgid ""
+"key: bind this key to an internal function or a command (beginning by \"/"
+"\")\n"
+"unbind: unbind a key (if \"all\", default bindings are restored)\n"
+"functions: list internal functions for key bindings\n"
+"reset: restore bindings to the default values and delete ALL personal "
+"binding (use carefully!)"
+msgstr ""
+"touche: associer cette touche à une fonction interne ou une commande "
+"(commençant par \"/\")\n"
+"unbind: supprimer l'association à une touche (si \"all\", toutes les "
+"associations de touches par défaut sont restaurées)\n"
+"functions: lister la liste des fonctions internes pour les associations de "
+"touches\n"
+"reset: restaur les touches aux valeurs par défaut et supprime TOUTES les "
+"touches personnelles (utiliser avec précaution !)"
+
+#: src/common/command.c:82
msgid "list/load/unload Perl scripts"
msgstr "liste/charge/décharge des scripts Perl"
-#: src/common/command.c:76 src/common/command.c:81
+#: src/common/command.c:83 src/common/command.c:88
msgid "[load filename] | [autoload] | [reload] | [unload]"
msgstr "[load fichier] | [autoload] | [reload] | [unload]"
-#: src/common/command.c:77
+#: src/common/command.c:84
msgid ""
"filename: Perl script (file) to load\n"
"Without argument, /perl command lists all loaded Perl scripts."
@@ -2295,11 +2320,11 @@ msgstr ""
"fichier: script Perl (fichier) à charger\n"
"Sans paramètre, la commande /perl liste tous les scripts Perl chargés."
-#: src/common/command.c:80
+#: src/common/command.c:87
msgid "list/load/unload Python scripts"
msgstr "liste/charge/décharge des scripts Python"
-#: src/common/command.c:82
+#: src/common/command.c:89
msgid ""
"filename: Python script (file) to load\n"
"Without argument, /python command lists all loaded Python scripts."
@@ -2307,11 +2332,11 @@ 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
+#: src/common/command.c:92
msgid "list, add or remove servers"
msgstr "liste, ajoute ou retire des serveurs"
-#: src/common/command.c:86
+#: src/common/command.c:93
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-"
"pwd password] [-nicks nick1 [nick2 [nick3]]] [-username username] [-realname "
@@ -2323,7 +2348,7 @@ msgstr ""
"nom_utilisateur] [-realname nom_réel] [-command commande] [-autojoin canal[,"
"canal]] ] | [del nom_serveur]"
-#: src/common/command.c:91
+#: src/common/command.c:98
msgid ""
"servername: server name, for internal & display use\n"
"hostname: name or IP address of server\n"
@@ -2349,27 +2374,27 @@ msgstr ""
"nom_utilisateur: nom d'utilisateur\n"
"nom_réel: nom réel de l'utilisateur"
-#: src/common/command.c:103
+#: src/common/command.c:110
msgid "save config to disk"
msgstr "sauvegarder la configuration sur disque"
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "[file]"
msgstr "[fichier]"
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "file: filename for writing config"
msgstr "fichier: fichier pour sauvegarder la configuration"
-#: src/common/command.c:106
+#: src/common/command.c:113
msgid "set config parameters"
msgstr "modifier des paramètres de configuration"
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid "[option[=value]]"
msgstr "[option[=valeur]]"
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid ""
"option: name of an option\n"
"value: value for option"
@@ -2377,27 +2402,27 @@ msgstr ""
"option: nom d'une option\n"
"valeur: valeur pour l'option"
-#: src/common/command.c:109
+#: src/common/command.c:116
msgid "remove an alias"
msgstr "supprimer un alias"
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name"
msgstr "nom_alias"
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name: name of alias to remove"
msgstr "nom_alias: nom de l'alias à supprimer"
-#: src/common/command.c:112
+#: src/common/command.c:119
msgid "manage windows"
msgstr "gestion des fenêtres"
-#: src/common/command.c:113
+#: src/common/command.c:120
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr "[list | splith | splitv | [merge [down | up | left | right | all]]]"
-#: src/common/command.c:115
+#: src/common/command.c:121
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2409,29 +2434,29 @@ msgstr ""
"splitv: éclate la fenêtre en deux verticalement\n"
"merge: fusionne la fenêtre avec une autre"
-#: src/common/command.c:261
+#: src/common/command.c:267
#, 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:271
+#: src/common/command.c:277
#, 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:278
+#: src/common/command.c:284
#, 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:486
+#: src/common/command.c:492
#, 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:498
+#: src/common/command.c:504
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
@@ -2440,19 +2465,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:520 src/common/command.c:590
+#: src/common/command.c:526 src/common/command.c:596
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr "%s la commande \"%s\" a échoué\n"
-#: src/common/command.c:548
+#: src/common/command.c:554
#, 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:560
+#: src/common/command.c:566
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
@@ -2461,190 +2486,224 @@ 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:575
+#: src/common/command.c:581
#, 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:639
+#: src/common/command.c:645
#, 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:720
+#: src/common/command.c:726
#, 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:742
+#: src/common/command.c:748
#, c-format
msgid "%s unable to call handler for message (not enough memory)\n"
msgstr ""
"%s impossible d'appeler la fonction pour le message (mémoire insuffisante)\n"
-#: src/common/command.c:750
+#: src/common/command.c:756
msgid "This window is not a channel!\n"
msgstr "Cette fenêtre n'est pas un canal !\n"
-#: src/common/command.c:778 src/common/command.c:802 src/common/command.c:906
+#: src/common/command.c:784 src/common/command.c:808 src/common/command.c:913
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr "%s paramètres manquants pour la commande \"%s\"\n"
-#: src/common/command.c:787
+#: src/common/command.c:793
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr "Alias \"%s\" => \"%s\" créé\n"
-#: src/common/command.c:793
+#: src/common/command.c:799
#, 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:813
+#: src/common/command.c:819
msgid "List of aliases:\n"
msgstr "Liste des alias:\n"
-#: src/common/command.c:825
+#: src/common/command.c:831
msgid "No alias defined.\n"
msgstr "Aucun alias défini.\n"
-#: src/common/command.c:848
+#: src/common/command.c:854
msgid "Channel: "
msgstr "Canal: "
-#: src/common/command.c:851 src/common/command.c:861
+#: src/common/command.c:857 src/common/command.c:867
msgid " (server: "
msgstr " (serveur: "
-#: src/common/command.c:858
+#: src/common/command.c:864
msgid "Private with: "
msgstr "Privé avec: "
-#: src/common/command.c:886
+#: src/common/command.c:893
msgid "Opened buffers:\n"
msgstr "Tampons ouverts:\n"
-#: src/common/command.c:929 src/common/command.c:1069
+#: src/common/command.c:936
#, c-format
msgid "%s incorrect buffer number\n"
msgstr "%s numéro de buffer incorrect\n"
-#: src/common/command.c:943
+#: src/common/command.c:950
#, c-format
msgid "%s can not close the single buffer\n"
msgstr "%s impossible de fermer le tampon unique\n"
-#: src/common/command.c:953
+#: src/common/command.c:960
#, 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:992
+#: src/common/command.c:999
msgid "Notify levels: "
msgstr "Niveaux de notification: "
-#: src/common/command.c:1020 src/common/command.c:1042
+#: src/common/command.c:1027 src/common/command.c:1049
#, c-format
msgid "%s incorrect notify level (must be between %d and %d)\n"
msgstr "%s niveau de notification incorrect (doit être entre %d et %d)\n"
-#: src/common/command.c:1029
+#: src/common/command.c:1036
#, c-format
msgid "%s incorrect buffer for notify (must be channel or private)\n"
msgstr ""
"%s tampon incorrect pour la notification (doit être un canal ou un privé)\n"
-#: src/common/command.c:1060
-#, 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:1094
+#: src/common/command.c:1116
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr "paramètre inconnu \"%s\" pour la commande \"%s\"\n"
-#: src/common/command.c:1124
+#: src/common/command.c:1146
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr "%s déjà connecté au serveur \"%s\" !\n"
-#: src/common/command.c:1132
+#: src/common/command.c:1154
#, 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:1150 src/common/command.c:1225
+#: src/common/command.c:1172 src/common/command.c:1247
#, c-format
msgid "%s server not found\n"
msgstr "%s serveur non trouvé\n"
-#: src/common/command.c:1180 src/common/command.c:1444
-#: src/common/command.c:1587 src/common/command.c:2283
-#: src/common/command.c:2295
+#: src/common/command.c:1202 src/common/command.c:1598
+#: src/common/command.c:1741 src/common/command.c:2438
+#: src/common/command.c:2454
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr "%s option inconnue pour la commande \"%s\"\n"
-#: src/common/command.c:1209
+#: src/common/command.c:1231
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr "%s non connecté au serveur \"%s\" !\n"
-#: src/common/command.c:1217
+#: src/common/command.c:1239
msgid "Auto-reconnection is cancelled\n"
msgstr "La reconnexion automatique est annulée\n"
-#: src/common/command.c:1243 src/common/weechat.c:273
+#: src/common/command.c:1265 src/common/weechat.c:273
#, c-format
msgid "%s internal commands:\n"
msgstr "Commandes internes %s :\n"
-#: src/common/command.c:1252 src/common/weechat.c:293
+#: src/common/command.c:1274 src/common/weechat.c:293
#, c-format
msgid "IRC commands:\n"
msgstr "Commandes IRC :\n"
-#: src/common/command.c:1319
+#: src/common/command.c:1341
#, 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:1343 src/common/command.c:1486
+#: src/common/command.c:1359
+msgid "New key binding:\n"
+msgstr "Nouvelle touche:\n"
+
+#: src/common/command.c:1392
+msgid "Key bindings:\n"
+msgstr "Associations de touches:\n"
+
+#: src/common/command.c:1404
+#, c-format
+msgid "Key \"%s\" unbinded\n"
+msgstr "Touche \"%s\" supprimée\n"
+
+#: src/common/command.c:1409
+#, c-format
+msgid "%s unable to unbind key \"%s\"\n"
+msgstr "%s impossible de supprimer la touche \"%s\"\n"
+
+#: src/common/command.c:1417 src/common/weechat.c:324
+#, c-format
+msgid "Internal key functions:\n"
+msgstr "Fonctions internes pour les touches:\n"
+
+#: src/common/command.c:1435
+msgid "Default key bindings restored\n"
+msgstr "Touches par défaut restaurées\n"
+
+#: src/common/command.c:1441
+#, c-format
+msgid "%s \"-yes\" argument is required for keys reset (securuty reason)\n"
+msgstr ""
+"%s le paramètre \"-yes\" est requis pour la réinitialisation des touches "
+"(raison de sécurité)\n"
+
+#: src/common/command.c:1470
+#, c-format
+msgid "%s unable to bind key \"%s\"\n"
+msgstr "%s impossible de créer la touche \"%s\"\n"
+
+#: src/common/command.c:1497 src/common/command.c:1640
#, c-format
msgid "Registered %s scripts:\n"
msgstr "Scripts %s enregistrés :\n"
-#: src/common/command.c:1360 src/common/command.c:1383
-#: src/common/command.c:1406 src/common/command.c:1503
-#: src/common/command.c:1526 src/common/command.c:1549
+#: src/common/command.c:1514 src/common/command.c:1537
+#: src/common/command.c:1560 src/common/command.c:1657
+#: src/common/command.c:1680 src/common/command.c:1703
msgid " (none)\n"
msgstr " (aucun)\n"
-#: src/common/command.c:1365 src/common/command.c:1508
+#: src/common/command.c:1519 src/common/command.c:1662
#, c-format
msgid "%s message handlers:\n"
msgstr "Fonctions %s pour messages :\n"
-#: src/common/command.c:1374 src/common/command.c:1517
+#: src/common/command.c:1528 src/common/command.c:1671
#, c-format
msgid " IRC(%s) => %s(%s)\n"
msgstr " IRC(%s) => %s(%s)\n"
-#: src/common/command.c:1388 src/common/command.c:1531
+#: src/common/command.c:1542 src/common/command.c:1685
#, c-format
msgid "%s command handlers:\n"
msgstr "Commandes %s :\n"
-#: src/common/command.c:1397 src/common/command.c:1540
+#: src/common/command.c:1551 src/common/command.c:1694
#, c-format
msgid " Command /%s => %s(%s)\n"
msgstr " Commande /%s => %s(%s)\n"
-#: src/common/command.c:1457
+#: src/common/command.c:1611
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
@@ -2653,7 +2712,7 @@ msgstr ""
"Merci de reconstruire WeeChat avec l'option \"--enable-perl\" pour le "
"script ./configure\n"
-#: src/common/command.c:1600
+#: src/common/command.c:1754
msgid ""
"WeeChat was build without Python support.\n"
"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
@@ -2663,31 +2722,31 @@ msgstr ""
"Merci de reconstruire WeeChat avec l'option \"--enable-python\" pour le "
"script ./configure\n"
-#: src/common/command.c:1648
+#: src/common/command.c:1802
msgid "No server.\n"
msgstr "Pas de serveur.\n"
-#: src/common/command.c:1659
+#: src/common/command.c:1813
#, c-format
msgid "Server '%s' not found.\n"
msgstr "Serveur '%s' non trouvé.\n"
-#: src/common/command.c:1671
+#: src/common/command.c:1825
#, 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:1679
+#: src/common/command.c:1833
#, 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:1698
+#: src/common/command.c:1852
#, 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:1706
+#: src/common/command.c:1860
#, c-format
msgid ""
"%s you can not delete server \"%s\" because you are connected to. Try /"
@@ -2696,106 +2755,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:1722 src/common/command.c:1868
+#: src/common/command.c:1876 src/common/command.c:2022
msgid "Server"
msgstr "Serveur"
-#: src/common/command.c:1725
+#: src/common/command.c:1879
msgid "has been deleted\n"
msgstr "a été supprimé\n"
-#: src/common/command.c:1740
+#: src/common/command.c:1894
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr "%s paramètres manquants pour la commande \"%s\"\n"
-#: src/common/command.c:1750
+#: src/common/command.c:1904
#, 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:1779 src/common/command.c:1807
-#: src/common/command.c:1820 src/common/command.c:1846
+#: src/common/command.c:1933 src/common/command.c:1961
+#: src/common/command.c:1974 src/common/command.c:2000
#, 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:1792
+#: src/common/command.c:1946
#, 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:1833
+#: src/common/command.c:1987
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr "%s commande manquante pour le paramètre \"%s\"\n"
-#: src/common/command.c:1871
+#: src/common/command.c:2025
msgid "created\n"
msgstr "créé\n"
-#: src/common/command.c:1877
+#: src/common/command.c:2031
#, c-format
msgid "%s unable to create server\n"
msgstr "%s impossible de créer le serveur\n"
-#: src/common/command.c:1932
+#: src/common/command.c:2086
msgid "(unknown)"
msgstr "(inconnu)"
-#: src/common/command.c:1955
+#: src/common/command.c:2109
msgid "(password hidden) "
msgstr "(mot de passe caché) "
-#: src/common/command.c:2019
+#: src/common/command.c:2173
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr "%s serveur \"%s\" non trouvé\n"
-#: src/common/command.c:2050 src/common/command.c:2096
+#: src/common/command.c:2204 src/common/command.c:2250
#, c-format
msgid "%s config option \"%s\" not found\n"
msgstr "%s option de configuration \"%s\" non trouvée\n"
-#: src/common/command.c:2055 src/common/command.c:2088
+#: src/common/command.c:2209 src/common/command.c:2242
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr "%s valeur incorrecte pour l'option \"%s\"\n"
-#: src/common/command.c:2071
+#: src/common/command.c:2225
#, 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:2169
+#: src/common/command.c:2324
#, c-format
msgid "No config option found with \"%s\"\n"
msgstr "Aucune option de configuration trouvée avec \"%s\"\n"
-#: src/common/command.c:2172
+#: src/common/command.c:2327
msgid "No config option found\n"
msgstr "Aucune option de configuration trouvée\n"
-#: src/common/command.c:2178
+#: src/common/command.c:2333
#, 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:2181
+#: src/common/command.c:2336
msgid "config option(s) found\n"
msgstr "option(s) de configuration trouvée(s)\n"
-#: src/common/command.c:2201
+#: src/common/command.c:2356
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr "%s alias ou commande \"%s\" non trouvé\n"
-#: src/common/command.c:2211
+#: src/common/command.c:2366
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr "Alias \"%s\" supprimé\n"
-#: src/common/command.c:2231
+#: src/common/command.c:2386
msgid "Opened windows:\n"
msgstr "Fenêtres ouvertes:\n"
@@ -2938,57 +2997,62 @@ msgstr ""
"où 'j' est le nom de l'alias, et 'join' la commande associée.\n"
"\n"
-#: src/common/weechat.c:371
+#: src/common/weechat.c:344
+#, c-format
+msgid "%s default keys:\n"
+msgstr "Touches par défaut %s:\n"
+
+#: src/common/weechat.c:424
#, c-format
msgid "%s invalid syntax for IRC server ('%s'), ignored\n"
msgstr "%s syntaxe invalide pour le serveur IRC ('%s'), ignoré\n"
-#: src/common/weechat.c:384
+#: src/common/weechat.c:437
#, c-format
msgid "%s unable to create server ('%s'), ignored\n"
msgstr "%s impossible de créer le serveur ('%s'), ignoré\n"
-#: src/common/weechat.c:393
+#: src/common/weechat.c:446
#, c-format
msgid "%s unknown parameter '%s', ignored\n"
msgstr "%s paramètre inconnu '%s', ignoré\n"
-#: src/common/weechat.c:413
+#: src/common/weechat.c:466
#, c-format
msgid "%s cannot create directory \"%s\"\n"
msgstr "%s impossible de créer le répertoire \"%s\"\n"
-#: src/common/weechat.c:439
+#: src/common/weechat.c:492
#, c-format
msgid "%s unable to get HOME directory\n"
msgstr "%s impossible de lire le répertoire personnel\n"
-#: src/common/weechat.c:448
+#: src/common/weechat.c:501
#, c-format
msgid "%s not enough memory for home directory\n"
msgstr "%s pas assez de mémoire pour le répertoire personnel\n"
-#: src/common/weechat.c:458
+#: src/common/weechat.c:511
#, c-format
msgid "%s unable to create ~/.weechat directory\n"
msgstr "%s impossible de créer le répertoire ~/.weechat\n"
-#: src/common/weechat.c:510
+#: src/common/weechat.c:563
#, c-format
msgid "%s unable to create ~/.weechat/logs directory\n"
msgstr "%s impossible de créer le répertoire ~/.weechat/logs\n"
-#: src/common/weechat.c:553
+#: src/common/weechat.c:606
#, c-format
msgid "%s unable to create/append to log file (~/.weechat/%s)"
msgstr "%s impossible de créer/ajouter dans le fichier de log (~/.weechat/%s)"
-#: src/common/weechat.c:576
+#: src/common/weechat.c:629
#, c-format
msgid "%sWelcome to "
msgstr "%sBienvenue dans "
-#: src/common/weechat.c:589 src/common/weechat.c:598
+#: src/common/weechat.c:642 src/common/weechat.c:651
msgid "compiled on"
msgstr "compilé le"
@@ -3000,33 +3064,33 @@ msgstr "Erreur WeeChat:"
msgid "WeeChat Warning:"
msgstr "Avertissement WeeChat:"
-#: src/common/weeconfig.c:88 src/common/weeconfig.c:89
+#: src/common/weeconfig.c:90 src/common/weeconfig.c:91
msgid "set title for window (terminal for Curses GUI) with name & version"
msgstr ""
"définit le titre de la fenêtre (terminal pour l'interface Curses) avec le "
"nom et la version"
-#: src/common/weeconfig.c:92 src/common/weeconfig.c:93
+#: src/common/weeconfig.c:94 src/common/weeconfig.c:95
msgid "display WeeChat logo at startup"
msgstr "afficher le logo WeeChat au démarrage"
-#: src/common/weeconfig.c:96 src/common/weeconfig.c:97
+#: src/common/weeconfig.c:98 src/common/weeconfig.c:99
msgid "display WeeChat version at startup"
msgstr "afficher la version de WeeChat au démarrage"
-#: src/common/weeconfig.c:100
+#: src/common/weeconfig.c:102
msgid "WeeChat slogan"
msgstr "slogan WeeChat"
-#: src/common/weeconfig.c:101
+#: src/common/weeconfig.c:103
msgid "WeeChat slogan (if empty, slogan is not used)"
msgstr "slogan WeeChat (si vide, le slogan ne sera pas utilisé)"
-#: src/common/weeconfig.c:104
+#: src/common/weeconfig.c:106
msgid "charset for decoding messages from server"
msgstr "jeu de caractères pour décoder les messages du serveur"
-#: src/common/weeconfig.c:105
+#: src/common/weeconfig.c:107
msgid ""
"charset for decoding messages from server, examples: UTF-8, ISO-8859-1 (if "
"empty, messages are not converted)"
@@ -3034,11 +3098,11 @@ msgstr ""
"jeu de caractères pour décoder les messages du serveur, exemples: UTF-8, ISO-"
"8859-1 (si non renseigné, les messages ne sont pas convertis)"
-#: src/common/weeconfig.c:108
+#: src/common/weeconfig.c:110
msgid "charset for encoding messages sent to server"
msgstr "jeu de caractères pour encoder les messages envoyés au serveur"
-#: src/common/weeconfig.c:109
+#: src/common/weeconfig.c:111
msgid ""
"charset for encoding messages sent to server, examples: UFT-8, ISO-8859-1 "
"(if empty, local charset is used)"
@@ -3046,11 +3110,11 @@ msgstr ""
"jeu de caractères pour encoder les messages envoyés au serveur, exemples: "
"UFT-8, ISO-8859-1 (si non renseigné, le jeu de caractères local est utilisé)"
-#: src/common/weeconfig.c:112
+#: src/common/weeconfig.c:114
msgid "internal WeeChat charset (should be ISO)"
msgstr "jeu de caractères interne à WeeChat (devrait être ISO)"
-#: src/common/weeconfig.c:113
+#: src/common/weeconfig.c:115
msgid ""
"internal WeeChat charset, should be ISO-xxxx even if locale is UTF-8 (if "
"empty, local charset is used)"
@@ -3058,45 +3122,45 @@ msgstr ""
"jeu de caractères interne à WeeChat, devrait être ISO-xxxx même si la locale "
"est UTF-8 (si non renseigné, le jeu de caractères local est utilisé)"
-#: src/common/weeconfig.c:116 src/common/weeconfig.c:117
+#: src/common/weeconfig.c:118 src/common/weeconfig.c:119
msgid "timestamp for buffers"
msgstr "horodatage pour les tampons"
-#: src/common/weeconfig.c:120 src/common/weeconfig.c:121
+#: src/common/weeconfig.c:122 src/common/weeconfig.c:123
msgid "display nick names with different colors"
msgstr "afficher les utilisateurs avec différentes couleurs"
-#: src/common/weeconfig.c:124 src/common/weeconfig.c:125
+#: src/common/weeconfig.c:126 src/common/weeconfig.c:127
msgid "display actions with different colors"
msgstr "afficher les actions avec différentes couleurs"
-#: src/common/weeconfig.c:128 src/common/weeconfig.c:129
+#: src/common/weeconfig.c:130 src/common/weeconfig.c:131
msgid "remove colors from incoming messages"
msgstr "supprimer les couleurs dans les messages entrants"
-#: src/common/weeconfig.c:132
+#: src/common/weeconfig.c:134
msgid "display nicklist window"
msgstr "afficher la fenêtre des utilisateurs"
-#: src/common/weeconfig.c:133
+#: src/common/weeconfig.c:135
msgid "display nicklist window (for channel windows)"
msgstr "afficher la fenêtre des utilisateurs (pour les fenêtres de canaux)"
-#: src/common/weeconfig.c:136
+#: src/common/weeconfig.c:138
msgid "nicklist position"
msgstr "position de la fenêtre d'utilisateurs"
-#: src/common/weeconfig.c:137
+#: src/common/weeconfig.c:139
msgid "nicklist position (top, left, right (default), bottom)"
msgstr ""
"position de la fenêtre d'utilisateurs (haut (top), gauche (left), droite "
"(right, par défaut), bas (bottom))"
-#: src/common/weeconfig.c:140
+#: src/common/weeconfig.c:142
msgid "min size for nicklist"
msgstr "taille minimum pour la fenêtre d'utilisateurs"
-#: src/common/weeconfig.c:141
+#: src/common/weeconfig.c:143
msgid ""
"min size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no min size))"
@@ -3104,11 +3168,11 @@ msgstr ""
"taille minimum pour la fenêtre d'utilisateurs (largeur ou hauteur, selon "
"look_nicklist_position (0 = pas de taille minimum))"
-#: src/common/weeconfig.c:145
+#: src/common/weeconfig.c:147
msgid "max size for nicklist"
msgstr "taille maximum pour la fenêtre d'utilisateurs"
-#: src/common/weeconfig.c:146
+#: src/common/weeconfig.c:148
msgid ""
"max size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no max size; if min == max and > 0, then size is fixed))"
@@ -3117,39 +3181,43 @@ msgstr ""
"look_nicklist_position (0 = pas de taille maximum; si min == max et > 0, "
"alors la taille est fixe))"
-#: src/common/weeconfig.c:150 src/common/weeconfig.c:151
+#: src/common/weeconfig.c:152 src/common/weeconfig.c:153
msgid "text to display instead of nick when not connected"
msgstr ""
"texte à afficher en lieu et place du nom d'utilisateur lorsque la connexion "
"n'est pas active"
-#: src/common/weeconfig.c:154 src/common/weeconfig.c:155
+#: src/common/weeconfig.c:156 src/common/weeconfig.c:157
msgid "display nick mode ((half)op/voice) before each nick"
msgstr ""
"afficher le mode de l'utilisateur ((half)op/voice) devant chaque utilisateur"
-#: src/common/weeconfig.c:158 src/common/weeconfig.c:159
+#: src/common/weeconfig.c:160 src/common/weeconfig.c:161
msgid "display space if nick mode is not (half)op/voice"
msgstr "afficher un espace si le mode utilisateur n'est pas (half)op/voice"
-#: src/common/weeconfig.c:162 src/common/weeconfig.c:163
+#: src/common/weeconfig.c:164 src/common/weeconfig.c:165
msgid "the string inserted after nick completion"
msgstr "la chaîne affichée après la complétion des utilisateurs"
-#: src/common/weeconfig.c:166 src/common/weeconfig.c:167
+#: src/common/weeconfig.c:168 src/common/weeconfig.c:169
msgid "enable info bar"
msgstr "active la barre d'infos"
-#: src/common/weeconfig.c:170 src/common/weeconfig.c:171
+#: src/common/weeconfig.c:172 src/common/weeconfig.c:173
msgid "timestamp for time in infobar"
msgstr "horodatage pour les conversations sauvegardées"
-#: src/common/weeconfig.c:174
+#: src/common/weeconfig.c:176 src/common/weeconfig.c:177
+msgid "display seconds in infobar time"
+msgstr "afficher les secondes pour l'heure dans la barre d'infos"
+
+#: src/common/weeconfig.c:180
msgid "delay (in seconds) for highlight messages in infobar"
msgstr ""
"délai (en seconds) pour la notification des messages dans la barre d'infos"
-#: src/common/weeconfig.c:175
+#: src/common/weeconfig.c:181
msgid ""
"delay (in seconds) for highlight messages in infobar (0 = disable highlight "
"notifications in infobar)"
@@ -3157,260 +3225,264 @@ msgstr ""
"délai (en secondes) pour la notification des messages dans la barre d'infos "
"(0 = désactiver les notifications dans la barre d'infos)"
-#: src/common/weeconfig.c:233 src/common/weeconfig.c:234
+#: src/common/weeconfig.c:240 src/common/weeconfig.c:241
msgid "color for title bar"
msgstr "couleur pour la barre de titre"
-#: src/common/weeconfig.c:237 src/common/weeconfig.c:238
+#: src/common/weeconfig.c:244 src/common/weeconfig.c:245
msgid "background for title bar"
msgstr "couleur de fond pour la barre de titre"
-#: src/common/weeconfig.c:243 src/common/weeconfig.c:244
+#: src/common/weeconfig.c:250 src/common/weeconfig.c:251
msgid "color for chat text"
msgstr "couleur pour le texte de discussion"
-#: src/common/weeconfig.c:247
+#: src/common/weeconfig.c:254
msgid "color for time"
msgstr "couleur pour l'heure"
-#: src/common/weeconfig.c:248
+#: src/common/weeconfig.c:255
msgid "color for time in chat window"
msgstr "couleur pour l'heure dans la fenêtre de discussion"
-#: src/common/weeconfig.c:251
+#: src/common/weeconfig.c:258
msgid "color for time separator"
msgstr "couleur pour le séparateur de l'heure"
-#: src/common/weeconfig.c:252
+#: src/common/weeconfig.c:259
msgid "color for time separator (chat window)"
msgstr "couleur pour la séparation de l'heure (fenêtre de discussion)"
-#: src/common/weeconfig.c:255 src/common/weeconfig.c:256
+#: src/common/weeconfig.c:262 src/common/weeconfig.c:263
msgid "color for 1st and 3rd char of prefix"
msgstr "couleur pour le 1er et le 3ème caractère du préfixe"
-#: src/common/weeconfig.c:259 src/common/weeconfig.c:260
+#: src/common/weeconfig.c:266 src/common/weeconfig.c:267
msgid "color for middle char of prefix"
msgstr "couleur pour le caractère du milieu du préfixe"
-#: src/common/weeconfig.c:263
+#: src/common/weeconfig.c:270
msgid "color for nicks in actions"
msgstr "couleur pour les noms d'utilisateur dans les actions"
-#: src/common/weeconfig.c:264
+#: src/common/weeconfig.c:271
msgid "color for nicks in actions (chat window)"
msgstr ""
"couleur pour les noms d'utilisateurs dans les actions (fenêtre de discussion)"
-#: src/common/weeconfig.c:267
+#: src/common/weeconfig.c:274
msgid "color for hostnames"
msgstr "couleur pour les noms de machines"
-#: src/common/weeconfig.c:268
+#: src/common/weeconfig.c:275
msgid "color for hostnames (chat window)"
msgstr "couleur pour les noms de machines (fenêtre de discussion)"
-#: src/common/weeconfig.c:271
+#: src/common/weeconfig.c:278
msgid "color for channel names in actions"
msgstr "couleur pour les canaux dans les actions"
-#: src/common/weeconfig.c:272
+#: src/common/weeconfig.c:279
msgid "color for channel names in actions (chat window)"
msgstr "couleur pour les canaux dans les actions (fenêtre de discussion)"
-#: src/common/weeconfig.c:275
+#: src/common/weeconfig.c:282
msgid "color for dark separators"
msgstr "couleur pour les séparateurs sombres"
-#: src/common/weeconfig.c:276
+#: src/common/weeconfig.c:283
msgid "color for dark separators (chat window)"
msgstr "couleur pour les séparateurs sombres (fenêtre de discussion)"
-#: src/common/weeconfig.c:279
+#: src/common/weeconfig.c:286
msgid "color for highlighted nick"
msgstr "couleur pour le pseudo surligné"
-#: src/common/weeconfig.c:280
+#: src/common/weeconfig.c:287
msgid "color for highlighted nick (chat window)"
msgstr "couleur pour le pseudo surligné (fenêtre de discussion)"
-#: src/common/weeconfig.c:283
+#: src/common/weeconfig.c:290
msgid "background for chat"
msgstr "couleur de fond pour la discussion"
-#: src/common/weeconfig.c:284
+#: src/common/weeconfig.c:291
msgid "background for chat window"
msgstr "couleur de fond pour la fenêtre de discussion"
-#: src/common/weeconfig.c:289 src/common/weeconfig.c:290
+#: src/common/weeconfig.c:296 src/common/weeconfig.c:297
msgid "color for status bar"
msgstr "couleur pour la barre de statut"
-#: src/common/weeconfig.c:293 src/common/weeconfig.c:294
+#: src/common/weeconfig.c:300 src/common/weeconfig.c:301
msgid "color for status bar delimiters"
msgstr "couleur pour les délimiteurs de la barre de statut"
-#: src/common/weeconfig.c:297
+#: src/common/weeconfig.c:304
msgid "color for window with new messages"
msgstr "couleur pour une fenêtre avec de nouvelles infos"
-#: src/common/weeconfig.c:298
+#: src/common/weeconfig.c:305
msgid "color for window with new messages (status bar)"
msgstr "couleur pour une fenêtre avec de nouvelles infos (barre de statut)"
-#: src/common/weeconfig.c:301
+#: src/common/weeconfig.c:308
msgid "color for window with highlight"
msgstr "couleur pour une fenêtre avec un highlight"
-#: src/common/weeconfig.c:302
+#: src/common/weeconfig.c:309
msgid "color for window with highlight (status bar)"
msgstr "couleur pour une fenêtre avec un highlight (barre de statut)"
-#: src/common/weeconfig.c:305
+#: src/common/weeconfig.c:312
msgid "color for window with new data (not messages)"
msgstr "couleur pour une fenêtre avec des nouvelles données (pas des infos)"
-#: src/common/weeconfig.c:306
+#: src/common/weeconfig.c:313
msgid "color for window with new data (not messages) (status bar)"
msgstr ""
"couleur pour une fenêtre avec des nouvelles données (pas des infos) (barre "
"de statut)"
-#: src/common/weeconfig.c:309
+#: src/common/weeconfig.c:316
msgid "color for \"-MORE-\" text"
msgstr "couleur pour le texte \"-PLUS-\""
-#: src/common/weeconfig.c:310
+#: src/common/weeconfig.c:317
msgid "color for window with new data (status bar)"
msgstr "couleur pour une fenêtre avec des nouvelles données (barre de statut)"
-#: src/common/weeconfig.c:313 src/common/weeconfig.c:314
+#: src/common/weeconfig.c:320 src/common/weeconfig.c:321
msgid "background for status window"
msgstr "couleur de fond pour la fenêtre de statut"
-#: src/common/weeconfig.c:319 src/common/weeconfig.c:320
+#: src/common/weeconfig.c:326 src/common/weeconfig.c:327
msgid "color for info bar text"
msgstr "couleur pour la barre d'infos"
-#: src/common/weeconfig.c:323 src/common/weeconfig.c:324
+#: src/common/weeconfig.c:330 src/common/weeconfig.c:331
+msgid "color for infobar delimiters"
+msgstr "couleur pour les délimiteurs de la barre d'infos"
+
+#: src/common/weeconfig.c:334 src/common/weeconfig.c:335
msgid "color for info bar highlight notification"
msgstr "couleur pour la notification dans la barre d'infos"
-#: src/common/weeconfig.c:327 src/common/weeconfig.c:328
+#: src/common/weeconfig.c:338 src/common/weeconfig.c:339
msgid "background for info bar window"
msgstr "couleur de fond pour la fenêtre de barre d'infos"
-#: src/common/weeconfig.c:333 src/common/weeconfig.c:334
+#: src/common/weeconfig.c:344 src/common/weeconfig.c:345
msgid "color for input text"
msgstr "couleur pour le texte saisi"
-#: src/common/weeconfig.c:337 src/common/weeconfig.c:338
+#: src/common/weeconfig.c:348 src/common/weeconfig.c:349
msgid "color for input text (channel name)"
msgstr "couleur pour le texte saisi (nom du canal)"
-#: src/common/weeconfig.c:341 src/common/weeconfig.c:342
+#: src/common/weeconfig.c:352 src/common/weeconfig.c:353
msgid "color for input text (nick name)"
msgstr "couleur pour le texte saisi (pseudo)"
-#: src/common/weeconfig.c:345 src/common/weeconfig.c:346
+#: src/common/weeconfig.c:356 src/common/weeconfig.c:357
msgid "background for input window"
msgstr "couleur de fond pour la fenêtre de saisie"
-#: src/common/weeconfig.c:351 src/common/weeconfig.c:352
+#: src/common/weeconfig.c:362 src/common/weeconfig.c:363
msgid "color for nicknames"
msgstr "couleur pour les pseudos"
-#: src/common/weeconfig.c:355 src/common/weeconfig.c:356
+#: src/common/weeconfig.c:366 src/common/weeconfig.c:367
msgid "color for away nicknames"
msgstr "couleur pour les pseudos absents"
-#: src/common/weeconfig.c:359
+#: src/common/weeconfig.c:370
msgid "color for chan owner symbol"
msgstr "couleur pour le symbole du propriétaire du canal"
-#: src/common/weeconfig.c:360
+#: src/common/weeconfig.c:371
msgid "color for chan owner symbol (specific to unrealircd)"
msgstr ""
"couleur pour le symbole du propriétaire du canal (spécifique à unrealircd)"
-#: src/common/weeconfig.c:363
+#: src/common/weeconfig.c:374
msgid "color for chan admin symbol"
msgstr "couleur pour le symbole administrateur du canal"
-#: src/common/weeconfig.c:364
+#: src/common/weeconfig.c:375
msgid "color for chan admin symbol (specific to unrealircd)"
msgstr ""
"couleur pour le symbole administrateur du canal (spécifique à unrealircd)"
-#: src/common/weeconfig.c:367 src/common/weeconfig.c:368
+#: src/common/weeconfig.c:378 src/common/weeconfig.c:379
msgid "color for operator symbol"
msgstr "couleur pour le symbole opérateur"
-#: src/common/weeconfig.c:371 src/common/weeconfig.c:372
+#: src/common/weeconfig.c:382 src/common/weeconfig.c:383
msgid "color for half-operator symbol"
msgstr "couleur pour le symbole demi-opérateur"
-#: src/common/weeconfig.c:375 src/common/weeconfig.c:376
+#: src/common/weeconfig.c:386 src/common/weeconfig.c:387
msgid "color for voice symbol"
msgstr "couleur pour le symbole voix"
-#: src/common/weeconfig.c:379 src/common/weeconfig.c:380
+#: src/common/weeconfig.c:390 src/common/weeconfig.c:391
msgid "color for '+' when scrolling nicks"
msgstr "couleur pour les '+' lors du scroll sur les pseudos"
-#: src/common/weeconfig.c:383 src/common/weeconfig.c:384
+#: src/common/weeconfig.c:394 src/common/weeconfig.c:395
msgid "color for nick separator"
msgstr "couleur pour le séparateur de pseudo"
-#: src/common/weeconfig.c:387 src/common/weeconfig.c:388
+#: src/common/weeconfig.c:398 src/common/weeconfig.c:399
msgid "color for local nick"
msgstr "couleur pour le pseudo local"
-#: src/common/weeconfig.c:391 src/common/weeconfig.c:392
+#: src/common/weeconfig.c:402 src/common/weeconfig.c:403
msgid "color for other nick in private window"
msgstr "couleur pour l'autre pseudo dans la fenêtre privée"
-#: src/common/weeconfig.c:395 src/common/weeconfig.c:396
+#: src/common/weeconfig.c:406 src/common/weeconfig.c:407
msgid "background for nicknames"
msgstr "couleur de fond pour les pseudos"
-#: src/common/weeconfig.c:401
+#: src/common/weeconfig.c:412
msgid "color for selected DCC"
msgstr "couleur pour le DCC sélectionné"
-#: src/common/weeconfig.c:402
+#: src/common/weeconfig.c:413
msgid "color for selected DCC (chat window)"
msgstr "couleur pour le DCC sélectionné (fenêtre de discussion)"
-#: src/common/weeconfig.c:405 src/common/weeconfig.c:406
+#: src/common/weeconfig.c:416 src/common/weeconfig.c:417
msgid "color for \"waiting\" dcc status"
msgstr "couleur pour le statut dcc \"attente\""
-#: src/common/weeconfig.c:409 src/common/weeconfig.c:410
+#: src/common/weeconfig.c:420 src/common/weeconfig.c:421
msgid "color for \"connecting\" dcc status"
msgstr "couleur pour le statut dcc \"connexion\""
-#: src/common/weeconfig.c:413 src/common/weeconfig.c:414
+#: src/common/weeconfig.c:424 src/common/weeconfig.c:425
msgid "color for \"active\" dcc status"
msgstr "couleur pour le statut dcc \"actif\""
-#: src/common/weeconfig.c:417 src/common/weeconfig.c:418
+#: src/common/weeconfig.c:428 src/common/weeconfig.c:429
msgid "color for \"done\" dcc status"
msgstr "couleur pour le statut dcc \"terminé\""
-#: src/common/weeconfig.c:421 src/common/weeconfig.c:422
+#: src/common/weeconfig.c:432 src/common/weeconfig.c:433
msgid "color for \"failed\" dcc status"
msgstr "couleur pour le statut dcc \"échoué\""
-#: src/common/weeconfig.c:425 src/common/weeconfig.c:426
+#: src/common/weeconfig.c:436 src/common/weeconfig.c:437
msgid "color for \"aborted\" dcc status"
msgstr "couleur pour le statut dcc \"interrompu\""
-#: src/common/weeconfig.c:439
+#: src/common/weeconfig.c:450
msgid "max lines in history (per window)"
msgstr "nombre maxi de lignes dans l'historique (par fenêtre)"
-#: src/common/weeconfig.c:440
+#: src/common/weeconfig.c:451
msgid ""
"maximum number of lines in history for one server/channel/private window (0 "
"= unlimited)"
@@ -3418,339 +3490,339 @@ msgstr ""
"nombre maximum de lignes dans l'historique pour un serveur/fenêtre/fenêtre "
"privée (0 = sans limite)"
-#: src/common/weeconfig.c:444
+#: src/common/weeconfig.c:455
msgid "max user commands in history"
msgstr "nombre maxi de commandes utilisateur dans l'historique"
-#: src/common/weeconfig.c:445
+#: src/common/weeconfig.c:456
msgid "maximum number of user commands in history (0 = unlimited)"
msgstr ""
"nombre maximum de commandes utilisateur dans l'historique (0 = sans limite)"
-#: src/common/weeconfig.c:462 src/common/weeconfig.c:463
+#: src/common/weeconfig.c:473 src/common/weeconfig.c:474
msgid "automatically log server messages"
msgstr "enregistrer automatiquement les messages du serveur"
-#: src/common/weeconfig.c:466 src/common/weeconfig.c:467
+#: src/common/weeconfig.c:477 src/common/weeconfig.c:478
msgid "automatically log channel chats"
msgstr "enregistrer automatiquement les conversations des canaux"
-#: src/common/weeconfig.c:470 src/common/weeconfig.c:471
+#: src/common/weeconfig.c:481 src/common/weeconfig.c:482
msgid "automatically log private chats"
msgstr "enregistrer automatiquement les conversations privées"
-#: src/common/weeconfig.c:474 src/common/weeconfig.c:475
+#: src/common/weeconfig.c:485 src/common/weeconfig.c:486
msgid "log messages from plugins (scripts)"
msgstr "enregistrer les messages des plugins (scripts)"
-#: src/common/weeconfig.c:478
+#: src/common/weeconfig.c:489
msgid "path for log files"
msgstr "chemin pour les conversations sauvegardées"
-#: src/common/weeconfig.c:479
+#: src/common/weeconfig.c:490
msgid "path for WeeChat log files"
msgstr "chemin pour les conversations sauvegardées par WeeChat"
-#: src/common/weeconfig.c:482
+#: src/common/weeconfig.c:493
msgid "timestamp for log"
msgstr "horodatage pour les conversations sauvegardées"
-#: src/common/weeconfig.c:483
+#: src/common/weeconfig.c:494
msgid "timestamp for log (see man strftime for date/time specifiers)"
msgstr ""
"horodatage pour les conversations sauvegardées (voir man strftime pour le "
"format de date/heure)"
-#: src/common/weeconfig.c:486 src/common/weeconfig.c:487
+#: src/common/weeconfig.c:497 src/common/weeconfig.c:498
msgid "hide password displayed by nickserv"
msgstr "masquer le mot de passe affiché par nickserv"
-#: src/common/weeconfig.c:506
+#: src/common/weeconfig.c:517
msgid "display message to all channels when away"
msgstr "affiche un message sur tous les canaux pour l'absence"
-#: src/common/weeconfig.c:507
+#: src/common/weeconfig.c:518
msgid "display message to all channels when (un)marking as away"
msgstr "affiche un message sur tous les canaux pour l'absence/le retour"
-#: src/common/weeconfig.c:510 src/common/weeconfig.c:511
+#: src/common/weeconfig.c:521 src/common/weeconfig.c:522
msgid "default message when away"
msgstr "message par défaut pour l'absence"
-#: src/common/weeconfig.c:514 src/common/weeconfig.c:515
+#: src/common/weeconfig.c:525 src/common/weeconfig.c:526
msgid "default part message (leaving channel)"
msgstr "message par défaut pour le part (quitte un canal)"
-#: src/common/weeconfig.c:518
+#: src/common/weeconfig.c:529
msgid "default quit message"
msgstr "message de fin par défaut"
-#: src/common/weeconfig.c:519
+#: src/common/weeconfig.c:530
msgid ""
"default quit message ('%v' will be replaced by WeeChat version in string)"
msgstr ""
"message de fin par défaut ('%v' sera remplacé par la version de WeeChat dans "
"la chaîne)"
-#: src/common/weeconfig.c:522
+#: src/common/weeconfig.c:533
msgid "interval between two checks for away"
msgstr "intervalle entre deux vérifications des absences"
-#: src/common/weeconfig.c:523
+#: src/common/weeconfig.c:534
msgid "interval between two checks for away (in minutes, 0 = never check)"
msgstr ""
"intervalle entre deux vérifications des absences (en minutes, 0 = ne jemais "
"vérifier)"
-#: src/common/weeconfig.c:526
+#: src/common/weeconfig.c:537
msgid "interval between two checks for lag"
msgstr "intervalle entre deux mesures de lag"
-#: src/common/weeconfig.c:527
+#: src/common/weeconfig.c:538
msgid "interval between two checks for lag (in seconds)"
msgstr "intervalle entre deux mesures de lag (en secondes)"
-#: src/common/weeconfig.c:530
+#: src/common/weeconfig.c:541
msgid "minimum lag to show"
msgstr "lag minimum à afficher"
-#: src/common/weeconfig.c:531
+#: src/common/weeconfig.c:542
msgid "minimum lag to show (in seconds)"
msgstr "lag minimum à afficher (en secondes)"
-#: src/common/weeconfig.c:534
+#: src/common/weeconfig.c:545
msgid "disconnect after important lag"
msgstr "déconnexion après un lag important"
-#: src/common/weeconfig.c:535
+#: src/common/weeconfig.c:546
msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
"déconnexion après un lag important (en minutes, 0 = ne jamais se déconnecter)"
-#: src/common/weeconfig.c:538 src/common/weeconfig.c:539
+#: src/common/weeconfig.c:549 src/common/weeconfig.c:550
msgid "create a FIFO pipe for remote control"
msgstr "créer un tube FIFO pour le contrôle à distance"
-#: src/common/weeconfig.c:558
+#: src/common/weeconfig.c:569
msgid "automatically accept dcc files"
msgstr "accepte automatiquement les fichiers dcc"
-#: src/common/weeconfig.c:559
+#: src/common/weeconfig.c:570
msgid "automatically accept incoming dcc files"
msgstr "accepte automatiquement les fichiers dcc entrants"
-#: src/common/weeconfig.c:562
+#: src/common/weeconfig.c:573
msgid "automatically accept dcc chats"
msgstr "accepte automatiquement les demandes de discussion dcc"
-#: src/common/weeconfig.c:563
+#: src/common/weeconfig.c:574
msgid "automatically accept dcc chats (use carefully!)"
msgstr ""
"accepte automatiquement les demandes de discussion dcc (à utiliser avec "
"précaution !)"
-#: src/common/weeconfig.c:566
+#: src/common/weeconfig.c:577
msgid "timeout for dcc request"
msgstr "délai d'attente pour les requêtes dcc"
-#: src/common/weeconfig.c:567
+#: src/common/weeconfig.c:578
msgid "timeout for dcc request (in seconds)"
msgstr "délai d'attente pour les requêtes dcc (en secondes)"
-#: src/common/weeconfig.c:570
+#: src/common/weeconfig.c:581
msgid "block size for dcc packets"
msgstr "taille de bloc pour les paquets dcc"
-#: src/common/weeconfig.c:571
+#: src/common/weeconfig.c:582
msgid "block size for dcc packets in bytes (default: 65536)"
msgstr "taille de bloc pour les paquets dcc en octets (défaut: 65536)"
-#: src/common/weeconfig.c:574
+#: src/common/weeconfig.c:585
msgid "path for incoming files with dcc"
msgstr "chemin les fichiers reçus par dcc"
-#: src/common/weeconfig.c:575
+#: src/common/weeconfig.c:586
msgid "path for writing incoming files with dcc (default: user home)"
msgstr ""
"chemin pour écrire les fichiers reçus par dcc (par défaut: répertoire de "
"l'utilisateur)"
-#: src/common/weeconfig.c:578
+#: src/common/weeconfig.c:589
msgid "default path for sending files with dcc"
msgstr "chemin par défaut pour envoyer les fichiers par dcc"
-#: src/common/weeconfig.c:579
+#: src/common/weeconfig.c:590
msgid ""
"path for reading files when sending thru dcc (when no path is specified)"
msgstr ""
"chemin pour lire les fichiers lorsqu'ils sont envoyés par dcc (quand aucun "
"chemin n'est spécifié)"
-#: src/common/weeconfig.c:582 src/common/weeconfig.c:583
+#: src/common/weeconfig.c:593 src/common/weeconfig.c:594
msgid "convert spaces to underscores when sending files"
msgstr "convertir les espaces en underscores lors d'envoi de fichiers"
-#: src/common/weeconfig.c:586
+#: src/common/weeconfig.c:597
msgid "automatically rename dcc files if already exists"
msgstr "renomme automatiquement les fichiers dcc s'ils existent déjà"
-#: src/common/weeconfig.c:587
+#: src/common/weeconfig.c:598
msgid "rename incoming files if already exists (add '.1', '.2', ...)"
msgstr ""
"renommer les fichiers reçus s'ils existent déjà (ajoute '.1', '.2', ...)"
-#: src/common/weeconfig.c:590
+#: src/common/weeconfig.c:601
msgid "automatically resume aborted transfers"
msgstr "continuer automatiquement les transferts non terminés"
-#: src/common/weeconfig.c:591
+#: src/common/weeconfig.c:602
msgid ""
"automatically resume dcc transfer if connection with remote host is loosed"
msgstr ""
"continuer automatiquement les transferts dcc si la connexion avec la machine "
"distante a été perdue"
-#: src/common/weeconfig.c:610
+#: src/common/weeconfig.c:621
msgid "use proxy"
msgstr "utiliser un proxy"
-#: src/common/weeconfig.c:611
+#: src/common/weeconfig.c:622
msgid "use a proxy server to connect to irc server"
msgstr "utiliser un proxy pour se connecter au serveur irc"
-#: src/common/weeconfig.c:614
+#: src/common/weeconfig.c:625
msgid "proxy type"
msgstr "type de proxy"
-#: src/common/weeconfig.c:615
+#: src/common/weeconfig.c:626
msgid "proxy type (http (default), socks4, socks5)"
msgstr "type de proxy (http (défaut), socks4, socks5)"
-#: src/common/weeconfig.c:618
+#: src/common/weeconfig.c:629
msgid "use ipv6 proxy"
msgstr "utiliser un proxy ipv6"
-#: src/common/weeconfig.c:619
+#: src/common/weeconfig.c:630
msgid "connect to proxy in ipv6"
msgstr "se connecter au proxy en ipv6"
-#: src/common/weeconfig.c:622
+#: src/common/weeconfig.c:633
msgid "proxy address"
msgstr "adresse du proxy"
-#: src/common/weeconfig.c:623
+#: src/common/weeconfig.c:634
msgid "proxy server address (IP or hostname)"
msgstr "adresse du serveur proxy (IP ou nom)"
-#: src/common/weeconfig.c:626
+#: src/common/weeconfig.c:637
msgid "port for proxy"
msgstr "port pour le proxy"
-#: src/common/weeconfig.c:627
+#: src/common/weeconfig.c:638
msgid "port for connecting to proxy server"
msgstr "port pour se connecter au serveur proxy"
-#: src/common/weeconfig.c:630
+#: src/common/weeconfig.c:641
msgid "proxy username"
msgstr "nom d'utilisateur proxy"
-#: src/common/weeconfig.c:631
+#: src/common/weeconfig.c:642
msgid "username for proxy server"
msgstr "nom d'utilisateur pour le serveur proxy"
-#: src/common/weeconfig.c:634
+#: src/common/weeconfig.c:645
msgid "proxy password"
msgstr "mot de passe pour le proxy"
-#: src/common/weeconfig.c:635
+#: src/common/weeconfig.c:646
msgid "password for proxy server"
msgstr "mot de passe pour le serveur proxy"
-#: src/common/weeconfig.c:646
+#: src/common/weeconfig.c:657
msgid "server name"
msgstr "nom du serveur"
-#: src/common/weeconfig.c:647
+#: src/common/weeconfig.c:658
msgid "name associated to IRC server (for display only)"
msgstr "nom associé au serveur IRC (pour affichage seulement)"
-#: src/common/weeconfig.c:650
+#: src/common/weeconfig.c:661
msgid "automatically connect to server"
msgstr "connexion automatique au serveur"
-#: src/common/weeconfig.c:651
+#: src/common/weeconfig.c:662
msgid "automatically connect to server when WeeChat is starting"
msgstr "connexion automatique au serveur quand WeeChat démarre"
-#: src/common/weeconfig.c:654
+#: src/common/weeconfig.c:665
msgid "automatically reconnect to server"
msgstr "reconnexion automatique au serveur"
-#: src/common/weeconfig.c:655
+#: src/common/weeconfig.c:666
msgid "automatically reconnect to server when disconnected"
msgstr "reconnexion automatique au serveur après une déconnexion"
-#: src/common/weeconfig.c:658
+#: src/common/weeconfig.c:669
msgid "delay before trying again to reconnect"
msgstr "délai avant de tenter une reconnexion"
-#: src/common/weeconfig.c:659
+#: src/common/weeconfig.c:670
msgid "delay (in seconds) before trying again to reconnect to server"
msgstr "délai (en secondes) avant de tenter une reconnexion au serveur"
-#: src/common/weeconfig.c:662
+#: src/common/weeconfig.c:673
msgid "server address or hostname"
msgstr "adresse ou nom du serveur"
-#: src/common/weeconfig.c:663
+#: src/common/weeconfig.c:674
msgid "IP address or hostname of IRC server"
msgstr "adresse IP ou nom du serveur IRC"
-#: src/common/weeconfig.c:666
+#: src/common/weeconfig.c:677
msgid "port for IRC server"
msgstr "port pour le serveur IRC"
-#: src/common/weeconfig.c:667
+#: src/common/weeconfig.c:678
msgid "port for connecting to server"
msgstr "port pour se connecter au serveur"
-#: src/common/weeconfig.c:670 src/common/weeconfig.c:671
+#: src/common/weeconfig.c:681 src/common/weeconfig.c:682
msgid "use IPv6 protocol for server communication"
msgstr "utiliser le protocole IPv6 pour la communication avec le serveur"
-#: src/common/weeconfig.c:674 src/common/weeconfig.c:675
+#: src/common/weeconfig.c:685 src/common/weeconfig.c:686
msgid "use SSL for server communication"
msgstr "utiliser SSL pour la communication avec le serveur"
-#: src/common/weeconfig.c:678
+#: src/common/weeconfig.c:689
msgid "server password"
msgstr "mot de passe pour le serveur"
-#: src/common/weeconfig.c:679
+#: src/common/weeconfig.c:690
msgid "password for IRC server"
msgstr "mot de passe pour le serveur IRC"
-#: src/common/weeconfig.c:682
+#: src/common/weeconfig.c:693
msgid "nickname for server"
msgstr "pseudo pour le serveur"
-#: src/common/weeconfig.c:683
+#: src/common/weeconfig.c:694
msgid "nickname to use on IRC server"
msgstr "pseudo à utiliser sur le serveur IRC"
-#: src/common/weeconfig.c:686
+#: src/common/weeconfig.c:697
msgid "alternate nickname for server"
msgstr "pseudo alternatif pour le serveur"
-#: src/common/weeconfig.c:687
+#: src/common/weeconfig.c:698
msgid "alternate nickname to use on IRC server (if nickname is already used)"
msgstr "pseudo alternatif pour le serveur IRC (si le pseudo est déjà utilisé)"
-#: src/common/weeconfig.c:690
+#: src/common/weeconfig.c:701
msgid "2nd alternate nickname for server"
msgstr "2nd pseudo alternatif pour le serveur"
-#: src/common/weeconfig.c:691
+#: src/common/weeconfig.c:702
msgid ""
"2nd alternate nickname to use on IRC server (if alternate nickname is "
"already used)"
@@ -3758,31 +3830,31 @@ msgstr ""
"2nd pseudo alternatif pour le serveur IRC (si le pseudo alternatif est déjà "
"utilisé)"
-#: src/common/weeconfig.c:694
+#: src/common/weeconfig.c:705
msgid "user name for server"
msgstr "nom d'utilisateur pour le serveur"
-#: src/common/weeconfig.c:695
+#: src/common/weeconfig.c:706
msgid "user name to use on IRC server"
msgstr "nom d'utilisateur pour le serveur IRC"
-#: src/common/weeconfig.c:698
+#: src/common/weeconfig.c:709
msgid "real name for server"
msgstr "nom réel pour le serveur"
-#: src/common/weeconfig.c:699
+#: src/common/weeconfig.c:710
msgid "real name to use on IRC server"
msgstr "nom réel pour le serveur IRC"
-#: src/common/weeconfig.c:702 src/common/weeconfig.c:703
+#: src/common/weeconfig.c:713 src/common/weeconfig.c:714
msgid "first command to run when connected to server"
msgstr "commande à exécuter en premier lorsque connecté au serveur"
-#: src/common/weeconfig.c:706
+#: src/common/weeconfig.c:717
msgid "delay (in seconds) after command was executed"
msgstr "délai (en secondes) après exécution de la commande"
-#: src/common/weeconfig.c:707
+#: src/common/weeconfig.c:718
msgid ""
"delay (in seconds) after command was executed (example: give some time for "
"authentication)"
@@ -3790,25 +3862,25 @@ msgstr ""
"délai (en secondes) après exécution de la commande (exemple: donner du temps "
"pour l'authentification)"
-#: src/common/weeconfig.c:710
+#: src/common/weeconfig.c:721
msgid "list of channels to join when connected to server"
msgstr "liste des canaux à rejoindre lorsque connecté au serveur"
-#: src/common/weeconfig.c:711
+#: src/common/weeconfig.c:722
msgid "comma separated list of channels to join when connected to server"
msgstr ""
"liste des canaux (séparés par des virgules) à rejoindre lorsque connecté au "
"serveur"
-#: src/common/weeconfig.c:714 src/common/weeconfig.c:715
+#: src/common/weeconfig.c:725 src/common/weeconfig.c:726
msgid "automatically rejoin channels when kicked"
msgstr "rejoindre automatiquement les canaux quand mis dehors"
-#: src/common/weeconfig.c:718
+#: src/common/weeconfig.c:729
msgid "notify levels for channels of this server"
msgstr "niveaux de notification pour les canaux de ce serveur"
-#: src/common/weeconfig.c:719
+#: src/common/weeconfig.c:730
msgid ""
"comma separated list of notify levels for channels of this server (format: "
"#channel:1,..)"
@@ -3816,64 +3888,64 @@ msgstr ""
"liste des niveaux de notifications (séparés par des virgules) pour les "
"canaux de ce serveur (format: #canal:1,..)"
-#: src/common/weeconfig.c:1177
+#: src/common/weeconfig.c:1190
#, c-format
msgid "%s %s, line %d: new server, but previous was incomplete\n"
msgstr "%s %s, ligne %d: nouveau serveur, mais le précédent était incomplet\n"
-#: src/common/weeconfig.c:1186
+#: src/common/weeconfig.c:1199
#, c-format
msgid "%s %s, line %d: server '%s' already exists\n"
msgstr "%s %s, ligne %d: le serveur '%s' existe déjà\n"
-#: src/common/weeconfig.c:1201
+#: src/common/weeconfig.c:1214
#, c-format
msgid "%s %s, line %d: unable to create server\n"
msgstr "%s %s, ligne %d: impossible de créer le serveur\n"
-#: src/common/weeconfig.c:1240
+#: src/common/weeconfig.c:1254
#, c-format
msgid "%s unable to assign default int with string (\"%s\")\n"
msgstr ""
"%s impossible d'assigner la valeur entière par défaut avec la chaîne (\"%s"
"\")\n"
-#: src/common/weeconfig.c:1251
+#: src/common/weeconfig.c:1265
#, c-format
msgid "%s unable to assign default color (\"%s\")\n"
msgstr "%s impossible d'assigner la couleur par défaut (\"%s\")\n"
-#: src/common/weeconfig.c:1290
+#: src/common/weeconfig.c:1304
#, c-format
msgid "%s config file \"%s\" not found.\n"
msgstr "%s fichier de configuration \"%s\" non trouvé.\n"
-#: src/common/weeconfig.c:1322
+#: src/common/weeconfig.c:1336
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"]\"\n"
msgstr "%s %s, ligne %d: syntaxe invalide, il manque \"]\"\n"
-#: src/common/weeconfig.c:1339
+#: src/common/weeconfig.c:1353
#, c-format
msgid "%s %s, line %d: unknown section identifier (\"%s\")\n"
msgstr "%s %s, ligne %d: section inconnue (\"%s\")\n"
-#: src/common/weeconfig.c:1357
+#: src/common/weeconfig.c:1371
#, c-format
msgid "%s %s, line %d: invalid section for option, line is ignored\n"
msgstr "%s %s, ligne %d: section invalide pour l'option, ligne ignorée\n"
-#: src/common/weeconfig.c:1365
+#: src/common/weeconfig.c:1379
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"=\"\n"
msgstr "%s %s, ligne %d: syntaxe invalide, il manque \"=\"\n"
-#: src/common/weeconfig.c:1399
+#: src/common/weeconfig.c:1427
#, c-format
msgid "%s %s, line %d: invalid option \"%s\"\n"
msgstr "%s %s, ligne %d: option \"%s\" invalide\n"
-#: src/common/weeconfig.c:1410
+#: src/common/weeconfig.c:1438
#, c-format
msgid ""
"%s %s, line %d: invalid value foroption '%s'\n"
@@ -3882,7 +3954,7 @@ msgstr ""
"%s %s, ligne %d: valeur invalide pour l'option '%s'\n"
"Attendu: valeur booléenne: 'off' ou 'on'\n"
-#: src/common/weeconfig.c:1419
+#: src/common/weeconfig.c:1447
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
@@ -3891,7 +3963,7 @@ msgstr ""
"%s %s, ligne %d: valeur invalide pour l'option '%s'\n"
"Attendu: entier compris entre %d et %d\n"
-#: src/common/weeconfig.c:1430
+#: src/common/weeconfig.c:1458
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
@@ -3900,26 +3972,26 @@ msgstr ""
"%s %s, ligne %d: valeur invalide pour l'option '%s'\n"
"Attendu: une de ces chaînes: "
-#: src/common/weeconfig.c:1446
+#: src/common/weeconfig.c:1474
#, c-format
msgid "%s %s, line %d: invalid color name for option '%s'\n"
msgstr "%s %s, ligne %d: nom de couleur invalide pour l'option '%s'\n"
-#: src/common/weeconfig.c:1506 src/common/weeconfig.c:1677
+#: src/common/weeconfig.c:1536 src/common/weeconfig.c:1731
#, c-format
msgid "%s cannot create file \"%s\"\n"
msgstr "%s impossible de créer le fichier \"%s\"\n"
-#: src/common/weeconfig.c:1512
+#: src/common/weeconfig.c:1542
#, c-format
msgid "%s: creating default config file...\n"
msgstr "%s: création du fichier de configuration par défaut...\n"
-#: src/common/weeconfig.c:1513
+#: src/common/weeconfig.c:1543
msgid "Creating default config file\n"
msgstr "Création du fichier de configuration par défaut\n"
-#: src/common/weeconfig.c:1516 src/common/weeconfig.c:1686
+#: src/common/weeconfig.c:1546 src/common/weeconfig.c:1740
#, c-format
msgid ""
"#\n"
@@ -3928,6 +4000,15 @@ msgstr ""
"#\n"
"# %s: fichier de configuration, créé par %s v%s le %s#\n"
-#: src/common/weeconfig.c:1683
+#: src/common/weeconfig.c:1737
msgid "Saving config to disk\n"
msgstr "Sauvegarde de la configuration sur disque\n"
+
+#~ msgid "%d:[not connected] "
+#~ msgstr "%d:[non connecté] "
+
+#~ msgid "(F) %s\n"
+#~ msgstr "(F) %s\n"
+
+#~ msgid "(C) %s\n"
+#~ msgstr "(C) %s\n"
diff --git a/po/weechat.pot b/po/weechat.pot
index 670b11f24..e6d8e8350 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-07-02 18:30+0200\n"
+"POT-Creation-Date: 2005-07-09 17:25+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"
@@ -20,7 +20,7 @@ msgstr ""
msgid "%s cannot allocate new nick\n"
msgstr ""
-#: src/irc/irc-server.c:180 src/common/weeconfig.c:1625
+#: src/irc/irc-server.c:180 src/common/weeconfig.c:1677
msgid "Unable to get user's name"
msgstr ""
@@ -1194,7 +1194,7 @@ msgstr ""
msgid "whois (secure connection)"
msgstr ""
-#: src/irc/irc-display.c:156 src/common/command.c:842
+#: src/irc/irc-display.c:156 src/common/command.c:848
msgid "Server: "
msgstr ""
@@ -1235,43 +1235,43 @@ msgstr ""
#: src/irc/irc-send.c:232 src/irc/irc-send.c:260 src/irc/irc-send.c:426
#: src/irc/irc-send.c:452 src/irc/irc-send.c:478 src/irc/irc-send.c:519
-#: src/irc/irc-send.c:555 src/irc/irc-send.c:619 src/irc/irc-send.c:676
-#: src/irc/irc-send.c:1018 src/irc/irc-send.c:1116 src/irc/irc-send.c:1595
-#: src/irc/irc-send.c:1702
+#: src/irc/irc-send.c:555 src/irc/irc-send.c:622 src/irc/irc-send.c:679
+#: src/irc/irc-send.c:1021 src/irc/irc-send.c:1119 src/irc/irc-send.c:1598
+#: src/irc/irc-send.c:1705
#, c-format
msgid "%s \"%s\" command can only be executed in a channel window\n"
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:1621
-#: src/common/command.c:1167 src/common/command.c:1451
-#: src/common/command.c:1594
+#: src/irc/irc-send.c:999 src/irc/irc-send.c:1092 src/irc/irc-send.c:1624
+#: src/common/command.c:1189 src/common/command.c:1455
+#: src/common/command.c:1605 src/common/command.c:1748
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr ""
-#: src/irc/irc-send.c:398 src/irc/irc-send.c:604 src/irc/irc-send.c:661
+#: src/irc/irc-send.c:398 src/irc/irc-send.c:607 src/irc/irc-send.c:664
#, c-format
msgid "%s wrong arguments for \"%s\" command\n"
msgstr ""
-#: src/irc/irc-send.c:804 src/irc/irc-send.c:871 src/irc/irc-send.c:1164
-#: src/irc/irc-send.c:1178 src/irc/irc-send.c:1522
+#: src/irc/irc-send.c:807 src/irc/irc-send.c:874 src/irc/irc-send.c:1167
+#: src/irc/irc-send.c:1181 src/irc/irc-send.c:1525
#, c-format
msgid "%s \"%s\" command can not be executed on a server window\n"
msgstr ""
-#: src/irc/irc-send.c:889 src/irc/irc-send.c:914 src/irc/irc-recv.c:322
+#: src/irc/irc-send.c:892 src/irc/irc-send.c:917 src/irc/irc-recv.c:322
#, c-format
msgid "%s nick \"%s\" not found for \"%s\" command\n"
msgstr ""
-#: src/irc/irc-send.c:966 src/irc/irc-send.c:1274 src/irc/irc-recv.c:1505
+#: src/irc/irc-send.c:969 src/irc/irc-send.c:1277 src/irc/irc-recv.c:1505
#, c-format
msgid "%s cannot create new private window \"%s\"\n"
msgstr ""
-#: src/irc/irc-send.c:1674
+#: src/irc/irc-send.c:1677
#, c-format
msgid "%s, compiled on %s %s\n"
msgstr ""
@@ -1961,66 +1961,65 @@ msgstr ""
msgid "%s unable to add handler for \"%s\" message (not enough memory)\n"
msgstr ""
-#: src/gui/curses/gui-input.c:788
+#: src/gui/curses/gui-input.c:298
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr ""
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "bytes"
msgstr ""
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Kb"
msgstr ""
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Mb"
msgstr ""
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Gb"
msgstr ""
-#: src/gui/curses/gui-display.c:1122
+#: src/gui/curses/gui-display.c:1116
msgid "(away)"
msgstr ""
-#: src/gui/curses/gui-display.c:1235
-#, c-format
-msgid "%d:[not connected] "
+#: src/gui/curses/gui-display.c:1233
+msgid "[not connected]"
msgstr ""
-#: src/gui/curses/gui-display.c:1252
+#: src/gui/curses/gui-display.c:1249
msgid "Act: "
msgstr ""
-#: src/gui/curses/gui-display.c:1301
+#: src/gui/curses/gui-display.c:1298
#, c-format
msgid "Lag: %.1f"
msgstr ""
-#: src/gui/curses/gui-display.c:1322
+#: src/gui/curses/gui-display.c:1319
msgid "-MORE-"
msgstr ""
-#: src/gui/curses/gui-display.c:1509
+#: src/gui/curses/gui-display.c:1559
msgid " [A] Accept"
msgstr ""
-#: src/gui/curses/gui-display.c:1510 src/gui/curses/gui-display.c:1514
+#: src/gui/curses/gui-display.c:1560 src/gui/curses/gui-display.c:1564
msgid " [C] Cancel"
msgstr ""
-#: src/gui/curses/gui-display.c:1519
+#: src/gui/curses/gui-display.c:1569
msgid " [R] Remove"
msgstr ""
-#: src/gui/curses/gui-display.c:1523
+#: src/gui/curses/gui-display.c:1573
msgid " [P] Purge old DCC"
msgstr ""
-#: src/gui/curses/gui-display.c:1524
+#: src/gui/curses/gui-display.c:1574
msgid " [Q] Close DCC view"
msgstr ""
@@ -2028,15 +2027,15 @@ msgstr ""
msgid "server"
msgstr ""
-#: src/gui/gui-common.c:330
+#: src/gui/gui-common.c:333
msgid "Not enough memory for infobar message\n"
msgstr ""
-#: src/gui/gui-common.c:505
+#: src/gui/gui-common.c:508
msgid "Not enough memory for new line\n"
msgstr ""
-#: src/gui/gui-common.c:548
+#: src/gui/gui-common.c:551
msgid "Not enough memory for new message\n"
msgstr ""
@@ -2133,34 +2132,52 @@ msgid "command: name of a WeeChat or IRC command"
msgstr ""
#: src/common/command.c:75
+msgid "bind/unbind keys"
+msgstr ""
+
+#: src/common/command.c:76
+msgid "[key function/command] [unbind key] [functions] [reset -yes]"
+msgstr ""
+
+#: src/common/command.c:77
+msgid ""
+"key: bind this key to an internal function or a command (beginning by \"/"
+"\")\n"
+"unbind: unbind a key (if \"all\", default bindings are restored)\n"
+"functions: list internal functions for key bindings\n"
+"reset: restore bindings to the default values and delete ALL personal "
+"binding (use carefully!)"
+msgstr ""
+
+#: src/common/command.c:82
msgid "list/load/unload Perl scripts"
msgstr ""
-#: src/common/command.c:76 src/common/command.c:81
+#: src/common/command.c:83 src/common/command.c:88
msgid "[load filename] | [autoload] | [reload] | [unload]"
msgstr ""
-#: src/common/command.c:77
+#: src/common/command.c:84
msgid ""
"filename: Perl script (file) to load\n"
"Without argument, /perl command lists all loaded Perl scripts."
msgstr ""
-#: src/common/command.c:80
+#: src/common/command.c:87
msgid "list/load/unload Python scripts"
msgstr ""
-#: src/common/command.c:82
+#: src/common/command.c:89
msgid ""
"filename: Python script (file) to load\n"
"Without argument, /python command lists all loaded Python scripts."
msgstr ""
-#: src/common/command.c:85
+#: src/common/command.c:92
msgid "list, add or remove servers"
msgstr ""
-#: src/common/command.c:86
+#: src/common/command.c:93
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-"
"pwd password] [-nicks nick1 [nick2 [nick3]]] [-username username] [-realname "
@@ -2168,7 +2185,7 @@ msgid ""
"servername]"
msgstr ""
-#: src/common/command.c:91
+#: src/common/command.c:98
msgid ""
"servername: server name, for internal & display use\n"
"hostname: name or IP address of server\n"
@@ -2183,53 +2200,53 @@ msgid ""
"realname: real name of user"
msgstr ""
-#: src/common/command.c:103
+#: src/common/command.c:110
msgid "save config to disk"
msgstr ""
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "[file]"
msgstr ""
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "file: filename for writing config"
msgstr ""
-#: src/common/command.c:106
+#: src/common/command.c:113
msgid "set config parameters"
msgstr ""
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid "[option[=value]]"
msgstr ""
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid ""
"option: name of an option\n"
"value: value for option"
msgstr ""
-#: src/common/command.c:109
+#: src/common/command.c:116
msgid "remove an alias"
msgstr ""
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name"
msgstr ""
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name: name of alias to remove"
msgstr ""
-#: src/common/command.c:112
+#: src/common/command.c:119
msgid "manage windows"
msgstr ""
-#: src/common/command.c:113
+#: src/common/command.c:120
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr ""
-#: src/common/command.c:115
+#: src/common/command.c:121
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2237,373 +2254,405 @@ msgid ""
"merge: merge window with another"
msgstr ""
-#: src/common/command.c:261
+#: src/common/command.c:267
#, c-format
msgid "%s alias or command \"%s\" already exists!\n"
msgstr ""
-#: src/common/command.c:271
+#: src/common/command.c:277
#, c-format
msgid "%s alias cannot run another alias!\n"
msgstr ""
-#: src/common/command.c:278
+#: src/common/command.c:284
#, c-format
msgid "%s target command \"%s\" does not exist!\n"
msgstr ""
-#: src/common/command.c:486
+#: src/common/command.c:492
#, c-format
msgid "%s wrong argument count for %s command \"%s\" (expected: %d arg%s)\n"
msgstr ""
-#: src/common/command.c:498
+#: src/common/command.c:504
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
"arg%s)\n"
msgstr ""
-#: src/common/command.c:520 src/common/command.c:590
+#: src/common/command.c:526 src/common/command.c:596
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr ""
-#: src/common/command.c:548
+#: src/common/command.c:554
#, c-format
msgid "%s wrong argument count for IRC command \"%s\" (expected: %d arg%s)\n"
msgstr ""
-#: src/common/command.c:560
+#: src/common/command.c:566
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
"arg%s)\n"
msgstr ""
-#: src/common/command.c:575
+#: src/common/command.c:581
#, c-format
msgid "%s command \"%s\" needs a server connection!\n"
msgstr ""
-#: src/common/command.c:639
+#: src/common/command.c:645
#, c-format
msgid "%s unknown command \"%s\" (type /help for help)\n"
msgstr ""
-#: src/common/command.c:720
+#: src/common/command.c:726
#, c-format
msgid "%s cannot find nick for sending message\n"
msgstr ""
-#: src/common/command.c:742
+#: src/common/command.c:748
#, c-format
msgid "%s unable to call handler for message (not enough memory)\n"
msgstr ""
-#: src/common/command.c:750
+#: src/common/command.c:756
msgid "This window is not a channel!\n"
msgstr ""
-#: src/common/command.c:778 src/common/command.c:802 src/common/command.c:906
+#: src/common/command.c:784 src/common/command.c:808 src/common/command.c:913
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:787
+#: src/common/command.c:793
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr ""
-#: src/common/command.c:793
+#: src/common/command.c:799
#, c-format
msgid "Failed to create alias \"%s\" => \"%s\" (not enough memory)\n"
msgstr ""
-#: src/common/command.c:813
+#: src/common/command.c:819
msgid "List of aliases:\n"
msgstr ""
-#: src/common/command.c:825
+#: src/common/command.c:831
msgid "No alias defined.\n"
msgstr ""
-#: src/common/command.c:848
+#: src/common/command.c:854
msgid "Channel: "
msgstr ""
-#: src/common/command.c:851 src/common/command.c:861
+#: src/common/command.c:857 src/common/command.c:867
msgid " (server: "
msgstr ""
-#: src/common/command.c:858
+#: src/common/command.c:864
msgid "Private with: "
msgstr ""
-#: src/common/command.c:886
+#: src/common/command.c:893
msgid "Opened buffers:\n"
msgstr ""
-#: src/common/command.c:929 src/common/command.c:1069
+#: src/common/command.c:936
#, c-format
msgid "%s incorrect buffer number\n"
msgstr ""
-#: src/common/command.c:943
+#: src/common/command.c:950
#, c-format
msgid "%s can not close the single buffer\n"
msgstr ""
-#: src/common/command.c:953
+#: src/common/command.c:960
#, c-format
msgid "%s can not close server buffer while channels are opened\n"
msgstr ""
-#: src/common/command.c:992
+#: src/common/command.c:999
msgid "Notify levels: "
msgstr ""
-#: src/common/command.c:1020 src/common/command.c:1042
+#: src/common/command.c:1027 src/common/command.c:1049
#, c-format
msgid "%s incorrect notify level (must be between %d and %d)\n"
msgstr ""
-#: src/common/command.c:1029
+#: src/common/command.c:1036
#, c-format
msgid "%s incorrect buffer for notify (must be channel or private)\n"
msgstr ""
-#: src/common/command.c:1060
-#, c-format
-msgid "%s buffer \"%s\" not found for \"%s\" command\n"
-msgstr ""
-
-#: src/common/command.c:1094
+#: src/common/command.c:1116
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1124
+#: src/common/command.c:1146
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1132
+#: src/common/command.c:1154
#, c-format
msgid "%s currently connecting to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1150 src/common/command.c:1225
+#: src/common/command.c:1172 src/common/command.c:1247
#, c-format
msgid "%s server not found\n"
msgstr ""
-#: src/common/command.c:1180 src/common/command.c:1444
-#: src/common/command.c:1587 src/common/command.c:2283
-#: src/common/command.c:2295
+#: src/common/command.c:1202 src/common/command.c:1598
+#: src/common/command.c:1741 src/common/command.c:2438
+#: src/common/command.c:2454
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1209
+#: src/common/command.c:1231
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1217
+#: src/common/command.c:1239
msgid "Auto-reconnection is cancelled\n"
msgstr ""
-#: src/common/command.c:1243 src/common/weechat.c:273
+#: src/common/command.c:1265 src/common/weechat.c:273
#, c-format
msgid "%s internal commands:\n"
msgstr ""
-#: src/common/command.c:1252 src/common/weechat.c:293
+#: src/common/command.c:1274 src/common/weechat.c:293
#, c-format
msgid "IRC commands:\n"
msgstr ""
-#: src/common/command.c:1319
+#: src/common/command.c:1341
#, c-format
msgid "No help available, \"%s\" is an unknown command\n"
msgstr ""
-#: src/common/command.c:1343 src/common/command.c:1486
+#: src/common/command.c:1359
+msgid "New key binding:\n"
+msgstr ""
+
+#: src/common/command.c:1392
+msgid "Key bindings:\n"
+msgstr ""
+
+#: src/common/command.c:1404
+#, c-format
+msgid "Key \"%s\" unbinded\n"
+msgstr ""
+
+#: src/common/command.c:1409
+#, c-format
+msgid "%s unable to unbind key \"%s\"\n"
+msgstr ""
+
+#: src/common/command.c:1417 src/common/weechat.c:324
+#, c-format
+msgid "Internal key functions:\n"
+msgstr ""
+
+#: src/common/command.c:1435
+msgid "Default key bindings restored\n"
+msgstr ""
+
+#: src/common/command.c:1441
+#, c-format
+msgid "%s \"-yes\" argument is required for keys reset (securuty reason)\n"
+msgstr ""
+
+#: src/common/command.c:1470
+#, c-format
+msgid "%s unable to bind key \"%s\"\n"
+msgstr ""
+
+#: src/common/command.c:1497 src/common/command.c:1640
#, c-format
msgid "Registered %s scripts:\n"
msgstr ""
-#: src/common/command.c:1360 src/common/command.c:1383
-#: src/common/command.c:1406 src/common/command.c:1503
-#: src/common/command.c:1526 src/common/command.c:1549
+#: src/common/command.c:1514 src/common/command.c:1537
+#: src/common/command.c:1560 src/common/command.c:1657
+#: src/common/command.c:1680 src/common/command.c:1703
msgid " (none)\n"
msgstr ""
-#: src/common/command.c:1365 src/common/command.c:1508
+#: src/common/command.c:1519 src/common/command.c:1662
#, c-format
msgid "%s message handlers:\n"
msgstr ""
-#: src/common/command.c:1374 src/common/command.c:1517
+#: src/common/command.c:1528 src/common/command.c:1671
#, c-format
msgid " IRC(%s) => %s(%s)\n"
msgstr ""
-#: src/common/command.c:1388 src/common/command.c:1531
+#: src/common/command.c:1542 src/common/command.c:1685
#, c-format
msgid "%s command handlers:\n"
msgstr ""
-#: src/common/command.c:1397 src/common/command.c:1540
+#: src/common/command.c:1551 src/common/command.c:1694
#, c-format
msgid " Command /%s => %s(%s)\n"
msgstr ""
-#: src/common/command.c:1457
+#: src/common/command.c:1611
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
msgstr ""
-#: src/common/command.c:1600
+#: src/common/command.c:1754
msgid ""
"WeeChat was build without Python support.\n"
"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
"script\n"
msgstr ""
-#: src/common/command.c:1648
+#: src/common/command.c:1802
msgid "No server.\n"
msgstr ""
-#: src/common/command.c:1659
+#: src/common/command.c:1813
#, c-format
msgid "Server '%s' not found.\n"
msgstr ""
-#: src/common/command.c:1671
+#: src/common/command.c:1825
#, c-format
msgid "%s missing servername for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1679
+#: src/common/command.c:1833
#, c-format
msgid "%s too much arguments for \"%s\" command, ignoring arguments\n"
msgstr ""
-#: src/common/command.c:1698
+#: src/common/command.c:1852
#, c-format
msgid "%s server \"%s\" not found for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1706
+#: src/common/command.c:1860
#, 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:1722 src/common/command.c:1868
+#: src/common/command.c:1876 src/common/command.c:2022
msgid "Server"
msgstr ""
-#: src/common/command.c:1725
+#: src/common/command.c:1879
msgid "has been deleted\n"
msgstr ""
-#: src/common/command.c:1740
+#: src/common/command.c:1894
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1750
+#: src/common/command.c:1904
#, c-format
msgid "%s server \"%s\" already exists, can't create it!\n"
msgstr ""
-#: src/common/command.c:1779 src/common/command.c:1807
-#: src/common/command.c:1820 src/common/command.c:1846
+#: src/common/command.c:1933 src/common/command.c:1961
+#: src/common/command.c:1974 src/common/command.c:2000
#, c-format
msgid "%s missing password for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1792
+#: src/common/command.c:1946
#, c-format
msgid "%s missing nick(s) for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1833
+#: src/common/command.c:1987
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1871
+#: src/common/command.c:2025
msgid "created\n"
msgstr ""
-#: src/common/command.c:1877
+#: src/common/command.c:2031
#, c-format
msgid "%s unable to create server\n"
msgstr ""
-#: src/common/command.c:1932
+#: src/common/command.c:2086
msgid "(unknown)"
msgstr ""
-#: src/common/command.c:1955
+#: src/common/command.c:2109
msgid "(password hidden) "
msgstr ""
-#: src/common/command.c:2019
+#: src/common/command.c:2173
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:2050 src/common/command.c:2096
+#: src/common/command.c:2204 src/common/command.c:2250
#, c-format
msgid "%s config option \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:2055 src/common/command.c:2088
+#: src/common/command.c:2209 src/common/command.c:2242
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr ""
-#: src/common/command.c:2071
+#: src/common/command.c:2225
#, c-format
msgid "%s option \"%s\" can not be changed while WeeChat is running\n"
msgstr ""
-#: src/common/command.c:2169
+#: src/common/command.c:2324
#, c-format
msgid "No config option found with \"%s\"\n"
msgstr ""
-#: src/common/command.c:2172
+#: src/common/command.c:2327
msgid "No config option found\n"
msgstr ""
-#: src/common/command.c:2178
+#: src/common/command.c:2333
#, c-format
msgid "config option(s) found with \"%s\"\n"
msgstr ""
-#: src/common/command.c:2181
+#: src/common/command.c:2336
msgid "config option(s) found\n"
msgstr ""
-#: src/common/command.c:2201
+#: src/common/command.c:2356
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:2211
+#: src/common/command.c:2366
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr ""
-#: src/common/command.c:2231
+#: src/common/command.c:2386
msgid "Opened windows:\n"
msgstr ""
@@ -2738,57 +2787,62 @@ msgid ""
"\n"
msgstr ""
-#: src/common/weechat.c:371
+#: src/common/weechat.c:344
+#, c-format
+msgid "%s default keys:\n"
+msgstr ""
+
+#: src/common/weechat.c:424
#, c-format
msgid "%s invalid syntax for IRC server ('%s'), ignored\n"
msgstr ""
-#: src/common/weechat.c:384
+#: src/common/weechat.c:437
#, c-format
msgid "%s unable to create server ('%s'), ignored\n"
msgstr ""
-#: src/common/weechat.c:393
+#: src/common/weechat.c:446
#, c-format
msgid "%s unknown parameter '%s', ignored\n"
msgstr ""
-#: src/common/weechat.c:413
+#: src/common/weechat.c:466
#, c-format
msgid "%s cannot create directory \"%s\"\n"
msgstr ""
-#: src/common/weechat.c:439
+#: src/common/weechat.c:492
#, c-format
msgid "%s unable to get HOME directory\n"
msgstr ""
-#: src/common/weechat.c:448
+#: src/common/weechat.c:501
#, c-format
msgid "%s not enough memory for home directory\n"
msgstr ""
-#: src/common/weechat.c:458
+#: src/common/weechat.c:511
#, c-format
msgid "%s unable to create ~/.weechat directory\n"
msgstr ""
-#: src/common/weechat.c:510
+#: src/common/weechat.c:563
#, c-format
msgid "%s unable to create ~/.weechat/logs directory\n"
msgstr ""
-#: src/common/weechat.c:553
+#: src/common/weechat.c:606
#, c-format
msgid "%s unable to create/append to log file (~/.weechat/%s)"
msgstr ""
-#: src/common/weechat.c:576
+#: src/common/weechat.c:629
#, c-format
msgid "%sWelcome to "
msgstr ""
-#: src/common/weechat.c:589 src/common/weechat.c:598
+#: src/common/weechat.c:642 src/common/weechat.c:651
msgid "compiled on"
msgstr ""
@@ -2800,871 +2854,879 @@ msgstr ""
msgid "WeeChat Warning:"
msgstr ""
-#: src/common/weeconfig.c:88 src/common/weeconfig.c:89
+#: src/common/weeconfig.c:90 src/common/weeconfig.c:91
msgid "set title for window (terminal for Curses GUI) with name & version"
msgstr ""
-#: src/common/weeconfig.c:92 src/common/weeconfig.c:93
+#: src/common/weeconfig.c:94 src/common/weeconfig.c:95
msgid "display WeeChat logo at startup"
msgstr ""
-#: src/common/weeconfig.c:96 src/common/weeconfig.c:97
+#: src/common/weeconfig.c:98 src/common/weeconfig.c:99
msgid "display WeeChat version at startup"
msgstr ""
-#: src/common/weeconfig.c:100
+#: src/common/weeconfig.c:102
msgid "WeeChat slogan"
msgstr ""
-#: src/common/weeconfig.c:101
+#: src/common/weeconfig.c:103
msgid "WeeChat slogan (if empty, slogan is not used)"
msgstr ""
-#: src/common/weeconfig.c:104
+#: src/common/weeconfig.c:106
msgid "charset for decoding messages from server"
msgstr ""
-#: src/common/weeconfig.c:105
+#: src/common/weeconfig.c:107
msgid ""
"charset for decoding messages from server, examples: UTF-8, ISO-8859-1 (if "
"empty, messages are not converted)"
msgstr ""
-#: src/common/weeconfig.c:108
+#: src/common/weeconfig.c:110
msgid "charset for encoding messages sent to server"
msgstr ""
-#: src/common/weeconfig.c:109
+#: src/common/weeconfig.c:111
msgid ""
"charset for encoding messages sent to server, examples: UFT-8, ISO-8859-1 "
"(if empty, local charset is used)"
msgstr ""
-#: src/common/weeconfig.c:112
+#: src/common/weeconfig.c:114
msgid "internal WeeChat charset (should be ISO)"
msgstr ""
-#: src/common/weeconfig.c:113
+#: src/common/weeconfig.c:115
msgid ""
"internal WeeChat charset, should be ISO-xxxx even if locale is UTF-8 (if "
"empty, local charset is used)"
msgstr ""
-#: src/common/weeconfig.c:116 src/common/weeconfig.c:117
+#: src/common/weeconfig.c:118 src/common/weeconfig.c:119
msgid "timestamp for buffers"
msgstr ""
-#: src/common/weeconfig.c:120 src/common/weeconfig.c:121
+#: src/common/weeconfig.c:122 src/common/weeconfig.c:123
msgid "display nick names with different colors"
msgstr ""
-#: src/common/weeconfig.c:124 src/common/weeconfig.c:125
+#: src/common/weeconfig.c:126 src/common/weeconfig.c:127
msgid "display actions with different colors"
msgstr ""
-#: src/common/weeconfig.c:128 src/common/weeconfig.c:129
+#: src/common/weeconfig.c:130 src/common/weeconfig.c:131
msgid "remove colors from incoming messages"
msgstr ""
-#: src/common/weeconfig.c:132
+#: src/common/weeconfig.c:134
msgid "display nicklist window"
msgstr ""
-#: src/common/weeconfig.c:133
+#: src/common/weeconfig.c:135
msgid "display nicklist window (for channel windows)"
msgstr ""
-#: src/common/weeconfig.c:136
+#: src/common/weeconfig.c:138
msgid "nicklist position"
msgstr ""
-#: src/common/weeconfig.c:137
+#: src/common/weeconfig.c:139
msgid "nicklist position (top, left, right (default), bottom)"
msgstr ""
-#: src/common/weeconfig.c:140
+#: src/common/weeconfig.c:142
msgid "min size for nicklist"
msgstr ""
-#: src/common/weeconfig.c:141
+#: src/common/weeconfig.c:143
msgid ""
"min size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no min size))"
msgstr ""
-#: src/common/weeconfig.c:145
+#: src/common/weeconfig.c:147
msgid "max size for nicklist"
msgstr ""
-#: src/common/weeconfig.c:146
+#: src/common/weeconfig.c:148
msgid ""
"max size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no max size; if min == max and > 0, then size is fixed))"
msgstr ""
-#: src/common/weeconfig.c:150 src/common/weeconfig.c:151
+#: src/common/weeconfig.c:152 src/common/weeconfig.c:153
msgid "text to display instead of nick when not connected"
msgstr ""
-#: src/common/weeconfig.c:154 src/common/weeconfig.c:155
+#: src/common/weeconfig.c:156 src/common/weeconfig.c:157
msgid "display nick mode ((half)op/voice) before each nick"
msgstr ""
-#: src/common/weeconfig.c:158 src/common/weeconfig.c:159
+#: src/common/weeconfig.c:160 src/common/weeconfig.c:161
msgid "display space if nick mode is not (half)op/voice"
msgstr ""
-#: src/common/weeconfig.c:162 src/common/weeconfig.c:163
+#: src/common/weeconfig.c:164 src/common/weeconfig.c:165
msgid "the string inserted after nick completion"
msgstr ""
-#: src/common/weeconfig.c:166 src/common/weeconfig.c:167
+#: src/common/weeconfig.c:168 src/common/weeconfig.c:169
msgid "enable info bar"
msgstr ""
-#: src/common/weeconfig.c:170 src/common/weeconfig.c:171
+#: src/common/weeconfig.c:172 src/common/weeconfig.c:173
msgid "timestamp for time in infobar"
msgstr ""
-#: src/common/weeconfig.c:174
+#: src/common/weeconfig.c:176 src/common/weeconfig.c:177
+msgid "display seconds in infobar time"
+msgstr ""
+
+#: src/common/weeconfig.c:180
msgid "delay (in seconds) for highlight messages in infobar"
msgstr ""
-#: src/common/weeconfig.c:175
+#: src/common/weeconfig.c:181
msgid ""
"delay (in seconds) for highlight messages in infobar (0 = disable highlight "
"notifications in infobar)"
msgstr ""
-#: src/common/weeconfig.c:233 src/common/weeconfig.c:234
+#: src/common/weeconfig.c:240 src/common/weeconfig.c:241
msgid "color for title bar"
msgstr ""
-#: src/common/weeconfig.c:237 src/common/weeconfig.c:238
+#: src/common/weeconfig.c:244 src/common/weeconfig.c:245
msgid "background for title bar"
msgstr ""
-#: src/common/weeconfig.c:243 src/common/weeconfig.c:244
+#: src/common/weeconfig.c:250 src/common/weeconfig.c:251
msgid "color for chat text"
msgstr ""
-#: src/common/weeconfig.c:247
+#: src/common/weeconfig.c:254
msgid "color for time"
msgstr ""
-#: src/common/weeconfig.c:248
+#: src/common/weeconfig.c:255
msgid "color for time in chat window"
msgstr ""
-#: src/common/weeconfig.c:251
+#: src/common/weeconfig.c:258
msgid "color for time separator"
msgstr ""
-#: src/common/weeconfig.c:252
+#: src/common/weeconfig.c:259
msgid "color for time separator (chat window)"
msgstr ""
-#: src/common/weeconfig.c:255 src/common/weeconfig.c:256
+#: src/common/weeconfig.c:262 src/common/weeconfig.c:263
msgid "color for 1st and 3rd char of prefix"
msgstr ""
-#: src/common/weeconfig.c:259 src/common/weeconfig.c:260
+#: src/common/weeconfig.c:266 src/common/weeconfig.c:267
msgid "color for middle char of prefix"
msgstr ""
-#: src/common/weeconfig.c:263
+#: src/common/weeconfig.c:270
msgid "color for nicks in actions"
msgstr ""
-#: src/common/weeconfig.c:264
+#: src/common/weeconfig.c:271
msgid "color for nicks in actions (chat window)"
msgstr ""
-#: src/common/weeconfig.c:267
+#: src/common/weeconfig.c:274
msgid "color for hostnames"
msgstr ""
-#: src/common/weeconfig.c:268
+#: src/common/weeconfig.c:275
msgid "color for hostnames (chat window)"
msgstr ""
-#: src/common/weeconfig.c:271
+#: src/common/weeconfig.c:278
msgid "color for channel names in actions"
msgstr ""
-#: src/common/weeconfig.c:272
+#: src/common/weeconfig.c:279
msgid "color for channel names in actions (chat window)"
msgstr ""
-#: src/common/weeconfig.c:275
+#: src/common/weeconfig.c:282
msgid "color for dark separators"
msgstr ""
-#: src/common/weeconfig.c:276
+#: src/common/weeconfig.c:283
msgid "color for dark separators (chat window)"
msgstr ""
-#: src/common/weeconfig.c:279
+#: src/common/weeconfig.c:286
msgid "color for highlighted nick"
msgstr ""
-#: src/common/weeconfig.c:280
+#: src/common/weeconfig.c:287
msgid "color for highlighted nick (chat window)"
msgstr ""
-#: src/common/weeconfig.c:283
+#: src/common/weeconfig.c:290
msgid "background for chat"
msgstr ""
-#: src/common/weeconfig.c:284
+#: src/common/weeconfig.c:291
msgid "background for chat window"
msgstr ""
-#: src/common/weeconfig.c:289 src/common/weeconfig.c:290
+#: src/common/weeconfig.c:296 src/common/weeconfig.c:297
msgid "color for status bar"
msgstr ""
-#: src/common/weeconfig.c:293 src/common/weeconfig.c:294
+#: src/common/weeconfig.c:300 src/common/weeconfig.c:301
msgid "color for status bar delimiters"
msgstr ""
-#: src/common/weeconfig.c:297
+#: src/common/weeconfig.c:304
msgid "color for window with new messages"
msgstr ""
-#: src/common/weeconfig.c:298
+#: src/common/weeconfig.c:305
msgid "color for window with new messages (status bar)"
msgstr ""
-#: src/common/weeconfig.c:301
+#: src/common/weeconfig.c:308
msgid "color for window with highlight"
msgstr ""
-#: src/common/weeconfig.c:302
+#: src/common/weeconfig.c:309
msgid "color for window with highlight (status bar)"
msgstr ""
-#: src/common/weeconfig.c:305
+#: src/common/weeconfig.c:312
msgid "color for window with new data (not messages)"
msgstr ""
-#: src/common/weeconfig.c:306
+#: src/common/weeconfig.c:313
msgid "color for window with new data (not messages) (status bar)"
msgstr ""
-#: src/common/weeconfig.c:309
+#: src/common/weeconfig.c:316
msgid "color for \"-MORE-\" text"
msgstr ""
-#: src/common/weeconfig.c:310
+#: src/common/weeconfig.c:317
msgid "color for window with new data (status bar)"
msgstr ""
-#: src/common/weeconfig.c:313 src/common/weeconfig.c:314
+#: src/common/weeconfig.c:320 src/common/weeconfig.c:321
msgid "background for status window"
msgstr ""
-#: src/common/weeconfig.c:319 src/common/weeconfig.c:320
+#: src/common/weeconfig.c:326 src/common/weeconfig.c:327
msgid "color for info bar text"
msgstr ""
-#: src/common/weeconfig.c:323 src/common/weeconfig.c:324
+#: src/common/weeconfig.c:330 src/common/weeconfig.c:331
+msgid "color for infobar delimiters"
+msgstr ""
+
+#: src/common/weeconfig.c:334 src/common/weeconfig.c:335
msgid "color for info bar highlight notification"
msgstr ""
-#: src/common/weeconfig.c:327 src/common/weeconfig.c:328
+#: src/common/weeconfig.c:338 src/common/weeconfig.c:339
msgid "background for info bar window"
msgstr ""
-#: src/common/weeconfig.c:333 src/common/weeconfig.c:334
+#: src/common/weeconfig.c:344 src/common/weeconfig.c:345
msgid "color for input text"
msgstr ""
-#: src/common/weeconfig.c:337 src/common/weeconfig.c:338
+#: src/common/weeconfig.c:348 src/common/weeconfig.c:349
msgid "color for input text (channel name)"
msgstr ""
-#: src/common/weeconfig.c:341 src/common/weeconfig.c:342
+#: src/common/weeconfig.c:352 src/common/weeconfig.c:353
msgid "color for input text (nick name)"
msgstr ""
-#: src/common/weeconfig.c:345 src/common/weeconfig.c:346
+#: src/common/weeconfig.c:356 src/common/weeconfig.c:357
msgid "background for input window"
msgstr ""
-#: src/common/weeconfig.c:351 src/common/weeconfig.c:352
+#: src/common/weeconfig.c:362 src/common/weeconfig.c:363
msgid "color for nicknames"
msgstr ""
-#: src/common/weeconfig.c:355 src/common/weeconfig.c:356
+#: src/common/weeconfig.c:366 src/common/weeconfig.c:367
msgid "color for away nicknames"
msgstr ""
-#: src/common/weeconfig.c:359
+#: src/common/weeconfig.c:370
msgid "color for chan owner symbol"
msgstr ""
-#: src/common/weeconfig.c:360
+#: src/common/weeconfig.c:371
msgid "color for chan owner symbol (specific to unrealircd)"
msgstr ""
-#: src/common/weeconfig.c:363
+#: src/common/weeconfig.c:374
msgid "color for chan admin symbol"
msgstr ""
-#: src/common/weeconfig.c:364
+#: src/common/weeconfig.c:375
msgid "color for chan admin symbol (specific to unrealircd)"
msgstr ""
-#: src/common/weeconfig.c:367 src/common/weeconfig.c:368
+#: src/common/weeconfig.c:378 src/common/weeconfig.c:379
msgid "color for operator symbol"
msgstr ""
-#: src/common/weeconfig.c:371 src/common/weeconfig.c:372
+#: src/common/weeconfig.c:382 src/common/weeconfig.c:383
msgid "color for half-operator symbol"
msgstr ""
-#: src/common/weeconfig.c:375 src/common/weeconfig.c:376
+#: src/common/weeconfig.c:386 src/common/weeconfig.c:387
msgid "color for voice symbol"
msgstr ""
-#: src/common/weeconfig.c:379 src/common/weeconfig.c:380
+#: src/common/weeconfig.c:390 src/common/weeconfig.c:391
msgid "color for '+' when scrolling nicks"
msgstr ""
-#: src/common/weeconfig.c:383 src/common/weeconfig.c:384
+#: src/common/weeconfig.c:394 src/common/weeconfig.c:395
msgid "color for nick separator"
msgstr ""
-#: src/common/weeconfig.c:387 src/common/weeconfig.c:388
+#: src/common/weeconfig.c:398 src/common/weeconfig.c:399
msgid "color for local nick"
msgstr ""
-#: src/common/weeconfig.c:391 src/common/weeconfig.c:392
+#: src/common/weeconfig.c:402 src/common/weeconfig.c:403
msgid "color for other nick in private window"
msgstr ""
-#: src/common/weeconfig.c:395 src/common/weeconfig.c:396
+#: src/common/weeconfig.c:406 src/common/weeconfig.c:407
msgid "background for nicknames"
msgstr ""
-#: src/common/weeconfig.c:401
+#: src/common/weeconfig.c:412
msgid "color for selected DCC"
msgstr ""
-#: src/common/weeconfig.c:402
+#: src/common/weeconfig.c:413
msgid "color for selected DCC (chat window)"
msgstr ""
-#: src/common/weeconfig.c:405 src/common/weeconfig.c:406
+#: src/common/weeconfig.c:416 src/common/weeconfig.c:417
msgid "color for \"waiting\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:409 src/common/weeconfig.c:410
+#: src/common/weeconfig.c:420 src/common/weeconfig.c:421
msgid "color for \"connecting\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:413 src/common/weeconfig.c:414
+#: src/common/weeconfig.c:424 src/common/weeconfig.c:425
msgid "color for \"active\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:417 src/common/weeconfig.c:418
+#: src/common/weeconfig.c:428 src/common/weeconfig.c:429
msgid "color for \"done\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:421 src/common/weeconfig.c:422
+#: src/common/weeconfig.c:432 src/common/weeconfig.c:433
msgid "color for \"failed\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:425 src/common/weeconfig.c:426
+#: src/common/weeconfig.c:436 src/common/weeconfig.c:437
msgid "color for \"aborted\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:439
+#: src/common/weeconfig.c:450
msgid "max lines in history (per window)"
msgstr ""
-#: src/common/weeconfig.c:440
+#: src/common/weeconfig.c:451
msgid ""
"maximum number of lines in history for one server/channel/private window (0 "
"= unlimited)"
msgstr ""
-#: src/common/weeconfig.c:444
+#: src/common/weeconfig.c:455
msgid "max user commands in history"
msgstr ""
-#: src/common/weeconfig.c:445
+#: src/common/weeconfig.c:456
msgid "maximum number of user commands in history (0 = unlimited)"
msgstr ""
-#: src/common/weeconfig.c:462 src/common/weeconfig.c:463
+#: src/common/weeconfig.c:473 src/common/weeconfig.c:474
msgid "automatically log server messages"
msgstr ""
-#: src/common/weeconfig.c:466 src/common/weeconfig.c:467
+#: src/common/weeconfig.c:477 src/common/weeconfig.c:478
msgid "automatically log channel chats"
msgstr ""
-#: src/common/weeconfig.c:470 src/common/weeconfig.c:471
+#: src/common/weeconfig.c:481 src/common/weeconfig.c:482
msgid "automatically log private chats"
msgstr ""
-#: src/common/weeconfig.c:474 src/common/weeconfig.c:475
+#: src/common/weeconfig.c:485 src/common/weeconfig.c:486
msgid "log messages from plugins (scripts)"
msgstr ""
-#: src/common/weeconfig.c:478
+#: src/common/weeconfig.c:489
msgid "path for log files"
msgstr ""
-#: src/common/weeconfig.c:479
+#: src/common/weeconfig.c:490
msgid "path for WeeChat log files"
msgstr ""
-#: src/common/weeconfig.c:482
+#: src/common/weeconfig.c:493
msgid "timestamp for log"
msgstr ""
-#: src/common/weeconfig.c:483
+#: src/common/weeconfig.c:494
msgid "timestamp for log (see man strftime for date/time specifiers)"
msgstr ""
-#: src/common/weeconfig.c:486 src/common/weeconfig.c:487
+#: src/common/weeconfig.c:497 src/common/weeconfig.c:498
msgid "hide password displayed by nickserv"
msgstr ""
-#: src/common/weeconfig.c:506
+#: src/common/weeconfig.c:517
msgid "display message to all channels when away"
msgstr ""
-#: src/common/weeconfig.c:507
+#: src/common/weeconfig.c:518
msgid "display message to all channels when (un)marking as away"
msgstr ""
-#: src/common/weeconfig.c:510 src/common/weeconfig.c:511
+#: src/common/weeconfig.c:521 src/common/weeconfig.c:522
msgid "default message when away"
msgstr ""
-#: src/common/weeconfig.c:514 src/common/weeconfig.c:515
+#: src/common/weeconfig.c:525 src/common/weeconfig.c:526
msgid "default part message (leaving channel)"
msgstr ""
-#: src/common/weeconfig.c:518
+#: src/common/weeconfig.c:529
msgid "default quit message"
msgstr ""
-#: src/common/weeconfig.c:519
+#: src/common/weeconfig.c:530
msgid ""
"default quit message ('%v' will be replaced by WeeChat version in string)"
msgstr ""
-#: src/common/weeconfig.c:522
+#: src/common/weeconfig.c:533
msgid "interval between two checks for away"
msgstr ""
-#: src/common/weeconfig.c:523
+#: src/common/weeconfig.c:534
msgid "interval between two checks for away (in minutes, 0 = never check)"
msgstr ""
-#: src/common/weeconfig.c:526
+#: src/common/weeconfig.c:537
msgid "interval between two checks for lag"
msgstr ""
-#: src/common/weeconfig.c:527
+#: src/common/weeconfig.c:538
msgid "interval between two checks for lag (in seconds)"
msgstr ""
-#: src/common/weeconfig.c:530
+#: src/common/weeconfig.c:541
msgid "minimum lag to show"
msgstr ""
-#: src/common/weeconfig.c:531
+#: src/common/weeconfig.c:542
msgid "minimum lag to show (in seconds)"
msgstr ""
-#: src/common/weeconfig.c:534
+#: src/common/weeconfig.c:545
msgid "disconnect after important lag"
msgstr ""
-#: src/common/weeconfig.c:535
+#: src/common/weeconfig.c:546
msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
-#: src/common/weeconfig.c:538 src/common/weeconfig.c:539
+#: src/common/weeconfig.c:549 src/common/weeconfig.c:550
msgid "create a FIFO pipe for remote control"
msgstr ""
-#: src/common/weeconfig.c:558
+#: src/common/weeconfig.c:569
msgid "automatically accept dcc files"
msgstr ""
-#: src/common/weeconfig.c:559
+#: src/common/weeconfig.c:570
msgid "automatically accept incoming dcc files"
msgstr ""
-#: src/common/weeconfig.c:562
+#: src/common/weeconfig.c:573
msgid "automatically accept dcc chats"
msgstr ""
-#: src/common/weeconfig.c:563
+#: src/common/weeconfig.c:574
msgid "automatically accept dcc chats (use carefully!)"
msgstr ""
-#: src/common/weeconfig.c:566
+#: src/common/weeconfig.c:577
msgid "timeout for dcc request"
msgstr ""
-#: src/common/weeconfig.c:567
+#: src/common/weeconfig.c:578
msgid "timeout for dcc request (in seconds)"
msgstr ""
-#: src/common/weeconfig.c:570
+#: src/common/weeconfig.c:581
msgid "block size for dcc packets"
msgstr ""
-#: src/common/weeconfig.c:571
+#: src/common/weeconfig.c:582
msgid "block size for dcc packets in bytes (default: 65536)"
msgstr ""
-#: src/common/weeconfig.c:574
+#: src/common/weeconfig.c:585
msgid "path for incoming files with dcc"
msgstr ""
-#: src/common/weeconfig.c:575
+#: src/common/weeconfig.c:586
msgid "path for writing incoming files with dcc (default: user home)"
msgstr ""
-#: src/common/weeconfig.c:578
+#: src/common/weeconfig.c:589
msgid "default path for sending files with dcc"
msgstr ""
-#: src/common/weeconfig.c:579
+#: src/common/weeconfig.c:590
msgid ""
"path for reading files when sending thru dcc (when no path is specified)"
msgstr ""
-#: src/common/weeconfig.c:582 src/common/weeconfig.c:583
+#: src/common/weeconfig.c:593 src/common/weeconfig.c:594
msgid "convert spaces to underscores when sending files"
msgstr ""
-#: src/common/weeconfig.c:586
+#: src/common/weeconfig.c:597
msgid "automatically rename dcc files if already exists"
msgstr ""
-#: src/common/weeconfig.c:587
+#: src/common/weeconfig.c:598
msgid "rename incoming files if already exists (add '.1', '.2', ...)"
msgstr ""
-#: src/common/weeconfig.c:590
+#: src/common/weeconfig.c:601
msgid "automatically resume aborted transfers"
msgstr ""
-#: src/common/weeconfig.c:591
+#: src/common/weeconfig.c:602
msgid ""
"automatically resume dcc transfer if connection with remote host is loosed"
msgstr ""
-#: src/common/weeconfig.c:610
+#: src/common/weeconfig.c:621
msgid "use proxy"
msgstr ""
-#: src/common/weeconfig.c:611
+#: src/common/weeconfig.c:622
msgid "use a proxy server to connect to irc server"
msgstr ""
-#: src/common/weeconfig.c:614
+#: src/common/weeconfig.c:625
msgid "proxy type"
msgstr ""
-#: src/common/weeconfig.c:615
+#: src/common/weeconfig.c:626
msgid "proxy type (http (default), socks4, socks5)"
msgstr ""
-#: src/common/weeconfig.c:618
+#: src/common/weeconfig.c:629
msgid "use ipv6 proxy"
msgstr ""
-#: src/common/weeconfig.c:619
+#: src/common/weeconfig.c:630
msgid "connect to proxy in ipv6"
msgstr ""
-#: src/common/weeconfig.c:622
+#: src/common/weeconfig.c:633
msgid "proxy address"
msgstr ""
-#: src/common/weeconfig.c:623
+#: src/common/weeconfig.c:634
msgid "proxy server address (IP or hostname)"
msgstr ""
-#: src/common/weeconfig.c:626
+#: src/common/weeconfig.c:637
msgid "port for proxy"
msgstr ""
-#: src/common/weeconfig.c:627
+#: src/common/weeconfig.c:638
msgid "port for connecting to proxy server"
msgstr ""
-#: src/common/weeconfig.c:630
+#: src/common/weeconfig.c:641
msgid "proxy username"
msgstr ""
-#: src/common/weeconfig.c:631
+#: src/common/weeconfig.c:642
msgid "username for proxy server"
msgstr ""
-#: src/common/weeconfig.c:634
+#: src/common/weeconfig.c:645
msgid "proxy password"
msgstr ""
-#: src/common/weeconfig.c:635
+#: src/common/weeconfig.c:646
msgid "password for proxy server"
msgstr ""
-#: src/common/weeconfig.c:646
+#: src/common/weeconfig.c:657
msgid "server name"
msgstr ""
-#: src/common/weeconfig.c:647
+#: src/common/weeconfig.c:658
msgid "name associated to IRC server (for display only)"
msgstr ""
-#: src/common/weeconfig.c:650
+#: src/common/weeconfig.c:661
msgid "automatically connect to server"
msgstr ""
-#: src/common/weeconfig.c:651
+#: src/common/weeconfig.c:662
msgid "automatically connect to server when WeeChat is starting"
msgstr ""
-#: src/common/weeconfig.c:654
+#: src/common/weeconfig.c:665
msgid "automatically reconnect to server"
msgstr ""
-#: src/common/weeconfig.c:655
+#: src/common/weeconfig.c:666
msgid "automatically reconnect to server when disconnected"
msgstr ""
-#: src/common/weeconfig.c:658
+#: src/common/weeconfig.c:669
msgid "delay before trying again to reconnect"
msgstr ""
-#: src/common/weeconfig.c:659
+#: src/common/weeconfig.c:670
msgid "delay (in seconds) before trying again to reconnect to server"
msgstr ""
-#: src/common/weeconfig.c:662
+#: src/common/weeconfig.c:673
msgid "server address or hostname"
msgstr ""
-#: src/common/weeconfig.c:663
+#: src/common/weeconfig.c:674
msgid "IP address or hostname of IRC server"
msgstr ""
-#: src/common/weeconfig.c:666
+#: src/common/weeconfig.c:677
msgid "port for IRC server"
msgstr ""
-#: src/common/weeconfig.c:667
+#: src/common/weeconfig.c:678
msgid "port for connecting to server"
msgstr ""
-#: src/common/weeconfig.c:670 src/common/weeconfig.c:671
+#: src/common/weeconfig.c:681 src/common/weeconfig.c:682
msgid "use IPv6 protocol for server communication"
msgstr ""
-#: src/common/weeconfig.c:674 src/common/weeconfig.c:675
+#: src/common/weeconfig.c:685 src/common/weeconfig.c:686
msgid "use SSL for server communication"
msgstr ""
-#: src/common/weeconfig.c:678
+#: src/common/weeconfig.c:689
msgid "server password"
msgstr ""
-#: src/common/weeconfig.c:679
+#: src/common/weeconfig.c:690
msgid "password for IRC server"
msgstr ""
-#: src/common/weeconfig.c:682
+#: src/common/weeconfig.c:693
msgid "nickname for server"
msgstr ""
-#: src/common/weeconfig.c:683
+#: src/common/weeconfig.c:694
msgid "nickname to use on IRC server"
msgstr ""
-#: src/common/weeconfig.c:686
+#: src/common/weeconfig.c:697
msgid "alternate nickname for server"
msgstr ""
-#: src/common/weeconfig.c:687
+#: src/common/weeconfig.c:698
msgid "alternate nickname to use on IRC server (if nickname is already used)"
msgstr ""
-#: src/common/weeconfig.c:690
+#: src/common/weeconfig.c:701
msgid "2nd alternate nickname for server"
msgstr ""
-#: src/common/weeconfig.c:691
+#: src/common/weeconfig.c:702
msgid ""
"2nd alternate nickname to use on IRC server (if alternate nickname is "
"already used)"
msgstr ""
-#: src/common/weeconfig.c:694
+#: src/common/weeconfig.c:705
msgid "user name for server"
msgstr ""
-#: src/common/weeconfig.c:695
+#: src/common/weeconfig.c:706
msgid "user name to use on IRC server"
msgstr ""
-#: src/common/weeconfig.c:698
+#: src/common/weeconfig.c:709
msgid "real name for server"
msgstr ""
-#: src/common/weeconfig.c:699
+#: src/common/weeconfig.c:710
msgid "real name to use on IRC server"
msgstr ""
-#: src/common/weeconfig.c:702 src/common/weeconfig.c:703
+#: src/common/weeconfig.c:713 src/common/weeconfig.c:714
msgid "first command to run when connected to server"
msgstr ""
-#: src/common/weeconfig.c:706
+#: src/common/weeconfig.c:717
msgid "delay (in seconds) after command was executed"
msgstr ""
-#: src/common/weeconfig.c:707
+#: src/common/weeconfig.c:718
msgid ""
"delay (in seconds) after command was executed (example: give some time for "
"authentication)"
msgstr ""
-#: src/common/weeconfig.c:710
+#: src/common/weeconfig.c:721
msgid "list of channels to join when connected to server"
msgstr ""
-#: src/common/weeconfig.c:711
+#: src/common/weeconfig.c:722
msgid "comma separated list of channels to join when connected to server"
msgstr ""
-#: src/common/weeconfig.c:714 src/common/weeconfig.c:715
+#: src/common/weeconfig.c:725 src/common/weeconfig.c:726
msgid "automatically rejoin channels when kicked"
msgstr ""
-#: src/common/weeconfig.c:718
+#: src/common/weeconfig.c:729
msgid "notify levels for channels of this server"
msgstr ""
-#: src/common/weeconfig.c:719
+#: src/common/weeconfig.c:730
msgid ""
"comma separated list of notify levels for channels of this server (format: "
"#channel:1,..)"
msgstr ""
-#: src/common/weeconfig.c:1177
+#: src/common/weeconfig.c:1190
#, c-format
msgid "%s %s, line %d: new server, but previous was incomplete\n"
msgstr ""
-#: src/common/weeconfig.c:1186
+#: src/common/weeconfig.c:1199
#, c-format
msgid "%s %s, line %d: server '%s' already exists\n"
msgstr ""
-#: src/common/weeconfig.c:1201
+#: src/common/weeconfig.c:1214
#, c-format
msgid "%s %s, line %d: unable to create server\n"
msgstr ""
-#: src/common/weeconfig.c:1240
+#: src/common/weeconfig.c:1254
#, c-format
msgid "%s unable to assign default int with string (\"%s\")\n"
msgstr ""
-#: src/common/weeconfig.c:1251
+#: src/common/weeconfig.c:1265
#, c-format
msgid "%s unable to assign default color (\"%s\")\n"
msgstr ""
-#: src/common/weeconfig.c:1290
+#: src/common/weeconfig.c:1304
#, c-format
msgid "%s config file \"%s\" not found.\n"
msgstr ""
-#: src/common/weeconfig.c:1322
+#: src/common/weeconfig.c:1336
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"]\"\n"
msgstr ""
-#: src/common/weeconfig.c:1339
+#: src/common/weeconfig.c:1353
#, c-format
msgid "%s %s, line %d: unknown section identifier (\"%s\")\n"
msgstr ""
-#: src/common/weeconfig.c:1357
+#: src/common/weeconfig.c:1371
#, c-format
msgid "%s %s, line %d: invalid section for option, line is ignored\n"
msgstr ""
-#: src/common/weeconfig.c:1365
+#: src/common/weeconfig.c:1379
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"=\"\n"
msgstr ""
-#: src/common/weeconfig.c:1399
+#: src/common/weeconfig.c:1427
#, c-format
msgid "%s %s, line %d: invalid option \"%s\"\n"
msgstr ""
-#: src/common/weeconfig.c:1410
+#: src/common/weeconfig.c:1438
#, c-format
msgid ""
"%s %s, line %d: invalid value foroption '%s'\n"
"Expected: boolean value: 'off' or 'on'\n"
msgstr ""
-#: src/common/weeconfig.c:1419
+#: src/common/weeconfig.c:1447
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
"Expected: integer between %d and %d\n"
msgstr ""
-#: src/common/weeconfig.c:1430
+#: src/common/weeconfig.c:1458
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
"Expected: one of these strings: "
msgstr ""
-#: src/common/weeconfig.c:1446
+#: src/common/weeconfig.c:1474
#, c-format
msgid "%s %s, line %d: invalid color name for option '%s'\n"
msgstr ""
-#: src/common/weeconfig.c:1506 src/common/weeconfig.c:1677
+#: src/common/weeconfig.c:1536 src/common/weeconfig.c:1731
#, c-format
msgid "%s cannot create file \"%s\"\n"
msgstr ""
-#: src/common/weeconfig.c:1512
+#: src/common/weeconfig.c:1542
#, c-format
msgid "%s: creating default config file...\n"
msgstr ""
-#: src/common/weeconfig.c:1513
+#: src/common/weeconfig.c:1543
msgid "Creating default config file\n"
msgstr ""
-#: src/common/weeconfig.c:1516 src/common/weeconfig.c:1686
+#: src/common/weeconfig.c:1546 src/common/weeconfig.c:1740
#, c-format
msgid ""
"#\n"
"# %s configuration file, created by %s v%s on %s#\n"
msgstr ""
-#: src/common/weeconfig.c:1683
+#: src/common/weeconfig.c:1737
msgid "Saving config to disk\n"
msgstr ""
diff --git a/src/common/command.c b/src/common/command.c
index a8b97a134..977568fee 100644
--- a/src/common/command.c
+++ b/src/common/command.c
@@ -47,11 +47,11 @@ t_weechat_command weechat_commands[] =
{ "buffer", N_("manage buffers"),
N_("[action | number]"),
N_("action: action to do:\n"
- " move: move buffer in the list (may be relative, for example -1)\n"
- " close: close buffer (for channel: same as /part without part message)\n"
- " list: list opened buffers (no parameter implies this list)\n"
- " notify: set notify level for buffer (0=never, 1=highlight, 2=1+msg, 3=2+join/part)\n"
- "number: jump to buffer by number"),
+ " move: move buffer in the list (may be relative, for example -1)\n"
+ " close: close buffer (for channel: same as /part without part message)\n"
+ " list: list opened buffers (no parameter implies this list)\n"
+ " notify: set notify level for buffer (0=never, 1=highlight, 2=1+msg, 3=2+join/part)\n"
+ "number: jump to buffer by number"),
0, MAX_ARGS, weechat_cmd_buffer, NULL },
{ "clear", N_("clear window(s)"),
N_("[-all]"),
@@ -72,33 +72,40 @@ t_weechat_command weechat_commands[] =
{ "help", N_("display help about commands"),
N_("[command]"), N_("command: name of a WeeChat or IRC command"),
0, 1, weechat_cmd_help, NULL },
+ { "key", N_("bind/unbind keys"),
+ N_("[key function/command] [unbind key] [functions] [reset -yes]"),
+ N_("key: bind this key to an internal function or a command (beginning by \"/\")\n"
+ "unbind: unbind a key (if \"all\", default bindings are restored)\n"
+ "functions: list internal functions for key bindings\n"
+ "reset: restore bindings to the default values and delete ALL personal binding (use carefully!)"),
+ 0, MAX_ARGS, NULL, weechat_cmd_key },
{ "perl", N_("list/load/unload Perl scripts"),
N_("[load filename] | [autoload] | [reload] | [unload]"),
N_("filename: Perl script (file) to load\n"
- "Without argument, /perl command lists all loaded Perl scripts."),
+ "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] | [reload] | [unload]"),
N_("filename: Python script (file) to load\n"
- "Without argument, /python command lists all loaded Python scripts."),
+ "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] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 "
- "[nick2 [nick3]]] [-username username] [-realname realname] "
- "[-command command] [-autojoin channel[,channel]] ] | "
- "[del servername]"),
+ "[servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 "
+ "[nick2 [nick3]]] [-username username] [-realname realname] "
+ "[-command command] [-autojoin channel[,channel]] ] | "
+ "[del servername]"),
N_("servername: server name, for internal & display use\n"
- "hostname: name or IP address of server\n"
- "port: port for server (integer)\n"
- "ipv6: use IPv6 protocol\n"
- "ssl: use SSL protocol\n"
- "password: password for server\n"
- "nick1: first nick for server\n"
- "nick2: alternate nick for server\n"
- "nick3: second alternate nick for server\n"
- "username: user name\n"
- "realname: real name of user"),
+ "hostname: name or IP address of server\n"
+ "port: port for server (integer)\n"
+ "ipv6: use IPv6 protocol\n"
+ "ssl: use SSL protocol\n"
+ "password: password for server\n"
+ "nick1: first nick for server\n"
+ "nick2: alternate nick for server\n"
+ "nick3: second alternate nick for server\n"
+ "username: user name\n"
+ "realname: real name of user"),
0, MAX_ARGS, weechat_cmd_server, NULL },
{ "save", N_("save config to disk"),
N_("[file]"), N_("file: filename for writing config"),
@@ -111,11 +118,10 @@ t_weechat_command weechat_commands[] =
1, 1, NULL, weechat_cmd_unalias },
{ "window", N_("manage windows"),
N_("[list | splith | splitv | [merge [down | up | left | right | all]]]"),
- N_(
- "list: list opened windows (no parameter implies this list)\n"
- "splith: split current window horizontally\n"
- "splitv: split current window vertically\n"
- "merge: merge window with another"),
+ N_("list: list opened windows (no parameter implies this list)\n"
+ "splith: split current window horizontally\n"
+ "splitv: split current window vertically\n"
+ "merge: merge window with another"),
0, 2, weechat_cmd_window, NULL },
{ NULL, NULL, NULL, NULL, 0, 0, NULL, NULL }
};
@@ -877,6 +883,7 @@ weechat_cmd_buffer (int argc, char **argv)
t_irc_channel *ptr_channel;
long number;
char *error;
+ int target_buffer;
if ((argc == 0) || ((argc == 1) && (strcasecmp (argv[0], "list") == 0)))
{
@@ -1049,26 +1056,41 @@ weechat_cmd_buffer (int argc, char **argv)
{
/* jump to buffer by number */
- error = NULL;
- number = strtol (argv[0], &error, 10);
- if ((error) && (error[0] == '\0'))
+ if (argv[0][0] == '-')
{
- if (!gui_switch_to_buffer_by_number (gui_current_window, (int) number))
+ /* relative jump '-' */
+ error = NULL;
+ number = strtol (argv[0] + 1, &error, 10);
+ if ((error) && (error[0] == '\0'))
{
- irc_display_prefix (NULL, PREFIX_ERROR);
- gui_printf (NULL,
- _("%s buffer \"%s\" not found for \"%s\" command\n"),
- WEECHAT_ERROR, argv[0], "buffer");
- return -1;
+ target_buffer = gui_current_window->buffer->number - (int) number;
+ if (target_buffer < 1)
+ target_buffer = (last_gui_buffer) ? last_gui_buffer->number + target_buffer : 1;
+ gui_switch_to_buffer_by_number (gui_current_window,
+ target_buffer);
+ }
+ }
+ else if (argv[0][0] == '+')
+ {
+ /* relative jump '+' */
+ error = NULL;
+ number = strtol (argv[0] + 1, &error, 10);
+ if ((error) && (error[0] == '\0'))
+ {
+ target_buffer = gui_current_window->buffer->number + (int) number;
+ if (last_gui_buffer && target_buffer > last_gui_buffer->number)
+ target_buffer -= last_gui_buffer->number;
+ gui_switch_to_buffer_by_number (gui_current_window,
+ target_buffer);
}
}
else
{
- /* invalid number */
- irc_display_prefix (NULL, PREFIX_ERROR);
- gui_printf (NULL, _("%s incorrect buffer number\n"),
- WEECHAT_ERROR);
- return -1;
+ /* absolute jump by number */
+ error = NULL;
+ number = strtol (argv[0], &error, 10);
+ if ((error) && (error[0] == '\0'))
+ gui_switch_to_buffer_by_number (gui_current_window, (int) number);
}
}
@@ -1323,6 +1345,138 @@ weechat_cmd_help (int argc, char **argv)
}
/*
+ * weechat_cmd_key_display: display a key binding
+ */
+
+void
+weechat_cmd_key_display (t_gui_key *key, int new_key)
+{
+ char *expanded_name;
+
+ expanded_name = gui_key_get_expanded_name (key->key);
+ if (new_key)
+ {
+ gui_printf (NULL, _("New key binding:\n"));
+ gui_printf (NULL, " %s", (expanded_name) ? expanded_name : key->key);
+ }
+ else
+ gui_printf (NULL, " %20s", (expanded_name) ? expanded_name : key->key);
+ gui_printf_color (NULL, COLOR_WIN_CHAT_DARK, " => ");
+ gui_printf (NULL, "%s\n",
+ (key->function) ?
+ gui_key_function_search_by_ptr (key->function) : key->command);
+ if (expanded_name)
+ free (expanded_name);
+}
+
+/*
+ * weechat_cmd_key: bind/unbind keys
+ */
+
+int
+weechat_cmd_key (char *arguments)
+{
+ char *pos;
+ int i;
+ t_gui_key *ptr_key;
+
+ if (arguments)
+ {
+ while (arguments[0] == ' ')
+ arguments++;
+ }
+
+ if (!arguments || (arguments[0] == '\0'))
+ {
+ gui_printf (NULL, "\n");
+ gui_printf (NULL, _("Key bindings:\n"));
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ weechat_cmd_key_display (ptr_key, 0);
+ }
+ }
+ else if (strncasecmp (arguments, "unbind ", 7) == 0)
+ {
+ arguments += 7;
+ while (arguments[0] == ' ')
+ arguments++;
+ if (gui_key_unbind (arguments))
+ gui_printf (NULL, _("Key \"%s\" unbinded\n"), arguments);
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s unable to unbind key \"%s\"\n"),
+ WEECHAT_ERROR, arguments);
+ return -1;
+ }
+ }
+ else if (strcasecmp (arguments, "functions") == 0)
+ {
+ gui_printf (NULL, "\n");
+ gui_printf (NULL, _("Internal key functions:\n"));
+ i = 0;
+ while (gui_key_functions[i].function_name)
+ {
+ gui_printf (NULL, " %s\n",
+ gui_key_functions[i].function_name);
+ i++;
+ }
+ }
+ else if (strncasecmp (arguments, "reset", 5) == 0)
+ {
+ arguments += 5;
+ while (arguments[0] == ' ')
+ arguments++;
+ if (strcmp (arguments, "-yes") == 0)
+ {
+ gui_key_free_all ();
+ gui_key_init ();
+ gui_printf (NULL, _("Default key bindings restored\n"));
+ }
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s \"-yes\" argument is required for keys reset (securuty reason)\n"),
+ WEECHAT_ERROR);
+ return -1;
+ }
+ }
+ else
+ {
+ while (arguments[0] == ' ')
+ arguments++;
+ pos = strchr (arguments, ' ');
+ if (!pos)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s wrong argument count for \"%s\" command\n"),
+ WEECHAT_ERROR, "key");
+ return -1;
+ }
+ pos[0] = '\0';
+ pos++;
+ while (pos[0] == ' ')
+ pos++;
+ ptr_key = gui_key_bind (arguments, pos);
+ if (ptr_key)
+ weechat_cmd_key_display (ptr_key, 1);
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s unable to bind key \"%s\"\n"),
+ WEECHAT_ERROR, arguments);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+/*
* weechat_cmd_perl: list/load/unload Perl scripts
*/
@@ -1892,11 +2046,11 @@ weechat_cmd_server (int argc, char **argv)
}
/*
- * weechat_set_cmd_display_option: display config option
+ * weechat_cmd_set_display_option: display config option
*/
void
-weechat_set_cmd_display_option (t_config_option *option, char *prefix, void *value)
+weechat_cmd_set_display_option (t_config_option *option, char *prefix, void *value)
{
char *color_name, *pos_nickserv, *pos_pwd, *value2;
@@ -2039,7 +2193,7 @@ weechat_cmd_set (char *arguments)
{
ptr_option_value = config_get_server_option_ptr (ptr_server,
weechat_options[CONFIG_SECTION_SERVER][i].option_name);
- weechat_set_cmd_display_option (&weechat_options[CONFIG_SECTION_SERVER][i],
+ weechat_cmd_set_display_option (&weechat_options[CONFIG_SECTION_SERVER][i],
ptr_server->name,
ptr_option_value);
}
@@ -2080,7 +2234,7 @@ weechat_cmd_set (char *arguments)
gui_printf_color (NULL, COLOR_WIN_CHAT_CHANNEL,
"%s", config_get_section (ptr_option));
gui_printf_color (NULL, COLOR_WIN_CHAT_DARK, "]\n");
- weechat_set_cmd_display_option (ptr_option, NULL, NULL);
+ weechat_cmd_set_display_option (ptr_option, NULL, NULL);
}
else
{
@@ -2104,7 +2258,8 @@ weechat_cmd_set (char *arguments)
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
section_displayed = 0;
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
@@ -2122,7 +2277,7 @@ weechat_cmd_set (char *arguments)
gui_printf_color (NULL, COLOR_WIN_CHAT_DARK, "]\n");
section_displayed = 1;
}
- weechat_set_cmd_display_option (&weechat_options[i][j], NULL, NULL);
+ weechat_cmd_set_display_option (&weechat_options[i][j], NULL, NULL);
number_found++;
}
}
@@ -2155,7 +2310,7 @@ weechat_cmd_set (char *arguments)
weechat_options[CONFIG_SECTION_SERVER][i].option_name);
if (ptr_option_value)
{
- weechat_set_cmd_display_option (&weechat_options[CONFIG_SECTION_SERVER][i],
+ weechat_cmd_set_display_option (&weechat_options[CONFIG_SECTION_SERVER][i],
ptr_server->name,
ptr_option_value);
number_found++;
@@ -2288,6 +2443,10 @@ weechat_cmd_window (int argc, char **argv)
else
gui_window_merge_auto (gui_current_window);
}
+ else if (strcasecmp (argv[0], "-1") == 0)
+ gui_switch_to_previous_window ();
+ else if (strcasecmp (argv[0], "+1") == 0)
+ gui_switch_to_next_window ();
else
{
irc_display_prefix (NULL, PREFIX_ERROR);
diff --git a/src/common/command.h b/src/common/command.h
index aac5701fb..f839f4ab2 100644
--- a/src/common/command.h
+++ b/src/common/command.h
@@ -69,6 +69,7 @@ extern int weechat_cmd_connect (int, char **);
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_key (char *);
extern int weechat_cmd_perl (int, char **);
extern int weechat_cmd_python (int, char **);
extern int weechat_cmd_save (int, char **);
diff --git a/src/common/completion.c b/src/common/completion.c
index 477f42ffc..ef3838b51 100644
--- a/src/common/completion.c
+++ b/src/common/completion.c
@@ -201,6 +201,23 @@ completion_build_list (t_completion *completion, void *channel)
}
return;
}
+ if ((strcasecmp (completion->base_command, "key") == 0)
+ && (completion->base_command_arg == 1))
+ {
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "bind");
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "unbind");
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "functions");
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "reset");
+ return;
+ }
if (((strcasecmp (completion->base_command, "perl") == 0)
|| (strcasecmp (completion->base_command, "python") == 0))
&& (completion->base_command_arg == 1))
@@ -225,7 +242,8 @@ completion_build_list (t_completion *completion, void *channel)
{
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
diff --git a/src/common/weechat.c b/src/common/weechat.c
index 1a8db3385..0eb311d25 100644
--- a/src/common/weechat.c
+++ b/src/common/weechat.c
@@ -314,6 +314,47 @@ void wee_display_commands (int weechat_cmd, int irc_cmd)
}
/*
+ * wee_display_key_functions: display WeeChat key functions
+ */
+
+void wee_display_key_functions ()
+{
+ int i;
+
+ printf (_("Internal key functions:\n"));
+ printf ("\n");
+ i = 0;
+ while (gui_key_functions[i].function_name)
+ {
+ printf (" %s\n",
+ gui_key_functions[i].function_name);
+ i++;
+ }
+}
+
+/*
+ * wee_display_keys: display WeeChat default keys
+ */
+
+void wee_display_keys ()
+{
+ t_gui_key *ptr_key;
+ char *expanded_name;
+
+ printf (_("%s default keys:\n"), PACKAGE_NAME);
+ printf ("\n");
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ expanded_name = gui_key_get_expanded_name (ptr_key->key);
+ printf (" %20s => %s\n",
+ (expanded_name) ? expanded_name : ptr_key->key,
+ (ptr_key->function) ? gui_key_function_search_by_ptr (ptr_key->function) : ptr_key->command);
+ if (expanded_name)
+ free (expanded_name);
+ }
+}
+
+/*
* wee_parse_args: parse command line args
*/
@@ -333,6 +374,12 @@ wee_parse_args (int argc, char *argv[])
wee_display_config_options ();
wee_shutdown (EXIT_SUCCESS);
}
+ else if ((strcmp (argv[i], "-f") == 0)
+ || (strcmp (argv[i], "--key-functions") == 0))
+ {
+ wee_display_key_functions ();
+ wee_shutdown (EXIT_SUCCESS);
+ }
else if ((strcmp (argv[i], "-h") == 0)
|| (strcmp (argv[i], "--help") == 0))
{
@@ -340,12 +387,18 @@ wee_parse_args (int argc, char *argv[])
printf ("%s", WEE_USAGE2);
wee_shutdown (EXIT_SUCCESS);
}
- if ((strcmp (argv[i], "-i") == 0)
+ else if ((strcmp (argv[i], "-i") == 0)
|| (strcmp (argv[i], "--irc-commands") == 0))
{
wee_display_commands (0, 1);
wee_shutdown (EXIT_SUCCESS);
}
+ else if ((strcmp (argv[i], "-k") == 0)
+ || (strcmp (argv[i], "--keys") == 0))
+ {
+ wee_display_keys ();
+ wee_shutdown (EXIT_SUCCESS);
+ }
else if ((strcmp (argv[i], "-l") == 0)
|| (strcmp (argv[i], "--license") == 0))
{
@@ -358,7 +411,7 @@ wee_parse_args (int argc, char *argv[])
printf (PACKAGE_VERSION "\n");
wee_shutdown (EXIT_SUCCESS);
}
- if ((strcmp (argv[i], "-w") == 0)
+ else if ((strcmp (argv[i], "-w") == 0)
|| (strcmp (argv[i], "--weechat-commands") == 0))
{
wee_display_commands (1, 0);
@@ -771,6 +824,7 @@ main (int argc, char *argv[])
signal (SIGSEGV, my_sigsegv); /* crash dump when SIGSEGV is received */
gui_pre_init (&argc, &argv); /* pre-initiliaze interface */
wee_init_vars (); /* initialize some variables */
+ gui_key_init (); /* init keyboard (default key bindings) */
wee_parse_args (argc, argv); /* parse command line args */
wee_create_home_dirs (); /* create WeeChat directories */
wee_init_log (); /* init log file */
diff --git a/src/common/weechat.h b/src/common/weechat.h
index ead962144..569ba7728 100644
--- a/src/common/weechat.h
+++ b/src/common/weechat.h
@@ -90,8 +90,10 @@
#define WEE_USAGE2 \
" -c, --config display config file options\n" \
- " -h, --help this help screen\n" \
+ " -f, --key-functions display WeeChat internal functions for keys\n" \
+ " -h, --help this help\n" \
" -i, --irc-commands display IRC commands\n" \
+ " -k, --keys display WeeChat default keys\n" \
" -l, --license display WeeChat license\n" \
" -v, --version display WeeChat version\n" \
" -w, --weechat-commands display WeeChat commands\n\n"
diff --git a/src/common/weeconfig.c b/src/common/weeconfig.c
index d35afe62a..dbbe51c8f 100644
--- a/src/common/weeconfig.c
+++ b/src/common/weeconfig.c
@@ -53,6 +53,7 @@ t_config_section config_sections[CONFIG_NUMBER_SECTIONS] =
{ CONFIG_SECTION_IRC, "irc" },
{ CONFIG_SECTION_DCC, "dcc" },
{ CONFIG_SECTION_PROXY, "proxy" },
+ { CONFIG_SECTION_KEYS, "keys" },
{ CONFIG_SECTION_ALIAS, "alias" },
{ CONFIG_SECTION_SERVER, "server" }
};
@@ -82,6 +83,7 @@ char *cfg_look_no_nickname;
char *cfg_look_completor;
int cfg_look_infobar;
char *cfg_look_infobar_timestamp;
+int cfg_look_infobar_seconds;
int cfg_look_infobar_delay_highlight;
t_config_option weechat_options_look[] =
@@ -170,7 +172,11 @@ t_config_option weechat_options_look[] =
{ "look_infobar_timestamp", N_("timestamp for time in infobar"),
N_("timestamp for time in infobar"),
OPTION_TYPE_STRING, 0, 0, 0,
- "%B, %A %d %Y - %H:%M", NULL, NULL, &cfg_look_infobar_timestamp, config_change_buffer_content },
+ "%B, %A %d %Y", NULL, NULL, &cfg_look_infobar_timestamp, config_change_buffer_content },
+ { "look_infobar_seconds", N_("display seconds in infobar time"),
+ N_("display seconds in infobar time"),
+ OPTION_TYPE_BOOLEAN, BOOL_FALSE, BOOL_TRUE, BOOL_TRUE,
+ NULL, NULL, &cfg_look_infobar_seconds, NULL, config_change_buffer_content },
{ "look_infobar_delay_highlight", N_("delay (in seconds) for highlight messages in infobar"),
N_("delay (in seconds) for highlight messages in infobar "
"(0 = disable highlight notifications in infobar)"),
@@ -202,6 +208,7 @@ int cfg_col_status_data_other;
int cfg_col_status_more;
int cfg_col_status_bg;
int cfg_col_infobar;
+int cfg_col_infobar_delimiters;
int cfg_col_infobar_highlight;
int cfg_col_infobar_bg;
int cfg_col_input;
@@ -320,6 +327,10 @@ t_config_option weechat_options_colors[] =
N_("color for info bar text"),
OPTION_TYPE_COLOR, 0, 0, 0,
"black", NULL, &cfg_col_infobar, NULL, &config_change_color },
+ { "col_infobar_delimiters", N_("color for infobar delimiters"),
+ N_("color for infobar delimiters"),
+ OPTION_TYPE_COLOR, 0, 0, 0,
+ "blue", NULL, &cfg_col_infobar_delimiters, NULL, &config_change_color },
{ "col_infobar_highlight", N_("color for info bar highlight notification"),
N_("color for info bar highlight notification"),
OPTION_TYPE_COLOR, 0, 0, 0,
@@ -727,7 +738,7 @@ t_config_option weechat_options_server[] =
t_config_option *weechat_options[CONFIG_NUMBER_SECTIONS] =
{ weechat_options_look, weechat_options_colors, weechat_options_history,
weechat_options_log, weechat_options_irc, weechat_options_dcc,
- weechat_options_proxy, NULL, weechat_options_server
+ weechat_options_proxy, NULL, NULL, weechat_options_server
};
@@ -763,7 +774,8 @@ config_get_section (t_config_option *ptr_option)
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
@@ -1057,7 +1069,8 @@ config_option_search (char *option_name)
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
@@ -1220,7 +1233,8 @@ config_default_values ()
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
@@ -1375,8 +1389,22 @@ config_read ()
if (pos2 != NULL)
pos2[0] = '\0';
- if (section == CONFIG_SECTION_ALIAS)
+ if (section == CONFIG_SECTION_KEYS)
{
+ if (pos[0])
+ {
+ /* bind key (overwrite any binding with same key) */
+ gui_key_bind (line, pos);
+ }
+ else
+ {
+ /* unbin key if no value given */
+ gui_key_unbind (line);
+ }
+ }
+ else if (section == CONFIG_SECTION_ALIAS)
+ {
+ /* create new alias */
if (alias_new (line, pos))
weelist_add (&index_commands, &last_index_command, line);
}
@@ -1493,6 +1521,8 @@ config_create_default ()
time_t current_time;
struct passwd *my_passwd;
char *realname, *pos;
+ t_gui_key *ptr_key;
+ char *expanded_name, *function_name;
filename_length = strlen (weechat_home) + 64;
filename =
@@ -1520,7 +1550,8 @@ config_create_default ()
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
fprintf (file, "\n[%s]\n", config_sections[i].section_name);
for (j = 0; weechat_options[i][j].option_name; j++)
@@ -1550,6 +1581,27 @@ config_create_default ()
}
}
+ /* default key bindings */
+ fprintf (file, "\n[keys]\n");
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ expanded_name = gui_key_get_expanded_name (ptr_key->key);
+ if (ptr_key->function)
+ {
+ function_name = gui_key_function_search_by_ptr (ptr_key->function);
+ if (function_name)
+ fprintf (file, "%s=%s\n",
+ (expanded_name) ? expanded_name : ptr_key->key,
+ function_name);
+ }
+ else
+ fprintf (file, "%s=%s\n",
+ (expanded_name) ? expanded_name : ptr_key->key,
+ ptr_key->command);
+ if (expanded_name)
+ free (expanded_name);
+ }
+
/* default aliases */
/* TODO: remove comments when missing commands will be ok */
fprintf (file, "\n[alias]\n");
@@ -1560,20 +1612,20 @@ config_create_default ()
fprintf (file, "C=clear\n");
fprintf (file, "CL=clear\n");
fprintf (file, "CLOSE=buffer close\n");
- fprintf (file, "# CHAT=dcc chat\n");
+ fprintf (file, "CHAT=dcc chat\n");
fprintf (file, "# GET=dcc get\n");
fprintf (file, "# IG=ignore\n");
fprintf (file, "J=join\n");
fprintf (file, "K=kick\n");
- fprintf (file, "# KB=kickban\n");
+ fprintf (file, "KB=kickban\n");
fprintf (file, "# KN=knockout\n");
fprintf (file, "LEAVE=part\n");
fprintf (file, "M=msg\n");
- fprintf (file, "# MUB=unban *\n");
+ fprintf (file, "MUB=unban *\n");
fprintf (file, "N=names\n");
fprintf (file, "Q=query\n");
fprintf (file, "T=topic\n");
- fprintf (file, "# UB=unban\n");
+ fprintf (file, "UB=unban\n");
fprintf (file, "# UNIG=unignore\n");
fprintf (file, "W=who\n");
fprintf (file, "WC=part\n");
@@ -1658,6 +1710,8 @@ config_write (char *config_name)
time_t current_time;
t_irc_server *ptr_server;
t_weechat_alias *ptr_alias;
+ t_gui_key *ptr_key;
+ char *expanded_name, *function_name;
if (config_name)
filename = strdup (config_name);
@@ -1690,7 +1744,8 @@ config_write (char *config_name)
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
fprintf (file, "\n[%s]\n", config_sections[i].section_name);
for (j = 0; weechat_options[i][j].option_name; j++)
@@ -1737,6 +1792,27 @@ config_write (char *config_name)
}
}
+ /* keys section */
+ fprintf (file, "\n[keys]\n");
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ expanded_name = gui_key_get_expanded_name (ptr_key->key);
+ if (ptr_key->function)
+ {
+ function_name = gui_key_function_search_by_ptr (ptr_key->function);
+ if (function_name)
+ fprintf (file, "%s=%s\n",
+ (expanded_name) ? expanded_name : ptr_key->key,
+ function_name);
+ }
+ else
+ fprintf (file, "%s=%s\n",
+ (expanded_name) ? expanded_name : ptr_key->key,
+ ptr_key->command);
+ if (expanded_name)
+ free (expanded_name);
+ }
+
/* alias section */
fprintf (file, "\n[alias]\n");
for (ptr_alias = weechat_alias; ptr_alias;
diff --git a/src/common/weeconfig.h b/src/common/weeconfig.h
index 9d25aea60..5a8c98684 100644
--- a/src/common/weeconfig.h
+++ b/src/common/weeconfig.h
@@ -33,9 +33,10 @@
#define CONFIG_SECTION_IRC 4
#define CONFIG_SECTION_DCC 5
#define CONFIG_SECTION_PROXY 6
-#define CONFIG_SECTION_ALIAS 7
-#define CONFIG_SECTION_SERVER 8
-#define CONFIG_NUMBER_SECTIONS 9
+#define CONFIG_SECTION_KEYS 7
+#define CONFIG_SECTION_ALIAS 8
+#define CONFIG_SECTION_SERVER 9
+#define CONFIG_NUMBER_SECTIONS 10
#define OPTION_TYPE_BOOLEAN 1 /* values: on/off */
#define OPTION_TYPE_INT 2 /* values: from min to max */
@@ -97,6 +98,7 @@ extern char *cfg_look_no_nickname;
extern char *cfg_look_completor;
extern int cfg_look_infobar;
extern char *cfg_look_infobar_timestamp;
+extern int cfg_look_infobar_seconds;
extern int cfg_look_infobar_delay_highlight;
extern int cfg_col_title;
@@ -120,6 +122,7 @@ extern int cfg_col_status_data_other;
extern int cfg_col_status_more;
extern int cfg_col_status_bg;
extern int cfg_col_infobar;
+extern int cfg_col_infobar_delimiters;
extern int cfg_col_infobar_highlight;
extern int cfg_col_infobar_bg;
extern int cfg_col_input;
diff --git a/src/gui/Makefile.am b/src/gui/Makefile.am
index 383493cc4..76367847a 100644
--- a/src/gui/Makefile.am
+++ b/src/gui/Makefile.am
@@ -20,6 +20,7 @@ INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\"
noinst_LIBRARIES = lib_weechat_gui_common.a
lib_weechat_gui_common_a_SOURCES = gui-common.c \
+ gui-keyboard.c \
gui.h
if GUI_NCURSES
diff --git a/src/gui/curses/Makefile.am b/src/gui/curses/Makefile.am
index 01eaaa35d..4bef0cdc9 100644
--- a/src/gui/curses/Makefile.am
+++ b/src/gui/curses/Makefile.am
@@ -19,7 +19,7 @@ INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\"
bin_PROGRAMS = weechat-curses
-weechat_curses_LDADD = ../lib_weechat_gui_common.a \
+weechat_curses_LDADD = ../gui-common.o ../gui-keyboard.o \
../../common/lib_weechat_main.a \
../../irc/lib_weechat_irc.a \
$(NCURSES_LIBS) \
@@ -27,4 +27,4 @@ weechat_curses_LDADD = ../lib_weechat_gui_common.a \
$(GNUTLS_LIBS)
weechat_curses_SOURCES = gui-display.c \
- gui-input.c
+ gui-input.c
diff --git a/src/gui/curses/gui-display.c b/src/gui/curses/gui-display.c
index a9873c601..6bfef6c0c 100644
--- a/src/gui/curses/gui-display.c
+++ b/src/gui/curses/gui-display.c
@@ -318,7 +318,7 @@ gui_draw_window_separator (t_gui_window *window)
window->win_x - 1);
gui_window_set_color (window->win_separator, COLOR_WIN_TITLE);
wborder (window->win_separator, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
- wrefresh (window->win_separator);
+ wnoutrefresh (window->win_separator);
refresh ();
}
}
@@ -341,15 +341,9 @@ gui_draw_buffer_title (t_gui_buffer *buffer, int erase)
if (ptr_win->buffer == buffer)
{
if (erase)
- gui_curses_window_clear (ptr_win->win_title);
+ gui_curses_window_clear (ptr_win->win_title);
- if (has_colors ())
- {
- gui_window_set_color (ptr_win->win_title, COLOR_WIN_TITLE);
- wborder (ptr_win->win_title, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
- wrefresh (ptr_win->win_title);
- refresh ();
- }
+ gui_window_set_color (ptr_win->win_title, COLOR_WIN_TITLE);
snprintf (format, 32, "%%-%ds", ptr_win->win_width);
if (CHANNEL(buffer))
{
@@ -362,6 +356,8 @@ gui_draw_buffer_title (t_gui_buffer *buffer, int erase)
mvwprintw (ptr_win->win_title, 0, 0, format, buf);
free (buf);
}
+ else
+ mvwprintw (ptr_win->win_title, 0, 0, format, " ");
}
else
{
@@ -372,8 +368,10 @@ gui_draw_buffer_title (t_gui_buffer *buffer, int erase)
PACKAGE_STRING " " WEECHAT_COPYRIGHT_DATE " - "
WEECHAT_WEBSITE);
}
+ else
+ mvwprintw (ptr_win->win_title, 0, 0, format, " ");
}
- wrefresh (ptr_win->win_title);
+ wnoutrefresh (ptr_win->win_title);
refresh ();
}
}
@@ -860,7 +858,7 @@ gui_draw_buffer_chat (t_gui_buffer *buffer, int erase)
ptr_win->win_chat_cursor_y = ptr_win->win_chat_height - 1;
}
}
- wrefresh (ptr_win->win_chat);
+ wnoutrefresh (ptr_win->win_chat);
refresh ();
}
}
@@ -1058,7 +1056,7 @@ gui_draw_buffer_nick (t_gui_buffer *buffer, int erase)
}
}
}
- wrefresh (ptr_win->win_nick);
+ wnoutrefresh (ptr_win->win_nick);
refresh ();
}
}
@@ -1087,12 +1085,8 @@ gui_draw_buffer_status (t_gui_buffer *buffer, int erase)
if (erase)
gui_curses_window_clear (ptr_win->win_status);
- if (has_colors ())
- {
- gui_window_set_color (ptr_win->win_status, COLOR_WIN_STATUS);
- wborder (ptr_win->win_status, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
- wrefresh (ptr_win->win_status);
- }
+ gui_window_set_color (ptr_win->win_status, COLOR_WIN_STATUS);
+ wborder (ptr_win->win_status, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
wmove (ptr_win->win_status, 0, 0);
/* display number of buffers */
@@ -1224,17 +1218,20 @@ gui_draw_buffer_status (t_gui_buffer *buffer, int erase)
if (!SERVER(ptr_win->buffer))
{
gui_window_set_color (ptr_win->win_status, COLOR_WIN_STATUS);
+ wprintw (ptr_win->win_status, "%d",
+ ptr_win->buffer->number);
+ gui_window_set_color (ptr_win->win_status, COLOR_WIN_STATUS_DELIMITERS);
+ wprintw (ptr_win->win_status, ":");
+ gui_window_set_color (ptr_win->win_status, COLOR_WIN_STATUS);
if (ptr_win->buffer->dcc)
- wprintw (ptr_win->win_status, "%d:<DCC> ",
- ptr_win->buffer->number);
+ wprintw (ptr_win->win_status, "<DCC> ");
else
{
string = weechat_convert_encoding (cfg_look_charset_decode,
(cfg_look_charset_internal && cfg_look_charset_internal[0]) ?
cfg_look_charset_internal : local_charset,
- _("%d:[not connected] "));
- wprintw (ptr_win->win_status, string,
- ptr_win->buffer->number);
+ _("[not connected]"));
+ wprintw (ptr_win->win_status, "%s " , string);
free (string);
}
}
@@ -1344,12 +1341,49 @@ gui_draw_buffer_status (t_gui_buffer *buffer, int erase)
}
free (string);
- wrefresh (ptr_win->win_status);
+ wnoutrefresh (ptr_win->win_status);
refresh ();
}
}
/*
+ * gui_draw_buffer_infobar_time: draw time in infobar window
+ */
+
+void
+gui_draw_buffer_infobar_time (t_gui_buffer *buffer)
+{
+ t_gui_window *ptr_win;
+ time_t time_seconds;
+ struct tm *local_time;
+
+ /* make gcc happy */
+ (void) buffer;
+
+ if (!gui_ok)
+ return;
+
+ for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
+ {
+ time_seconds = time (NULL);
+ local_time = localtime (&time_seconds);
+ if (local_time)
+ {
+ gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR);
+ mvwprintw (ptr_win->win_infobar,
+ 0, 1,
+ "%02d:%02d",
+ local_time->tm_hour, local_time->tm_min);
+ if (cfg_look_infobar_seconds)
+ wprintw (ptr_win->win_infobar,
+ ":%02d",
+ local_time->tm_sec);
+ }
+ wnoutrefresh (ptr_win->win_infobar);
+ }
+}
+
+/*
* gui_draw_buffer_infobar: draw infobar window for a buffer
*/
@@ -1376,7 +1410,7 @@ gui_draw_buffer_infobar (t_gui_buffer *buffer, int erase)
{
gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR);
wborder (ptr_win->win_infobar, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
- wrefresh (ptr_win->win_infobar);
+ wnoutrefresh (ptr_win->win_infobar);
}
wmove (ptr_win->win_infobar, 0, 0);
@@ -1385,16 +1419,31 @@ gui_draw_buffer_infobar (t_gui_buffer *buffer, int erase)
if (local_time)
{
strftime (text_time, 1024, cfg_look_infobar_timestamp, local_time);
+ gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR_DELIMITERS);
+ wprintw (ptr_win->win_infobar, "[");
+ gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR);
+ wprintw (ptr_win->win_infobar,
+ "%02d:%02d",
+ local_time->tm_hour, local_time->tm_min);
+ if (cfg_look_infobar_seconds)
+ wprintw (ptr_win->win_infobar,
+ ":%02d",
+ local_time->tm_sec);
+ gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR_DELIMITERS);
+ wprintw (ptr_win->win_infobar, "]");
gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR);
- wprintw (ptr_win->win_infobar, "%s", text_time);
+ wprintw (ptr_win->win_infobar,
+ " %s", text_time);
}
if (gui_infobar)
{
+ gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR_DELIMITERS);
+ wprintw (ptr_win->win_infobar, " | ");
gui_window_set_color (ptr_win->win_infobar, gui_infobar->color);
- wprintw (ptr_win->win_infobar, " | %s", gui_infobar->text);
+ wprintw (ptr_win->win_infobar, "%s", gui_infobar->text);
}
- wrefresh (ptr_win->win_infobar);
+ wnoutrefresh (ptr_win->win_infobar);
refresh ();
}
}
@@ -1445,7 +1494,7 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
{
gui_window_set_color (ptr_win->win_input, COLOR_WIN_INPUT);
wborder (ptr_win->win_input, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
- wrefresh (ptr_win->win_input);
+ wnoutrefresh (ptr_win->win_input);
}
if (buffer->input_buffer_size == 0)
@@ -1488,11 +1537,12 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
SERVER(buffer)->nick,
"");
wclrtoeol (ptr_win->win_input);
+ ptr_win->win_input_x = strlen (CHANNEL(buffer)->name) +
+ strlen (SERVER(buffer)->nick) + 3 +
+ (buffer->input_buffer_pos - buffer->input_buffer_1st_display);
if (ptr_win == gui_current_window)
move (ptr_win->win_y + ptr_win->win_height - 1,
- ptr_win->win_x + strlen (CHANNEL(buffer)->name) +
- strlen (SERVER(buffer)->nick) + 3 +
- (buffer->input_buffer_pos - buffer->input_buffer_1st_display));
+ ptr_win->win_x + ptr_win->win_input_x);
}
else
{
@@ -1523,6 +1573,7 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
wprintw (ptr_win->win_input, _(" [P] Purge old DCC"));
wprintw (ptr_win->win_input, _(" [Q] Close DCC view"));
wclrtoeol (ptr_win->win_input);
+ ptr_win->win_input_x = 0;
if (ptr_win == gui_current_window)
move (ptr_win->win_y + ptr_win->win_height - 1,
ptr_win->win_x);
@@ -1543,14 +1594,15 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
ptr_nickname,
"");
wclrtoeol (ptr_win->win_input);
+ ptr_win->win_input_x = strlen (ptr_nickname) + 2 +
+ (buffer->input_buffer_pos - buffer->input_buffer_1st_display);
if (ptr_win == gui_current_window)
move (ptr_win->win_y + ptr_win->win_height - 1,
- ptr_win->win_x + strlen (ptr_nickname) + 2 +
- (buffer->input_buffer_pos - buffer->input_buffer_1st_display));
+ ptr_win->win_x + ptr_win->win_input_x);
}
}
- wrefresh (ptr_win->win_input);
+ wnoutrefresh (ptr_win->win_input);
refresh ();
}
}
@@ -1728,215 +1780,143 @@ gui_switch_to_dcc_buffer ()
}
/*
- * gui_switch_to_previous_buffer: switch to previous buffer
- */
-
-void
-gui_switch_to_previous_buffer (t_gui_window *window)
-{
- if (!gui_ok)
- return;
-
- /* if only one buffer then return */
- if (gui_buffers == last_gui_buffer)
- return;
-
- if (window->buffer->prev_buffer)
- gui_switch_to_buffer (window, window->buffer->prev_buffer);
- else
- gui_switch_to_buffer (window, last_gui_buffer);
-
- gui_redraw_buffer (window->buffer);
-}
-
-/*
- * gui_switch_to_next_buffer: switch to next buffer
- */
-
-void
-gui_switch_to_next_buffer (t_gui_window *window)
-{
- if (!gui_ok)
- return;
-
- /* if only one buffer then return */
- if (gui_buffers == last_gui_buffer)
- return;
-
- if (window->buffer->next_buffer)
- gui_switch_to_buffer (window, window->buffer->next_buffer);
- else
- gui_switch_to_buffer (window, gui_buffers);
-
- gui_redraw_buffer (window->buffer);
-}
-
-/*
- * gui_switch_to_previous_window: switch to previous window
- */
-
-void
-gui_switch_to_previous_window (t_gui_window *window)
-{
- if (!gui_ok)
- return;
-
- /* if only one window then return */
- if (gui_windows == last_gui_window)
- return;
-
- gui_current_window = (window->prev_window) ? window->prev_window : last_gui_window;
- gui_switch_to_buffer (gui_current_window, gui_current_window->buffer);
- gui_redraw_buffer (gui_current_window->buffer);
-}
-
-/*
- * gui_switch_to_next_window: switch to next window
+ * gui_input_page_up: display previous page on buffer
*/
void
-gui_switch_to_next_window (t_gui_window *window)
+gui_input_page_up ()
{
if (!gui_ok)
return;
- /* if only one window then return */
- if (gui_windows == last_gui_window)
- return;
-
- gui_current_window = (window->next_window) ? window->next_window : gui_windows;
- gui_switch_to_buffer (gui_current_window, gui_current_window->buffer);
- gui_redraw_buffer (gui_current_window->buffer);
-}
-
-/*
- * gui_move_page_up: display previous page on buffer
- */
-
-void
-gui_move_page_up (t_gui_window *window)
-{
- if (!gui_ok)
- return;
-
- if (!window->first_line_displayed)
+ if (!gui_current_window->first_line_displayed)
{
- window->sub_lines += window->win_chat_height - 1;
- gui_draw_buffer_chat (window->buffer, 0);
- gui_draw_buffer_status (window->buffer, 0);
+ gui_current_window->sub_lines +=
+ gui_current_window->win_chat_height - 1;
+ gui_draw_buffer_chat (gui_current_window->buffer, 0);
+ gui_draw_buffer_status (gui_current_window->buffer, 0);
}
}
/*
- * gui_move_page_down: display next page on buffer
+ * gui_input_page_down: display next page on buffer
*/
void
-gui_move_page_down (t_gui_window *window)
+gui_input_page_down ()
{
if (!gui_ok)
return;
- if (window->sub_lines > 0)
+ if (gui_current_window->sub_lines > 0)
{
- window->sub_lines -= window->win_chat_height - 1;
- if (window->sub_lines < 0)
- window->sub_lines = 0;
- gui_draw_buffer_chat (window->buffer, 0);
- gui_draw_buffer_status (window->buffer, 0);
+ gui_current_window->sub_lines -=
+ gui_current_window->win_chat_height - 1;
+ if (gui_current_window->sub_lines < 0)
+ gui_current_window->sub_lines = 0;
+ gui_draw_buffer_chat (gui_current_window->buffer, 0);
+ gui_draw_buffer_status (gui_current_window->buffer, 0);
}
}
/*
- * gui_nick_move_beginning: go to beginning of nicklist
+ * gui_input_nick_beginning: go to beginning of nicklist
*/
void
-gui_nick_move_beginning (t_gui_window *window)
+gui_input_nick_beginning ()
{
if (!gui_ok)
return;
- if (gui_buffer_has_nicklist (window->buffer))
+ if (gui_buffer_has_nicklist (gui_current_window->buffer))
{
- if (window->win_nick_start > 0)
+ if (gui_current_window->win_nick_start > 0)
{
- window->win_nick_start = 0;
- gui_draw_buffer_nick (window->buffer, 1);
+ gui_current_window->win_nick_start = 0;
+ gui_draw_buffer_nick (gui_current_window->buffer, 1);
}
}
}
/*
- * gui_nick_move_end: go to the end of nicklist
+ * gui_input_nick_end: go to the end of nicklist
*/
void
-gui_nick_move_end (t_gui_window *window)
+gui_input_nick_end ()
{
int new_start;
if (!gui_ok)
return;
- if (gui_buffer_has_nicklist (window->buffer))
+ if (gui_buffer_has_nicklist (gui_current_window->buffer))
{
- new_start = CHANNEL(window->buffer)->nicks_count - window->win_nick_height;
+ new_start =
+ CHANNEL(gui_current_window->buffer)->nicks_count -
+ gui_current_window->win_nick_height;
if (new_start < 0)
new_start = 0;
else if (new_start >= 1)
new_start++;
- if (new_start != window->win_nick_start)
+ if (new_start != gui_current_window->win_nick_start)
{
- window->win_nick_start = new_start;
- gui_draw_buffer_nick (window->buffer, 1);
+ gui_current_window->win_nick_start = new_start;
+ gui_draw_buffer_nick (gui_current_window->buffer, 1);
}
}
}
/*
- * gui_nick_move_page_up: scroll one page up in nicklist
+ * gui_input_nick_page_up: scroll one page up in nicklist
*/
void
-gui_nick_move_page_up (t_gui_window *window)
+gui_input_nick_page_up ()
{
if (!gui_ok)
return;
- if (gui_buffer_has_nicklist (window->buffer))
+ if (gui_buffer_has_nicklist (gui_current_window->buffer))
{
- if (window->win_nick_start > 0)
+ if (gui_current_window->win_nick_start > 0)
{
- window->win_nick_start -= (window->win_nick_height - 1);
- if (window->win_nick_start <= 1)
- window->win_nick_start = 0;
- gui_draw_buffer_nick (window->buffer, 1);
+ gui_current_window->win_nick_start -=
+ (gui_current_window->win_nick_height - 1);
+ if (gui_current_window->win_nick_start <= 1)
+ gui_current_window->win_nick_start = 0;
+ gui_draw_buffer_nick (gui_current_window->buffer, 1);
}
}
}
/*
- * gui_nick_move_page_down: scroll one page down in nicklist
+ * gui_input_nick_page_down: scroll one page down in nicklist
*/
void
-gui_nick_move_page_down (t_gui_window *window)
+gui_input_nick_page_down ()
{
if (!gui_ok)
return;
- if (gui_buffer_has_nicklist (window->buffer))
+ if (gui_buffer_has_nicklist (gui_current_window->buffer))
{
- if ((CHANNEL(window->buffer)->nicks_count > window->win_nick_height)
- && (window->win_nick_start + window->win_nick_height - 1 < CHANNEL(window->buffer)->nicks_count))
+ if ((CHANNEL(gui_current_window->buffer)->nicks_count >
+ gui_current_window->win_nick_height)
+ && (gui_current_window->win_nick_start +
+ gui_current_window->win_nick_height - 1
+ < CHANNEL(gui_current_window->buffer)->nicks_count))
{
- if (window->win_nick_start == 0)
- window->win_nick_start += (window->win_nick_height - 1);
+ if (gui_current_window->win_nick_start == 0)
+ gui_current_window->win_nick_start +=
+ (gui_current_window->win_nick_height - 1);
else
- window->win_nick_start += (window->win_nick_height - 2);
- gui_draw_buffer_nick (window->buffer, 1);
+ gui_current_window->win_nick_start +=
+ (gui_current_window->win_nick_height - 2);
+ gui_draw_buffer_nick (gui_current_window->buffer, 1);
}
}
}
@@ -2306,6 +2286,8 @@ gui_init_colors ()
cfg_col_status_more, cfg_col_status_bg);
init_pair (COLOR_WIN_INFOBAR,
cfg_col_infobar, cfg_col_infobar_bg);
+ init_pair (COLOR_WIN_INFOBAR_DELIMITERS,
+ cfg_col_infobar_delimiters, cfg_col_infobar_bg);
init_pair (COLOR_WIN_INFOBAR_HIGHLIGHT,
cfg_col_infobar_highlight, cfg_col_infobar_bg);
init_pair (COLOR_WIN_INPUT,
@@ -2378,6 +2360,7 @@ gui_init_colors ()
color_attr[COLOR_WIN_STATUS_DATA_OTHER - 1] = (cfg_col_status_data_other >= 0) ? cfg_col_status_data_other & A_BOLD : 0;
color_attr[COLOR_WIN_STATUS_MORE - 1] = (cfg_col_status_more >= 0) ? cfg_col_status_more & A_BOLD : 0;
color_attr[COLOR_WIN_INFOBAR - 1] = (cfg_col_infobar >= 0) ? cfg_col_infobar & A_BOLD : 0;
+ color_attr[COLOR_WIN_INFOBAR_DELIMITERS - 1] = (cfg_col_infobar_delimiters >= 0) ? cfg_col_infobar_delimiters & A_BOLD : 0;
color_attr[COLOR_WIN_INFOBAR_HIGHLIGHT - 1] = (cfg_col_infobar_highlight >= 0) ? cfg_col_infobar_highlight & A_BOLD : 0;
color_attr[COLOR_WIN_INPUT - 1] = (cfg_col_input >= 0) ? cfg_col_input & A_BOLD : 0;
color_attr[COLOR_WIN_INPUT_CHANNEL - 1] = (cfg_col_input_channel >= 0) ? cfg_col_input_channel & A_BOLD : 0;
@@ -2427,15 +2410,16 @@ gui_init ()
initscr ();
curs_set (1);
- keypad (stdscr, TRUE);
noecho ();
nodelay (stdscr, TRUE);
gui_init_colors ();
-
+
gui_infobar = NULL;
gui_ok = ((COLS > 5) && (LINES > 5));
+
+ refresh ();
/* create new window/buffer */
if (gui_window_new (0, 0, COLS, LINES))
diff --git a/src/gui/curses/gui-input.c b/src/gui/curses/gui-input.c
index 89793d4ee..85eda8858 100644
--- a/src/gui/curses/gui-input.c
+++ b/src/gui/curses/gui-input.c
@@ -41,649 +41,151 @@
#include "../../common/fifo.h"
#include "../../irc/irc.h"
-#define KEY_ESCAPE 27
/*
- * gui_read_keyb: read keyboard line
+ * gui_input_default_key_bindings: create default key bindings
*/
void
-gui_read_keyb ()
+gui_input_default_key_bindings ()
{
- int key, i;
- t_gui_buffer *ptr_buffer;
- t_irc_server *ptr_server;
- t_irc_dcc *ptr_dcc, *ptr_dcc_next;
- char new_char[3], *decoded_string;
- t_irc_dcc *dcc_selected;
+ int i;
+ char key_str[32], command[32];
+
+ /* keys binded with internal functions */
+ gui_key_bind ( /* RC */ "ctrl-M", "return");
+ gui_key_bind ( /* RC */ "ctrl-J", "return");
+ gui_key_bind ( /* tab */ "ctrl-I", "tab");
+ gui_key_bind ( /* basckp */ "ctrl-H", "backspace");
+ gui_key_bind ( /* basckp */ "ctrl-?", "backspace");
+ gui_key_bind ( /* del */ "meta2-3~", "delete");
+ gui_key_bind ( /* ^K */ "ctrl-K", "delete_end_line");
+ gui_key_bind ( /* ^U */ "ctrl-U", "delete_beginning_line");
+ gui_key_bind ( /* ^W */ "ctrl-W", "delete_previous_word");
+ gui_key_bind ( /* home */ "meta2-1~", "home");
+ gui_key_bind ( /* home */ "meta2-H", "home");
+ gui_key_bind ( /* home */ "meta2-7~", "home");
+ gui_key_bind ( /* ^A */ "ctrl-A", "home");
+ gui_key_bind ( /* end */ "meta2-4~", "end");
+ gui_key_bind ( /* end */ "meta2-F", "end");
+ gui_key_bind ( /* end */ "meta2-8~", "end");
+ gui_key_bind ( /* ^E */ "ctrl-E", "end");
+ gui_key_bind ( /* left */ "meta2-D", "left");
+ gui_key_bind ( /* right */ "meta2-C", "right");
+ gui_key_bind ( /* up */ "meta2-A", "up");
+ gui_key_bind ( /* down */ "meta2-B", "down");
+ gui_key_bind ( /* pgup */ "meta2-5~", "page_up");
+ gui_key_bind ( /* pgdn */ "meta2-6~", "page_down");
+ gui_key_bind ( /* F10 */ "meta2-21~", "infobar_clear");
+ gui_key_bind ( /* F11 */ "meta2-23~", "nick_page_up");
+ gui_key_bind ( /* F12 */ "meta2-24~", "nick_page_down");
+ gui_key_bind ( /* m-F11 */ "meta-meta2-1~", "nick_beginning");
+ gui_key_bind ( /* m-F12 */ "meta-meta2-4~", "nick_end");
+ gui_key_bind ( /* ^L */ "ctrl-L", "refresh");
+ gui_key_bind ( /* m-a */ "meta-a", "jump_smart");
+ gui_key_bind ( /* m-b */ "meta-b", "previous_word");
+ gui_key_bind ( /* ^left */ "meta-Od", "previous_word");
+ gui_key_bind ( /* m-d */ "meta-d", "delete_next_word");
+ gui_key_bind ( /* m-f */ "meta-f", "next_word");
+ gui_key_bind ( /* ^right */ "meta-Oc", "next_word");
+ gui_key_bind ( /* m-h */ "meta-h", "hotlist_clear");
+ gui_key_bind ( /* m-j,m-d */ "meta-jmeta-d", "jump_dcc");
+ gui_key_bind ( /* m-r */ "meta-r", "delete_line");
+ gui_key_bind ( /* m-s */ "meta-s", "jump_server");
+ gui_key_bind ( /* m-x */ "meta-x", "jump_next_server");
+
+ /* keys binded with commands */
+ gui_key_bind ( /* m-left */ "meta-meta2-D", "/buffer -1");
+ gui_key_bind ( /* F5 */ "meta2-15~", "/buffer -1");
+ gui_key_bind ( /* m-right */ "meta-meta2-C", "/buffer +1");
+ gui_key_bind ( /* F6 */ "meta2-17~", "/buffer +1");
+ gui_key_bind ( /* F7 */ "meta2-18~", "/window -1");
+ gui_key_bind ( /* F8 */ "meta2-19~", "/window +1");
+ gui_key_bind ( /* m-0 */ "meta-0", "/buffer 10");
+ gui_key_bind ( /* m-1 */ "meta-1", "/buffer 1");
+ gui_key_bind ( /* m-2 */ "meta-2", "/buffer 2");
+ gui_key_bind ( /* m-3 */ "meta-3", "/buffer 3");
+ gui_key_bind ( /* m-4 */ "meta-4", "/buffer 4");
+ gui_key_bind ( /* m-5 */ "meta-5", "/buffer 5");
+ gui_key_bind ( /* m-6 */ "meta-6", "/buffer 6");
+ gui_key_bind ( /* m-7 */ "meta-7", "/buffer 7");
+ gui_key_bind ( /* m-8 */ "meta-8", "/buffer 8");
+ gui_key_bind ( /* m-9 */ "meta-9", "/buffer 9");
+
+ /* bind meta-j + {01..99} to switch to buffers # > 10 */
+ for (i = 1; i < 100; i++)
+ {
+ sprintf (key_str, "meta-j%02d", i);
+ sprintf (command, "/buffer %d", i);
+ gui_key_bind (key_str, command);
+ }
+}
+
+/*
+ * gui_input_read: read keyboard chars
+ */
- key = getch ();
- if (key != ERR)
+void
+gui_input_read ()
+{
+ int key, i;
+ char key_str[32];
+
+ i = 0;
+ /* do not loop too much here (for example when big paste was made),
+ to read also socket & co */
+ while (i < 8)
{
- switch (key)
+ key = getch ();
+
+ if (key == ERR)
+ break;
+
+ if (key == KEY_RESIZE)
{
- /* resize event */
- case KEY_RESIZE:
- gui_curses_resize_handler ();
- break;
- /* inactive function keys */
- case KEY_F(1):
- case KEY_F(2):
- case KEY_F(3):
- case KEY_F(4):
- case KEY_F(9):
- break;
- /* previous buffer in window */
- case KEY_F(5):
- gui_switch_to_previous_buffer (gui_current_window);
- break;
- /* next buffer in window */
- case KEY_F(6):
- gui_switch_to_next_buffer (gui_current_window);
- break;
- /* previous window */
- case KEY_F(7):
- gui_switch_to_previous_window (gui_current_window);
- break;
- /* next window */
- case KEY_F(8):
- gui_switch_to_next_window (gui_current_window);
- break;
- /* remove last infobar message */
- case KEY_F(10):
- gui_infobar_remove ();
- gui_draw_buffer_infobar (gui_current_window->buffer, 1);
- break;
- case KEY_F(11):
- gui_nick_move_page_up (gui_current_window);
- break;
- case KEY_F(12):
- gui_nick_move_page_down (gui_current_window);
- break;
- /* cursor up */
- case KEY_UP:
- if (gui_current_window->buffer->dcc)
- {
- if (dcc_list)
- {
- if (gui_current_window->dcc_selected
- && ((t_irc_dcc *)(gui_current_window->dcc_selected))->prev_dcc)
- {
- if (gui_current_window->dcc_selected ==
- gui_current_window->dcc_first)
- gui_current_window->dcc_first =
- ((t_irc_dcc *)(gui_current_window->dcc_first))->prev_dcc;
- gui_current_window->dcc_selected =
- ((t_irc_dcc *)(gui_current_window->dcc_selected))->prev_dcc;
- gui_draw_buffer_chat (gui_current_window->buffer, 1);
- gui_draw_buffer_input (gui_current_window->buffer, 1);
- }
- }
- }
- else
- {
- if (gui_current_window->buffer->ptr_history)
- {
- gui_current_window->buffer->ptr_history =
- gui_current_window->buffer->ptr_history->next_history;
- if (!gui_current_window->buffer->ptr_history)
- gui_current_window->buffer->ptr_history =
- gui_current_window->buffer->history;
- }
- else
- gui_current_window->buffer->ptr_history =
- gui_current_window->buffer->history;
- if (gui_current_window->buffer->ptr_history)
- {
- gui_current_window->buffer->input_buffer_size =
- strlen (gui_current_window->buffer->ptr_history->text);
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->input_buffer_pos =
- gui_current_window->buffer->input_buffer_size;
- strcpy (gui_current_window->buffer->input_buffer,
- gui_current_window->buffer->ptr_history->text);
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* cursor down */
- case KEY_DOWN:
- if (gui_current_window->buffer->dcc)
- {
- if (dcc_list)
- {
- if (!gui_current_window->dcc_selected
- || ((t_irc_dcc *)(gui_current_window->dcc_selected))->next_dcc)
- {
- if (gui_current_window->dcc_last_displayed
- && (gui_current_window->dcc_selected ==
- gui_current_window->dcc_last_displayed))
- {
- if (gui_current_window->dcc_first)
- gui_current_window->dcc_first =
- ((t_irc_dcc *)(gui_current_window->dcc_first))->next_dcc;
- else
- gui_current_window->dcc_first =
- dcc_list->next_dcc;
- }
- if (gui_current_window->dcc_selected)
- gui_current_window->dcc_selected =
- ((t_irc_dcc *)(gui_current_window->dcc_selected))->next_dcc;
- else
- gui_current_window->dcc_selected =
- dcc_list->next_dcc;
- gui_draw_buffer_chat (gui_current_window->buffer, 1);
- gui_draw_buffer_input (gui_current_window->buffer, 1);
- }
- }
- }
- else
- {
- if (gui_current_window->buffer->ptr_history)
- {
- gui_current_window->buffer->ptr_history =
- gui_current_window->buffer->ptr_history->prev_history;
- if (gui_current_window->buffer->ptr_history)
- gui_current_window->buffer->input_buffer_size =
- strlen (gui_current_window->buffer->ptr_history->text);
- else
- gui_current_window->buffer->input_buffer_size = 0;
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->input_buffer_pos =
- gui_current_window->buffer->input_buffer_size;
- if (gui_current_window->buffer->ptr_history)
- strcpy (gui_current_window->buffer->input_buffer,
- gui_current_window->buffer->ptr_history->text);
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* cursor left */
- case KEY_LEFT:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos > 0)
- {
- gui_current_window->buffer->input_buffer_pos--;
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* cursor right */
- case KEY_RIGHT:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos <
- gui_current_window->buffer->input_buffer_size)
- {
- gui_current_window->buffer->input_buffer_pos++;
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* home key or Control + A */
- case KEY_HOME:
- case 0x01:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos > 0)
- {
- gui_current_window->buffer->input_buffer_pos = 0;
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* end key or Control + E */
- case KEY_END:
- case 0x05:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos <
- gui_current_window->buffer->input_buffer_size)
- {
- gui_current_window->buffer->input_buffer_pos =
- gui_current_window->buffer->input_buffer_size;
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* page up */
- case KEY_PPAGE:
- if (!gui_current_window->buffer->dcc)
- gui_move_page_up (gui_current_window);
- break;
- /* page down */
- case KEY_NPAGE:
- if (!gui_current_window->buffer->dcc)
- gui_move_page_down (gui_current_window);
- break;
- /* erase before cursor and move cursor to the left */
- case 127:
- case KEY_BACKSPACE:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos > 0)
- {
- i = gui_current_window->buffer->input_buffer_pos-1;
- while (gui_current_window->buffer->input_buffer[i])
- {
- gui_current_window->buffer->input_buffer[i] =
- gui_current_window->buffer->input_buffer[i+1];
- i++;
- }
- gui_current_window->buffer->input_buffer_size--;
- gui_current_window->buffer->input_buffer_pos--;
- gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->completion.position = -1;
- }
- }
- break;
- /* Control + Backspace or Control + W */
- case 0x08:
- case 0x17:
- if (!gui_current_window->buffer->dcc)
- gui_delete_previous_word (gui_current_window->buffer);
- break;
- /* Control + L */
- case 0x0C:
- gui_curses_resize_handler ();
- break;
- /* erase char under cursor */
- case KEY_DC:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos <
- gui_current_window->buffer->input_buffer_size)
- {
- i = gui_current_window->buffer->input_buffer_pos;
- while (gui_current_window->buffer->input_buffer[i])
- {
- gui_current_window->buffer->input_buffer[i] =
- gui_current_window->buffer->input_buffer[i+1];
- i++;
- }
- gui_current_window->buffer->input_buffer_size--;
- gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->completion.position = -1;
- }
- }
- break;
- /* Tab : completion */
- case '\t':
- if (!gui_current_window->buffer->dcc)
- {
- completion_search (&(gui_current_window->buffer->completion),
- CHANNEL(gui_current_window->buffer),
- gui_current_window->buffer->input_buffer,
- gui_current_window->buffer->input_buffer_size,
- gui_current_window->buffer->input_buffer_pos);
-
- if (gui_current_window->buffer->completion.word_found)
- {
- /* replace word with new completed word into input buffer */
- if (gui_current_window->buffer->completion.diff_size > 0)
- {
- gui_current_window->buffer->input_buffer_size +=
- gui_current_window->buffer->completion.diff_size;
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
- for (i = gui_current_window->buffer->input_buffer_size - 1;
- i >= gui_current_window->buffer->completion.position_replace +
- (int)strlen (gui_current_window->buffer->completion.word_found); i--)
- gui_current_window->buffer->input_buffer[i] =
- gui_current_window->buffer->input_buffer[i -
- gui_current_window->buffer->completion.diff_size];
- }
- else
- {
- for (i = gui_current_window->buffer->completion.position_replace +
- strlen (gui_current_window->buffer->completion.word_found);
- i < gui_current_window->buffer->input_buffer_size; i++)
- gui_current_window->buffer->input_buffer[i] =
- gui_current_window->buffer->input_buffer[i -
- gui_current_window->buffer->completion.diff_size];
- gui_current_window->buffer->input_buffer_size +=
- gui_current_window->buffer->completion.diff_size;
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
- }
-
- strncpy (gui_current_window->buffer->input_buffer + gui_current_window->buffer->completion.position_replace,
- gui_current_window->buffer->completion.word_found,
- strlen (gui_current_window->buffer->completion.word_found));
- gui_current_window->buffer->input_buffer_pos =
- gui_current_window->buffer->completion.position_replace +
- strlen (gui_current_window->buffer->completion.word_found);
-
- /* position is < 0 this means only one word was found to complete,
- so reinit to stop completion */
- if (gui_current_window->buffer->completion.position >= 0)
- gui_current_window->buffer->completion.position =
- gui_current_window->buffer->input_buffer_pos;
-
- /* add space or completor to the end of completion, if needed */
- if ((gui_current_window->buffer->completion.context == COMPLETION_COMMAND)
- || (gui_current_window->buffer->completion.context == COMPLETION_COMMAND_ARG))
- {
- if (gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] != ' ')
- gui_buffer_insert_string (gui_current_window->buffer,
- " ",
- gui_current_window->buffer->input_buffer_pos);
- if (gui_current_window->buffer->completion.position >= 0)
- gui_current_window->buffer->completion.position++;
- gui_current_window->buffer->input_buffer_pos++;
- }
- else
- {
- /* add nick completor if position 0 and completing nick */
- if ((gui_current_window->buffer->completion.base_word_pos == 0)
- && (gui_current_window->buffer->completion.context == COMPLETION_NICK))
- {
- if (strncmp (gui_current_window->buffer->input_buffer + gui_current_window->buffer->input_buffer_pos,
- cfg_look_completor, strlen (cfg_look_completor)) != 0)
- gui_buffer_insert_string (gui_current_window->buffer,
- cfg_look_completor,
- gui_current_window->buffer->input_buffer_pos);
- if (gui_current_window->buffer->completion.position >= 0)
- gui_current_window->buffer->completion.position += strlen (cfg_look_completor);
- gui_current_window->buffer->input_buffer_pos += strlen (cfg_look_completor);
- if (gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] != ' ')
- gui_buffer_insert_string (gui_current_window->buffer,
- " ",
- gui_current_window->buffer->input_buffer_pos);
- if (gui_current_window->buffer->completion.position >= 0)
- gui_current_window->buffer->completion.position++;
- gui_current_window->buffer->input_buffer_pos++;
- }
- }
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* escape code (for control-key) */
- case KEY_ESCAPE:
- if ((key = getch()) != ERR)
- {
- /*gui_printf (gui_current_window->buffer,
- "[Debug] key pressed = %d, hex = %02X, octal = %o\n", key, key, key);*/
- switch (key)
- {
- /* Alt + left arrow */
- case KEY_LEFT:
- gui_switch_to_previous_buffer (gui_current_window);
- break;
- /* Alt + right arrow */
- case KEY_RIGHT:
- gui_switch_to_next_buffer (gui_current_window);
- break;
- /* Alt + home */
- case KEY_HOME:
- gui_nick_move_beginning (gui_current_window);
- break;
- /* Alt + end */
- case KEY_END:
- gui_nick_move_end (gui_current_window);
- break;
- /* Alt + page up */
- case KEY_PPAGE:
- gui_nick_move_page_up (gui_current_window);
- break;
- /* Alt + page down */
- case KEY_NPAGE:
- gui_nick_move_page_down (gui_current_window);
- break;
- case 79:
- /* TODO: replace 79 by constant name! */
- if ((key = getch()) != ERR)
- {
- switch (key)
- {
- /* Control + Right */
- case 99:
- if (!gui_current_window->buffer->dcc)
- gui_move_next_word (gui_current_window->buffer);
- break;
- /* Control + Left */
- case 100:
- if (!gui_current_window->buffer->dcc)
- gui_move_previous_word (gui_current_window->buffer);
- break;
- }
- }
- break;
- /* Alt-number: jump to window by number */
- case 48: /* Alt-0 */
- case 49: /* Alt-1 */
- case 50: /* Alt-2 */
- case 51: /* Alt-3 */
- case 52: /* Alt-4 */
- case 53: /* Alt-5 */
- case 54: /* Alt-6 */
- case 55: /* Alt-7 */
- case 56: /* Alt-8 */
- case 57: /* Alt-9 */
- gui_switch_to_buffer_by_number (gui_current_window, (key == 48) ? 10 : key - 48);
- break;
- /* Alt-A: jump to buffer with activity */
- case 'a':
- case 'A':
- if (hotlist)
- {
- if (!hotlist_initial_buffer)
- hotlist_initial_buffer = gui_current_window->buffer;
- gui_switch_to_buffer (gui_current_window, hotlist->buffer);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- else
- {
- if (hotlist_initial_buffer)
- {
- gui_switch_to_buffer (gui_current_window, hotlist_initial_buffer);
- gui_redraw_buffer (gui_current_window->buffer);
- hotlist_initial_buffer = NULL;
- }
- }
- break;
- /* Alt-D: jump to DCC buffer */
- case 'd':
- case 'D':
- if (gui_current_window->buffer->dcc)
- {
- if (buffer_before_dcc)
- {
- gui_switch_to_buffer (gui_current_window,
- buffer_before_dcc);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- }
- else
- {
- buffer_before_dcc = gui_current_window->buffer;
- gui_switch_to_dcc_buffer ();
- }
- break;
- /* Alt-R: clear hotlist */
- case 'r':
- case 'R':
- if (hotlist)
- {
- hotlist_free_all ();
- gui_redraw_buffer (gui_current_window->buffer);
- }
- hotlist_initial_buffer = gui_current_window->buffer;
- break;
- /* Alt-S: jump to server buffer */
- case 's':
- case 'S':
- if (!gui_current_window->buffer->dcc)
- {
- if (SERVER(gui_current_window->buffer)->buffer !=
- gui_current_window->buffer)
- {
- gui_switch_to_buffer (gui_current_window,
- SERVER(gui_current_window->buffer)->buffer);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- }
- break;
- /* Alt-X: jump to first channel/private of next server */
- case 'x':
- case 'X':
- if (!gui_current_window->buffer->dcc)
- {
- ptr_server = SERVER(gui_current_window->buffer)->next_server;
- if (!ptr_server)
- ptr_server = irc_servers;
- while (ptr_server != SERVER(gui_current_window->buffer))
- {
- if (ptr_server->buffer)
- break;
- ptr_server = (ptr_server->next_server) ?
- ptr_server->next_server : irc_servers;
- }
- if (ptr_server != SERVER(gui_current_window->buffer))
- {
- ptr_buffer = (ptr_server->channels) ?
- ptr_server->channels->buffer : ptr_server->buffer;
- gui_switch_to_buffer (gui_current_window, ptr_buffer);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- }
- break;
- }
- }
- break;
- /* send command/message */
- case '\n':
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_size > 0)
- {
- gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
- history_add (gui_current_window->buffer, gui_current_window->buffer->input_buffer);
- gui_current_window->buffer->input_buffer_size = 0;
- gui_current_window->buffer->input_buffer_pos = 0;
- gui_current_window->buffer->input_buffer_1st_display = 0;
- gui_current_window->buffer->completion.position = -1;
- gui_current_window->buffer->ptr_history = NULL;
- ptr_buffer = gui_current_window->buffer;
- user_command (SERVER(gui_current_window->buffer),
- gui_current_window->buffer,
- gui_current_window->buffer->input_buffer);
- if (ptr_buffer == gui_current_window->buffer)
- {
- ptr_buffer->input_buffer[0] = '\0';
- gui_draw_buffer_input (ptr_buffer, 0);
- }
- }
- }
- break;
- /* other key => add to input buffer */
- default:
- if (gui_current_window->buffer->dcc)
- {
- dcc_selected = (gui_current_window->dcc_selected) ?
- (t_irc_dcc *) gui_current_window->dcc_selected : dcc_list;
- switch (key)
- {
- /* accept DCC */
- case 'a':
- case 'A':
- if (dcc_selected
- && (DCC_IS_RECV(dcc_selected->status))
- && (dcc_selected->status == DCC_WAITING))
- {
- dcc_accept (dcc_selected);
- }
- break;
- /* cancel DCC */
- case 'c':
- case 'C':
- if (dcc_selected
- && (!DCC_ENDED(dcc_selected->status)))
- {
- dcc_close (dcc_selected, DCC_ABORTED);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- break;
- /* purge old DCC */
- case 'p':
- case 'P':
- gui_current_window->dcc_selected = NULL;
- ptr_dcc = dcc_list;
- while (ptr_dcc)
- {
- ptr_dcc_next = ptr_dcc->next_dcc;
- if (DCC_ENDED(ptr_dcc->status))
- dcc_free (ptr_dcc);
- ptr_dcc = ptr_dcc_next;
- }
- gui_redraw_buffer (gui_current_window->buffer);
- break;
- /* close DCC window */
- case 'q':
- case 'Q':
- if (buffer_before_dcc)
- {
- gui_buffer_free (gui_current_window->buffer, 1);
- gui_switch_to_buffer (gui_current_window,
- buffer_before_dcc);
- }
- else
- gui_buffer_free (gui_current_window->buffer, 1);
- gui_redraw_buffer (gui_current_window->buffer);
- break;
- /* remove from DCC list */
- case 'r':
- case 'R':
- if (dcc_selected
- && (DCC_ENDED(dcc_selected->status)))
- {
- if (dcc_selected->next_dcc)
- gui_current_window->dcc_selected = dcc_selected->next_dcc;
- else
- gui_current_window->dcc_selected = NULL;
- dcc_free (dcc_selected);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- break;
- }
- }
- else
- {
- /*gui_printf (gui_current_window->buffer,
- "[Debug] key pressed = %d, hex = %02X, octal = %o\n", key, key, key);*/
- new_char[0] = key;
- new_char[1] = '\0';
- decoded_string = NULL;
-
- /* UTF-8 input */
- if (key == 0xC3)
- {
- if ((key = getch()) != ERR)
- {
- new_char[1] = key;
- new_char[2] = '\0';
- decoded_string = weechat_convert_encoding (local_charset, cfg_look_charset_internal, new_char);
- }
- }
-
- gui_buffer_insert_string (gui_current_window->buffer,
- (decoded_string) ? decoded_string : new_char,
- gui_current_window->buffer->input_buffer_pos);
- gui_current_window->buffer->input_buffer_pos++;
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- gui_current_window->buffer->completion.position = -1;
-
- if (decoded_string)
- free (decoded_string);
- }
- break;
+ gui_curses_resize_handler ();
+ continue;
+ }
+
+ if (key < 32)
+ {
+ key_str[0] = '^';
+ key_str[1] = (char) key + '@';
+ key_str[2] = '\0';
+ }
+ else if (key == 127)
+ {
+ key_str[0] = '^';
+ key_str[1] = '?';
+ key_str[2] = '\0';
+ }
+ else
+ {
+ if (key > 0xff)
+ {
+ key_str[0] = (char) (key >> 8);
+ key_str[1] = (char) (key & 0xff);
+ key_str[2] = '\0';
+ }
+ else
+ {
+ key_str[0] = (char) key;
+ key_str[1] = '\0';
+ }
}
+
+ if (strcmp (key_str, "^") == 0)
+ {
+ key_str[1] = '^';
+ key_str[2] = '\0';
+ }
+
+ /*gui_printf (gui_current_window->buffer, "gui_input_read: key = %s (%d)\n", key_str, key);*/
+
+ if (gui_key_pressed (key_str) != 0)
+ gui_input_insert_char (key);
+
+ i++;
}
}
@@ -723,6 +225,14 @@ gui_main_loop ()
{
old_sec = local_time->tm_sec;
+ if (cfg_look_infobar_seconds)
+ {
+ gui_draw_buffer_infobar_time (gui_current_window->buffer);
+ wmove (gui_current_window->win_input,
+ 0, gui_current_window->win_input_x);
+ wrefresh (gui_current_window->win_input);
+ }
+
/* infobar count down */
if (gui_infobar && gui_infobar->remaining_time > 0)
{
@@ -807,7 +317,7 @@ gui_main_loop ()
{
if (FD_ISSET (STDIN_FILENO, &read_fd))
{
- gui_read_keyb ();
+ gui_input_read ();
}
if ((weechat_fifo != -1) && (FD_ISSET (weechat_fifo, &read_fd)))
{
diff --git a/src/gui/gui-common.c b/src/gui/gui-common.c
index fb1446c86..f3fb838fe 100644
--- a/src/gui/gui-common.c
+++ b/src/gui/gui-common.c
@@ -34,6 +34,7 @@
#include "../common/weechat.h"
#include "gui.h"
+#include "../common/command.h"
#include "../common/weeconfig.h"
#include "../common/hotlist.h"
#include "../common/log.h"
@@ -89,6 +90,8 @@ gui_window_new (int x, int y, int width, int height)
new_window->win_nick_height = 0;
new_window->win_nick_start = 0;
+ new_window->win_input_x = 0;
+
new_window->win_title = NULL;
new_window->win_chat = NULL;
new_window->win_nick = NULL;
@@ -552,12 +555,12 @@ gui_new_message (t_gui_buffer *buffer)
}
/*
- * gui_optimize_input_buffer_size: optimize input buffer size by adding
+ * gui_input_optimize_buffer_size: optimize input buffer size by adding
* or deleting data block (predefined size)
*/
void
-gui_optimize_input_buffer_size (t_gui_buffer *buffer)
+gui_input_optimize_buffer_size (t_gui_buffer *buffer)
{
int optimal_size;
@@ -571,29 +574,343 @@ gui_optimize_input_buffer_size (t_gui_buffer *buffer)
}
/*
- * gui_delete_previous_word: delete previous word
+ * gui_input_insert_string: insert a string into the input buffer
+ */
+
+void
+gui_input_insert_string (char *string, int pos)
+{
+ int i, start, end, length;
+
+ length = strlen (string);
+
+ /* increase buffer size */
+ gui_current_window->buffer->input_buffer_size += length;
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+
+ /* move end of string to the right */
+ start = pos + length;
+ end = gui_current_window->buffer->input_buffer_size - 1;
+ for (i = end; i >= start; i--)
+ gui_current_window->buffer->input_buffer[i] =
+ gui_current_window->buffer->input_buffer[i - length];
+
+ /* insert new string */
+ strncpy (gui_current_window->buffer->input_buffer + pos, string, length);
+}
+
+/*
+ * gui_input_insert_char: insert a char into input buffer
+ */
+
+void
+gui_input_insert_char (int key)
+{
+ char new_char[3];
+ t_irc_dcc *dcc_selected, *ptr_dcc, *ptr_dcc_next;
+
+ if (key < 32)
+ return;
+
+ if (gui_current_window->buffer->dcc)
+ {
+ dcc_selected = (gui_current_window->dcc_selected) ?
+ (t_irc_dcc *) gui_current_window->dcc_selected : dcc_list;
+ switch (key)
+ {
+ /* accept DCC */
+ case 'a':
+ case 'A':
+ if (dcc_selected
+ && (DCC_IS_RECV(dcc_selected->status))
+ && (dcc_selected->status == DCC_WAITING))
+ {
+ dcc_accept (dcc_selected);
+ }
+ break;
+ /* cancel DCC */
+ case 'c':
+ case 'C':
+ if (dcc_selected
+ && (!DCC_ENDED(dcc_selected->status)))
+ {
+ dcc_close (dcc_selected, DCC_ABORTED);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ break;
+ /* purge old DCC */
+ case 'p':
+ case 'P':
+ gui_current_window->dcc_selected = NULL;
+ ptr_dcc = dcc_list;
+ while (ptr_dcc)
+ {
+ ptr_dcc_next = ptr_dcc->next_dcc;
+ if (DCC_ENDED(ptr_dcc->status))
+ dcc_free (ptr_dcc);
+ ptr_dcc = ptr_dcc_next;
+ }
+ gui_redraw_buffer (gui_current_window->buffer);
+ break;
+ /* close DCC window */
+ case 'q':
+ case 'Q':
+ if (buffer_before_dcc)
+ {
+ gui_buffer_free (gui_current_window->buffer, 1);
+ gui_switch_to_buffer (gui_current_window,
+ buffer_before_dcc);
+ }
+ else
+ gui_buffer_free (gui_current_window->buffer, 1);
+ gui_redraw_buffer (gui_current_window->buffer);
+ break;
+ /* remove from DCC list */
+ case 'r':
+ case 'R':
+ if (dcc_selected
+ && (DCC_ENDED(dcc_selected->status)))
+ {
+ if (dcc_selected->next_dcc)
+ gui_current_window->dcc_selected = dcc_selected->next_dcc;
+ else
+ gui_current_window->dcc_selected = NULL;
+ dcc_free (dcc_selected);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ break;
+ }
+ }
+ else
+ {
+ /*gui_printf (gui_current_window->buffer,
+ "[Debug] key pressed = %d, hex = %02X, octal = %o\n", key, key, key);*/
+ new_char[0] = key;
+ new_char[1] = '\0';
+
+ gui_input_insert_string (new_char,
+ gui_current_window->buffer->input_buffer_pos);
+ gui_current_window->buffer->input_buffer_pos++;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_current_window->buffer->completion.position = -1;
+ }
+}
+
+/*
+ * gui_input_return: terminate line (return pressed)
+ */
+
+void
+gui_input_return ()
+{
+ t_gui_buffer *ptr_buffer;
+
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_size > 0)
+ {
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ history_add (gui_current_window->buffer, gui_current_window->buffer->input_buffer);
+ gui_current_window->buffer->input_buffer_size = 0;
+ gui_current_window->buffer->input_buffer_pos = 0;
+ gui_current_window->buffer->input_buffer_1st_display = 0;
+ gui_current_window->buffer->completion.position = -1;
+ gui_current_window->buffer->ptr_history = NULL;
+ ptr_buffer = gui_current_window->buffer;
+ user_command (SERVER(gui_current_window->buffer),
+ gui_current_window->buffer,
+ gui_current_window->buffer->input_buffer);
+ if (ptr_buffer == gui_current_window->buffer)
+ {
+ ptr_buffer->input_buffer[0] = '\0';
+ gui_draw_buffer_input (ptr_buffer, 0);
+ }
+ }
+ }
+}
+
+/*
+ * gui_input_tab: tab key => completion
+ */
+
+void
+gui_input_tab ()
+{
+ int i;
+
+ if (!gui_current_window->buffer->dcc)
+ {
+ completion_search (&(gui_current_window->buffer->completion),
+ CHANNEL(gui_current_window->buffer),
+ gui_current_window->buffer->input_buffer,
+ gui_current_window->buffer->input_buffer_size,
+ gui_current_window->buffer->input_buffer_pos);
+
+ if (gui_current_window->buffer->completion.word_found)
+ {
+ /* replace word with new completed word into input buffer */
+ if (gui_current_window->buffer->completion.diff_size > 0)
+ {
+ gui_current_window->buffer->input_buffer_size +=
+ gui_current_window->buffer->completion.diff_size;
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ for (i = gui_current_window->buffer->input_buffer_size - 1;
+ i >= gui_current_window->buffer->completion.position_replace +
+ (int)strlen (gui_current_window->buffer->completion.word_found); i--)
+ gui_current_window->buffer->input_buffer[i] =
+ gui_current_window->buffer->input_buffer[i -
+ gui_current_window->buffer->completion.diff_size];
+ }
+ else
+ {
+ for (i = gui_current_window->buffer->completion.position_replace +
+ strlen (gui_current_window->buffer->completion.word_found);
+ i < gui_current_window->buffer->input_buffer_size; i++)
+ gui_current_window->buffer->input_buffer[i] =
+ gui_current_window->buffer->input_buffer[i -
+ gui_current_window->buffer->completion.diff_size];
+ gui_current_window->buffer->input_buffer_size +=
+ gui_current_window->buffer->completion.diff_size;
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ }
+
+ strncpy (gui_current_window->buffer->input_buffer + gui_current_window->buffer->completion.position_replace,
+ gui_current_window->buffer->completion.word_found,
+ strlen (gui_current_window->buffer->completion.word_found));
+ gui_current_window->buffer->input_buffer_pos =
+ gui_current_window->buffer->completion.position_replace +
+ strlen (gui_current_window->buffer->completion.word_found);
+
+ /* position is < 0 this means only one word was found to complete,
+ so reinit to stop completion */
+ if (gui_current_window->buffer->completion.position >= 0)
+ gui_current_window->buffer->completion.position =
+ gui_current_window->buffer->input_buffer_pos;
+
+ /* add space or completor to the end of completion, if needed */
+ if ((gui_current_window->buffer->completion.context == COMPLETION_COMMAND)
+ || (gui_current_window->buffer->completion.context == COMPLETION_COMMAND_ARG))
+ {
+ if (gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] != ' ')
+ gui_input_insert_string (" ",
+ gui_current_window->buffer->input_buffer_pos);
+ if (gui_current_window->buffer->completion.position >= 0)
+ gui_current_window->buffer->completion.position++;
+ gui_current_window->buffer->input_buffer_pos++;
+ }
+ else
+ {
+ /* add nick completor if position 0 and completing nick */
+ if ((gui_current_window->buffer->completion.base_word_pos == 0)
+ && (gui_current_window->buffer->completion.context == COMPLETION_NICK))
+ {
+ if (strncmp (gui_current_window->buffer->input_buffer + gui_current_window->buffer->input_buffer_pos,
+ cfg_look_completor, strlen (cfg_look_completor)) != 0)
+ gui_input_insert_string (cfg_look_completor,
+ gui_current_window->buffer->input_buffer_pos);
+ if (gui_current_window->buffer->completion.position >= 0)
+ gui_current_window->buffer->completion.position += strlen (cfg_look_completor);
+ gui_current_window->buffer->input_buffer_pos += strlen (cfg_look_completor);
+ if (gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] != ' ')
+ gui_input_insert_string (" ",
+ gui_current_window->buffer->input_buffer_pos);
+ if (gui_current_window->buffer->completion.position >= 0)
+ gui_current_window->buffer->completion.position++;
+ gui_current_window->buffer->input_buffer_pos++;
+ }
+ }
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+ }
+}
+
+/*
+ * gui_input_backspace: backspace key
*/
void
-gui_delete_previous_word (t_gui_buffer *buffer)
+gui_input_backspace ()
+{
+ int i;
+
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos > 0)
+ {
+ i = gui_current_window->buffer->input_buffer_pos-1;
+ while (gui_current_window->buffer->input_buffer[i])
+ {
+ gui_current_window->buffer->input_buffer[i] =
+ gui_current_window->buffer->input_buffer[i+1];
+ i++;
+ }
+ gui_current_window->buffer->input_buffer_size--;
+ gui_current_window->buffer->input_buffer_pos--;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+ }
+ }
+}
+
+/*
+ * gui_input_delete: delete key
+ */
+
+void
+gui_input_delete ()
+{
+ int i;
+
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos <
+ gui_current_window->buffer->input_buffer_size)
+ {
+ i = gui_current_window->buffer->input_buffer_pos;
+ while (gui_current_window->buffer->input_buffer[i])
+ {
+ gui_current_window->buffer->input_buffer[i] =
+ gui_current_window->buffer->input_buffer[i+1];
+ i++;
+ }
+ gui_current_window->buffer->input_buffer_size--;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+ }
+ }
+}
+
+/*
+ * gui_input_delete_previous_word: delete previous word
+ */
+
+void
+gui_input_delete_previous_word ()
{
int i, j, num_char_deleted, num_char_end;
- if (buffer->input_buffer_pos > 0)
+ if (gui_current_window->buffer->input_buffer_pos > 0)
{
- i = buffer->input_buffer_pos - 1;
+ i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
- (buffer->input_buffer[i] == ' '))
+ (gui_current_window->buffer->input_buffer[i] == ' '))
i--;
if (i >= 0)
{
while ((i >= 0) &&
- (buffer->input_buffer[i] != ' '))
+ (gui_current_window->buffer->input_buffer[i] != ' '))
i--;
if (i >= 0)
{
while ((i >= 0) &&
- (buffer->input_buffer[i] == ' '))
+ (gui_current_window->buffer->input_buffer[i] == ' '))
i--;
}
}
@@ -601,110 +918,554 @@ gui_delete_previous_word (t_gui_buffer *buffer)
if (i >= 0)
i++;
i++;
- num_char_deleted = buffer->input_buffer_pos - i;
- num_char_end = buffer->input_buffer_size -
- buffer->input_buffer_pos;
+ num_char_deleted = gui_current_window->buffer->input_buffer_pos - i;
+ num_char_end = gui_current_window->buffer->input_buffer_size -
+ gui_current_window->buffer->input_buffer_pos;
for (j = 0; j < num_char_end; j++)
- buffer->input_buffer[i + j] =
- buffer->input_buffer[buffer->input_buffer_pos + j];
+ gui_current_window->buffer->input_buffer[i + j] =
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos + j];
- buffer->input_buffer_size -= num_char_deleted;
- buffer->input_buffer[buffer->input_buffer_size] = '\0';
- buffer->input_buffer_pos = i;
- gui_draw_buffer_input (buffer, 0);
- gui_optimize_input_buffer_size (buffer);
- buffer->completion.position = -1;
+ gui_current_window->buffer->input_buffer_size -= num_char_deleted;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_current_window->buffer->input_buffer_pos = i;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+ }
+}
+
+/*
+ * gui_input_delete_next_word: delete next word
+ */
+
+void
+gui_input_delete_next_word ()
+{
+ int i, j, num_char_deleted;
+
+ i = gui_current_window->buffer->input_buffer_pos;
+ while (i < gui_current_window->buffer->input_buffer_size)
+ {
+ if ((gui_current_window->buffer->input_buffer[i] == ' ')
+ && i != gui_current_window->buffer->input_buffer_pos)
+ break;
+ i++;
+ }
+ num_char_deleted = i - gui_current_window->buffer->input_buffer_pos;
+
+ for (j = i; j < gui_current_window->buffer->input_buffer_size; j++)
+ gui_current_window->buffer->input_buffer[j - num_char_deleted] =
+ gui_current_window->buffer->input_buffer[j];
+
+ gui_current_window->buffer->input_buffer_size -= num_char_deleted;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+}
+
+/*
+ * gui_input_delete_begin_of_line: delete all from cursor pos to beginning of line
+ */
+
+void
+gui_input_delete_begin_of_line ()
+{
+ int i;
+
+ for (i = gui_current_window->buffer->input_buffer_pos;
+ i < gui_current_window->buffer->input_buffer_size; i++)
+ gui_current_window->buffer->input_buffer[i - gui_current_window->buffer->input_buffer_pos] =
+ gui_current_window->buffer->input_buffer[i];
+
+ gui_current_window->buffer->input_buffer_size -=
+ gui_current_window->buffer->input_buffer_pos;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_current_window->buffer->input_buffer_pos = 0;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+}
+
+/*
+ * gui_input_delete_end_of_line: delete all from cursor pos to end of line
+ */
+
+void
+gui_input_delete_end_of_line ()
+{
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' ';
+ gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+}
+
+/*
+ * gui_input_delete_line: delete entire line
+ */
+
+void
+gui_input_delete_line ()
+{
+ gui_current_window->buffer->input_buffer[0] = '\0';
+ gui_current_window->buffer->input_buffer_size = 0;
+ gui_current_window->buffer->input_buffer_pos = 0;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+}
+
+/*
+ * gui_input_home: home key
+ */
+
+void
+gui_input_home ()
+{
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos > 0)
+ {
+ gui_current_window->buffer->input_buffer_pos = 0;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+ }
+}
+
+/*
+ * gui_input_end: end key
+ */
+
+void
+gui_input_end ()
+{
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos <
+ gui_current_window->buffer->input_buffer_size)
+ {
+ gui_current_window->buffer->input_buffer_pos =
+ gui_current_window->buffer->input_buffer_size;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+ }
+}
+
+/*
+ * gui_input_left: move to previous char
+ */
+
+void
+gui_input_left ()
+{
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos > 0)
+ {
+ gui_current_window->buffer->input_buffer_pos--;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
}
}
/*
- * gui_move_previous_word: move to beginning of previous word
+ * gui_input_previous_word: move to beginning of previous word
*/
void
-gui_move_previous_word (t_gui_buffer *buffer)
+gui_input_previous_word ()
{
int i;
- if (buffer->input_buffer_pos > 0)
+ if (gui_current_window->buffer->input_buffer_pos > 0)
{
- i = buffer->input_buffer_pos - 1;
+ i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
- (buffer->input_buffer[i] == ' '))
+ (gui_current_window->buffer->input_buffer[i] == ' '))
i--;
if (i < 0)
- buffer->input_buffer_pos = 0;
+ gui_current_window->buffer->input_buffer_pos = 0;
else
{
while ((i >= 0) &&
- (buffer->input_buffer[i] != ' '))
+ (gui_current_window->buffer->input_buffer[i] != ' '))
i--;
- buffer->input_buffer_pos = i + 1;
+ gui_current_window->buffer->input_buffer_pos = i + 1;
+ }
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+}
+
+/*
+ * gui_input_right: move to previous char
+ */
+
+void
+gui_input_right ()
+{
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos <
+ gui_current_window->buffer->input_buffer_size)
+ {
+ gui_current_window->buffer->input_buffer_pos++;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
}
- gui_draw_buffer_input (buffer, 0);
}
}
/*
- * gui_move_next_word: move to the end of next
+ * gui_input_next_word: move to the end of next
*/
void
-gui_move_next_word (t_gui_buffer *buffer)
+gui_input_next_word ()
{
int i;
- if (buffer->input_buffer_pos <
- buffer->input_buffer_size + 1)
+ if (gui_current_window->buffer->input_buffer_pos <
+ gui_current_window->buffer->input_buffer_size + 1)
{
- i = buffer->input_buffer_pos;
- while ((i <= buffer->input_buffer_size) &&
- (buffer->input_buffer[i] == ' '))
+ i = gui_current_window->buffer->input_buffer_pos;
+ while ((i <= gui_current_window->buffer->input_buffer_size) &&
+ (gui_current_window->buffer->input_buffer[i] == ' '))
i++;
- if (i > buffer->input_buffer_size)
- buffer->input_buffer_pos = i - 1;
+ if (i > gui_current_window->buffer->input_buffer_size)
+ gui_current_window->buffer->input_buffer_pos = i - 1;
else
{
- while ((i <= buffer->input_buffer_size) &&
- (buffer->input_buffer[i] != ' '))
+ while ((i <= gui_current_window->buffer->input_buffer_size) &&
+ (gui_current_window->buffer->input_buffer[i] != ' '))
i++;
- if (i > buffer->input_buffer_size)
- buffer->input_buffer_pos =
- buffer->input_buffer_size;
+ if (i > gui_current_window->buffer->input_buffer_size)
+ gui_current_window->buffer->input_buffer_pos =
+ gui_current_window->buffer->input_buffer_size;
else
- buffer->input_buffer_pos = i;
+ gui_current_window->buffer->input_buffer_pos = i;
}
- gui_draw_buffer_input (buffer, 0);
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
}
}
/*
- * gui_buffer_insert_string: insert a string into the input buffer
+ * gui_input_up: recall last command or move to previous DCC in list
*/
void
-gui_buffer_insert_string (t_gui_buffer *buffer, char *string, int pos)
+gui_input_up ()
{
- int i, start, end, length;
+ if (gui_current_window->buffer->dcc)
+ {
+ if (dcc_list)
+ {
+ if (gui_current_window->dcc_selected
+ && ((t_irc_dcc *)(gui_current_window->dcc_selected))->prev_dcc)
+ {
+ if (gui_current_window->dcc_selected ==
+ gui_current_window->dcc_first)
+ gui_current_window->dcc_first =
+ ((t_irc_dcc *)(gui_current_window->dcc_first))->prev_dcc;
+ gui_current_window->dcc_selected =
+ ((t_irc_dcc *)(gui_current_window->dcc_selected))->prev_dcc;
+ gui_draw_buffer_chat (gui_current_window->buffer, 1);
+ gui_draw_buffer_input (gui_current_window->buffer, 1);
+ }
+ }
+ }
+ else
+ {
+ if (gui_current_window->buffer->ptr_history)
+ {
+ gui_current_window->buffer->ptr_history =
+ gui_current_window->buffer->ptr_history->next_history;
+ if (!gui_current_window->buffer->ptr_history)
+ gui_current_window->buffer->ptr_history =
+ gui_current_window->buffer->history;
+ }
+ else
+ gui_current_window->buffer->ptr_history =
+ gui_current_window->buffer->history;
+ if (gui_current_window->buffer->ptr_history)
+ {
+ gui_current_window->buffer->input_buffer_size =
+ strlen (gui_current_window->buffer->ptr_history->text);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->input_buffer_pos =
+ gui_current_window->buffer->input_buffer_size;
+ strcpy (gui_current_window->buffer->input_buffer,
+ gui_current_window->buffer->ptr_history->text);
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+ }
+}
+
+/*
+ * gui_input_down: recall next command or move to next DCC in list
+ */
+
+void
+gui_input_down ()
+{
+ if (gui_current_window->buffer->dcc)
+ {
+ if (dcc_list)
+ {
+ if (!gui_current_window->dcc_selected
+ || ((t_irc_dcc *)(gui_current_window->dcc_selected))->next_dcc)
+ {
+ if (gui_current_window->dcc_last_displayed
+ && (gui_current_window->dcc_selected ==
+ gui_current_window->dcc_last_displayed))
+ {
+ if (gui_current_window->dcc_first)
+ gui_current_window->dcc_first =
+ ((t_irc_dcc *)(gui_current_window->dcc_first))->next_dcc;
+ else
+ gui_current_window->dcc_first =
+ dcc_list->next_dcc;
+ }
+ if (gui_current_window->dcc_selected)
+ gui_current_window->dcc_selected =
+ ((t_irc_dcc *)(gui_current_window->dcc_selected))->next_dcc;
+ else
+ gui_current_window->dcc_selected =
+ dcc_list->next_dcc;
+ gui_draw_buffer_chat (gui_current_window->buffer, 1);
+ gui_draw_buffer_input (gui_current_window->buffer, 1);
+ }
+ }
+ }
+ else
+ {
+ if (gui_current_window->buffer->ptr_history)
+ {
+ gui_current_window->buffer->ptr_history =
+ gui_current_window->buffer->ptr_history->prev_history;
+ if (gui_current_window->buffer->ptr_history)
+ gui_current_window->buffer->input_buffer_size =
+ strlen (gui_current_window->buffer->ptr_history->text);
+ else
+ gui_current_window->buffer->input_buffer_size = 0;
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->input_buffer_pos =
+ gui_current_window->buffer->input_buffer_size;
+ if (gui_current_window->buffer->ptr_history)
+ strcpy (gui_current_window->buffer->input_buffer,
+ gui_current_window->buffer->ptr_history->text);
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+ }
+}
+
+/*
+ * gui_input_jump_smart: jump to buffer with activity (alt-A by default)
+ */
+
+void
+gui_input_jump_smart ()
+{
+ if (hotlist)
+ {
+ if (!hotlist_initial_buffer)
+ hotlist_initial_buffer = gui_current_window->buffer;
+ gui_switch_to_buffer (gui_current_window, hotlist->buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ else
+ {
+ if (hotlist_initial_buffer)
+ {
+ gui_switch_to_buffer (gui_current_window, hotlist_initial_buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
+ hotlist_initial_buffer = NULL;
+ }
+ }
+}
+
+/*
+ * gui_input_jump_dcc: jump to DCC buffer
+ */
+
+void
+gui_input_jump_dcc ()
+{
+ if (gui_current_window->buffer->dcc)
+ {
+ if (buffer_before_dcc)
+ {
+ gui_switch_to_buffer (gui_current_window,
+ buffer_before_dcc);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ }
+ else
+ {
+ buffer_before_dcc = gui_current_window->buffer;
+ gui_switch_to_dcc_buffer ();
+ }
+}
+
+/*
+ * gui_input_jump_server: jump to server buffer
+ */
+
+void
+gui_input_jump_server ()
+{
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (SERVER(gui_current_window->buffer)->buffer !=
+ gui_current_window->buffer)
+ {
+ gui_switch_to_buffer (gui_current_window,
+ SERVER(gui_current_window->buffer)->buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ }
+}
+
+/*
+ * gui_input_jump_next_server: jump to next server
+ */
+
+void
+gui_input_jump_next_server ()
+{
+ t_irc_server *ptr_server;
+ t_gui_buffer *ptr_buffer;
- length = strlen (string);
+ if (!gui_current_window->buffer->dcc)
+ {
+ ptr_server = SERVER(gui_current_window->buffer)->next_server;
+ if (!ptr_server)
+ ptr_server = irc_servers;
+ while (ptr_server != SERVER(gui_current_window->buffer))
+ {
+ if (ptr_server->buffer)
+ break;
+ ptr_server = (ptr_server->next_server) ?
+ ptr_server->next_server : irc_servers;
+ }
+ if (ptr_server != SERVER(gui_current_window->buffer))
+ {
+ ptr_buffer = (ptr_server->channels) ?
+ ptr_server->channels->buffer : ptr_server->buffer;
+ gui_switch_to_buffer (gui_current_window, ptr_buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ }
+}
+
+/*
+ * gui_input_hotlist_clear: clear hotlist
+ */
+
+void
+gui_input_hotlist_clear ()
+{
+ if (hotlist)
+ {
+ hotlist_free_all ();
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ hotlist_initial_buffer = gui_current_window->buffer;
+}
+
+/*
+ * gui_input_infobar_clear: clear infobar
+ */
+
+void
+gui_input_infobar_clear ()
+{
+ gui_infobar_remove ();
+ gui_draw_buffer_infobar (gui_current_window->buffer, 1);
+}
+
+/*
+ * gui_switch_to_previous_buffer: switch to previous buffer
+ */
+
+void
+gui_switch_to_previous_buffer ()
+{
+ if (!gui_ok)
+ return;
- /* increase buffer size */
- buffer->input_buffer_size += length;
- gui_optimize_input_buffer_size (buffer);
- buffer->input_buffer[buffer->input_buffer_size] = '\0';
+ /* if only one buffer then return */
+ if (gui_buffers == last_gui_buffer)
+ return;
- /* move end of string to the right */
- start = pos + length;
- end = buffer->input_buffer_size - 1;
- for (i = end; i >= start; i--)
- buffer->input_buffer[i] =
- buffer->input_buffer[i - length];
+ if (gui_current_window->buffer->prev_buffer)
+ gui_switch_to_buffer (gui_current_window, gui_current_window->buffer->prev_buffer);
+ else
+ gui_switch_to_buffer (gui_current_window, last_gui_buffer);
- /* insert new string */
- strncpy (buffer->input_buffer + pos, string, length);
+ gui_redraw_buffer (gui_current_window->buffer);
+}
+
+/*
+ * gui_switch_to_next_buffer: switch to next buffer
+ */
+
+void
+gui_switch_to_next_buffer ()
+{
+ if (!gui_ok)
+ return;
+
+ /* if only one buffer then return */
+ if (gui_buffers == last_gui_buffer)
+ return;
+
+ if (gui_current_window->buffer->next_buffer)
+ gui_switch_to_buffer (gui_current_window, gui_current_window->buffer->next_buffer);
+ else
+ gui_switch_to_buffer (gui_current_window, gui_buffers);
+
+ gui_redraw_buffer (gui_current_window->buffer);
+}
+
+/*
+ * gui_switch_to_previous_window: switch to previous window
+ */
+
+void
+gui_switch_to_previous_window ()
+{
+ if (!gui_ok)
+ return;
+
+ /* if only one window then return */
+ if (gui_windows == last_gui_window)
+ return;
+
+ gui_current_window = (gui_current_window->prev_window) ? gui_current_window->prev_window : last_gui_window;
+ gui_switch_to_buffer (gui_current_window, gui_current_window->buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
+}
+
+/*
+ * gui_switch_to_next_window: switch to next window
+ */
+
+void
+gui_switch_to_next_window ()
+{
+ if (!gui_ok)
+ return;
+
+ /* if only one window then return */
+ if (gui_windows == last_gui_window)
+ return;
+
+ gui_current_window = (gui_current_window->next_window) ? gui_current_window->next_window : gui_windows;
+ gui_switch_to_buffer (gui_current_window, gui_current_window->buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
}
/*
@@ -716,6 +1477,10 @@ gui_switch_to_buffer_by_number (t_gui_window *window, int number)
{
t_gui_buffer *ptr_buffer;
+ /* invalid buffer */
+ if (number < 0)
+ return NULL;
+
/* buffer is currently displayed ? */
if (number == window->buffer->number)
return window->buffer;
diff --git a/src/gui/gui-keyboard.c b/src/gui/gui-keyboard.c
new file mode 100644
index 000000000..79bc44c79
--- /dev/null
+++ b/src/gui/gui-keyboard.c
@@ -0,0 +1,528 @@
+/*
+ * 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
+ */
+
+/* gui-keyboard: keyboard functions (GUI independant) */
+
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#include "../common/weechat.h"
+#include "gui.h"
+#include "../common/command.h"
+
+
+t_gui_key *gui_keys = NULL;
+t_gui_key *last_gui_key = NULL;
+
+char gui_key_buffer[128];
+
+t_gui_key_function gui_key_functions[] =
+{ { "return", gui_input_return,
+ N_("terminate line") },
+ { "tab", gui_input_tab,
+ N_("complete word") },
+ { "backspace", gui_input_backspace,
+ N_("delete previous char") },
+ { "delete", gui_input_delete,
+ N_("delete next char") },
+ { "delete_end_line", gui_input_delete_end_of_line,
+ N_("delete until end of line") },
+ { "delete_beginning_line", gui_input_delete_begin_of_line,
+ N_("delete until beginning of line") },
+ { "delete_line", gui_input_delete_line,
+ N_("delete entire line") },
+ { "delete_previous_word", gui_input_delete_previous_word,
+ N_("delete previous word") },
+ { "delete_next_word", gui_input_delete_next_word,
+ N_("delete next word") },
+ { "home", gui_input_home,
+ N_("go to beginning of line") },
+ { "end", gui_input_end,
+ N_("go to end of line") },
+ { "left", gui_input_left,
+ N_("move one char left") },
+ { "previous_word", gui_input_previous_word,
+ N_("move to previous word") },
+ { "right", gui_input_right,
+ N_("move one char right") },
+ { "next_word", gui_input_next_word,
+ N_("move to next word") },
+ { "up", gui_input_up,
+ N_("call previous command in history") },
+ { "down", gui_input_down,
+ N_("call next command in history") },
+ { "page_up", gui_input_page_up,
+ N_("scroll one page up") },
+ { "page_down", gui_input_page_down,
+ N_("scroll one page down") },
+ { "infobar_clear", gui_input_infobar_clear,
+ N_("clear infobar") },
+ { "nick_page_up", gui_input_nick_page_up,
+ N_("scroll nicklist one page up") },
+ { "nick_page_down", gui_input_nick_page_down,
+ N_("scroll nicklist one page down") },
+ { "nick_beginning", gui_input_nick_beginning,
+ N_("display beginning of nicklist") },
+ { "nick_end", gui_input_nick_end,
+ N_("display end of nicklist") },
+ { "refresh", gui_curses_resize_handler,
+ N_("refresh screen") },
+ { "jump_smart", gui_input_jump_smart,
+ N_("jump to buffer with activity") },
+ { "jump_dcc", gui_input_jump_dcc,
+ N_("jump to DCC buffer") },
+ { "jump_server", gui_input_jump_server,
+ N_("jump to server buffer") },
+ { "jump_next_server", gui_input_jump_next_server,
+ N_("jump to next server") },
+ { "hotlist_clear", gui_input_hotlist_clear,
+ N_("clear hotlist") },
+ { NULL, NULL, NULL }
+};
+
+
+/*
+ * gui_key_init: init keyboard (create default key bindings)
+ */
+
+void
+gui_key_init ()
+{
+ gui_key_buffer[0] = '\0';
+
+ gui_input_default_key_bindings ();
+}
+
+/*
+ * gui_key_get_internal_code: get internal code from user key name
+ * for example: return "^R" for "ctrl-R"
+ */
+
+char *
+gui_key_get_internal_code (char *key)
+{
+ char *result;
+
+ if ((result = (char *) malloc (strlen (key) + 1)))
+ {
+ result[0] = '\0';
+ while (key[0])
+ {
+ if (strncasecmp (key, "meta2-", 6) == 0)
+ {
+ strcat (result, "^[[");
+ key += 6;
+ }
+ if (strncasecmp (key, "meta-", 5) == 0)
+ {
+ strcat (result, "^[");
+ key += 5;
+ }
+ else if (strncasecmp (key, "ctrl-", 5) == 0)
+ {
+ strcat (result, "^");
+ key += 5;
+ }
+ else
+ {
+ strncat (result, key, 1);
+ key++;
+ }
+ }
+ }
+ else
+ return NULL;
+
+ return result;
+}
+
+/*
+ * gui_key_get_expanded_name: get expanded name from internal key code
+ * for example: return "ctrl-R" for "^R"
+ */
+
+char *
+gui_key_get_expanded_name (char *key)
+{
+ char *result;
+
+ if ((result = (char *) malloc ((strlen (key) * 5) + 1)))
+ {
+ result[0] = '\0';
+ while (key[0])
+ {
+ if (strncasecmp (key, "^[[", 3) == 0)
+ {
+ strcat (result, "meta2-");
+ key += 3;
+ }
+ if (strncasecmp (key, "^[", 2) == 0)
+ {
+ strcat (result, "meta-");
+ key += 2;
+ }
+ else if (key[0] == '^')
+ {
+ strcat (result, "ctrl-");
+ key++;
+ }
+ else
+ {
+ strncat (result, key, 1);
+ key++;
+ }
+ }
+ }
+ else
+ return NULL;
+
+ return result;
+}
+
+/*
+ * gui_key_find_pos: find position for a key (for sorting keys list)
+ */
+
+t_gui_key *
+gui_key_find_pos (t_gui_key *key)
+{
+ t_gui_key *ptr_key;
+
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ if (strcasecmp (key->key, ptr_key->key) < 0)
+ return ptr_key;
+ }
+ return NULL;
+}
+
+/*
+ * gui_key_insert_sorted: insert key into sorted list
+ */
+
+void
+gui_key_insert_sorted (t_gui_key *key)
+{
+ t_gui_key *pos_key;
+
+ if (gui_keys)
+ {
+ pos_key = gui_key_find_pos (key);
+
+ if (pos_key)
+ {
+ /* insert key into the list (before key found) */
+ key->prev_key = pos_key->prev_key;
+ key->next_key = pos_key;
+ if (pos_key->prev_key)
+ pos_key->prev_key->next_key = key;
+ else
+ gui_keys = key;
+ pos_key->prev_key = key;
+ }
+ else
+ {
+ /* add key to the end */
+ key->prev_key = last_gui_key;
+ key->next_key = NULL;
+ last_gui_key->next_key = key;
+ last_gui_key = key;
+ }
+ }
+ else
+ {
+ key->prev_key = NULL;
+ key->next_key = NULL;
+ gui_keys = key;
+ last_gui_key = key;
+ }
+}
+
+/*
+ * gui_key_new: add a new key in keys list
+ */
+
+t_gui_key *
+gui_key_new (char *key, char *command, void *function)
+{
+ t_gui_key *new_key;
+ char *internal_code;
+
+ if ((new_key = (t_gui_key *) malloc (sizeof (t_gui_key))))
+ {
+ internal_code = gui_key_get_internal_code (key);
+ new_key->key = (internal_code) ? strdup (internal_code) : strdup (key);
+ if (internal_code)
+ free (internal_code);
+ new_key->command = (command) ? strdup (command) : NULL;
+ new_key->function = function;
+ gui_key_insert_sorted (new_key);
+ }
+ else
+ return NULL;
+
+ return new_key;
+}
+
+/*
+ * gui_key_search: search a key
+ */
+
+t_gui_key *
+gui_key_search (char *key)
+{
+ t_gui_key *ptr_key;
+
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ if (strcasecmp (ptr_key->key, key) == 0)
+ return ptr_key;
+ }
+
+ /* key not found */
+ return NULL;
+}
+
+/*
+ * gui_key_cmp: compares 2 keys
+ */
+
+int
+gui_key_cmp (char *key, char *search)
+{
+ while (search[0])
+ {
+ if (toupper(key[0]) != toupper(search[0]))
+ return search[0] - key[0];
+ key++;
+ search++;
+ }
+
+ return 0;
+}
+
+/*
+ * gui_key_search_part: search a key (maybe part of string)
+ */
+
+t_gui_key *
+gui_key_search_part (char *key)
+{
+ t_gui_key *ptr_key;
+
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ if (gui_key_cmp (ptr_key->key, key) == 0)
+ return ptr_key;
+ }
+
+ /* key not found */
+ return NULL;
+}
+
+/*
+ * gui_key_function_search_by_name: search a function by name
+ */
+
+void *
+gui_key_function_search_by_name (char *name)
+{
+ int i;
+
+ i = 0;
+ while (gui_key_functions[i].function_name)
+ {
+ if (strcasecmp (gui_key_functions[i].function_name, name) == 0)
+ return gui_key_functions[i].function;
+ i++;
+ }
+
+ /* function not found */
+ return NULL;
+}
+
+/*
+ * gui_key_function_search_by_ptr: search a function by pointer
+ */
+
+char *
+gui_key_function_search_by_ptr (void *function)
+{
+ int i;
+
+ i = 0;
+ while (gui_key_functions[i].function_name)
+ {
+ if (gui_key_functions[i].function == function)
+ return gui_key_functions[i].function_name;
+ i++;
+ }
+
+ /* function not found */
+ return NULL;
+}
+
+/*
+ * gui_key_bind: bind a key to a function (command or special function)
+ */
+
+t_gui_key *
+gui_key_bind (char *key, char *command)
+{
+ t_gui_key_function *ptr_function;
+ t_gui_key *new_key;
+
+ if (!key || !command)
+ {
+ wee_log_printf (_("%s unable to bind key \"%s\"\n"),
+ WEECHAT_ERROR, key);
+ return NULL;
+ }
+
+ ptr_function = NULL;
+ if (command[0] != '/')
+ {
+ ptr_function = gui_key_function_search_by_name (command);
+ if (!ptr_function)
+ {
+ wee_log_printf (_("%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"),
+ WEECHAT_ERROR, key, command);
+ return NULL;
+ }
+ }
+
+ gui_key_unbind (key);
+
+ new_key = gui_key_new (key,
+ (ptr_function) ? NULL : command,
+ ptr_function);
+ if (!new_key)
+ {
+ wee_log_printf (_("%s not enough memory for key binding\n"),
+ WEECHAT_ERROR);
+ return NULL;
+ }
+
+ return new_key;
+}
+
+/*
+ * gui_key_unbind: remove a key binding
+ */
+
+int
+gui_key_unbind (char *key)
+{
+ t_gui_key *ptr_key;
+ char *internal_code;
+
+ internal_code = gui_key_get_internal_code (key);
+
+ ptr_key = gui_key_search ((internal_code) ? internal_code : key);
+ if (ptr_key)
+ gui_key_free (ptr_key);
+
+ if (internal_code)
+ free (internal_code);
+
+ return (ptr_key != NULL);
+}
+
+/*
+ * gui_key_pressed: treat new key pressed
+ * return: 1 if key should be added to input buffer
+ * 0 otherwise
+ */
+
+int
+gui_key_pressed (char *key_str)
+{
+ int first_key;
+ t_gui_key *ptr_key;
+
+ first_key = (gui_key_buffer[0] == '\0');
+ strcat (gui_key_buffer, key_str);
+ ptr_key = gui_key_search_part (gui_key_buffer);
+ if (ptr_key)
+ {
+ if (strcasecmp (ptr_key->key, gui_key_buffer) == 0)
+ {
+ /* exact combo found => execute function or command */
+ gui_key_buffer[0] = '\0';
+ if (ptr_key->command)
+ user_command (SERVER(gui_current_window->buffer),
+ gui_current_window->buffer,
+ ptr_key->command);
+ else
+ (void)(ptr_key->function)();
+ }
+ //else
+ // gui_printf (gui_current_window->buffer, "partial key found\n");
+ return 0;
+ }
+
+ gui_key_buffer[0] = '\0';
+
+ /* if this is first key and not found (even partial) => return 1
+ else return 0 (= silently discard sequence of bad keys) */
+ return first_key;
+}
+
+/*
+ * key_free: delete a key binding
+ */
+
+void
+gui_key_free (t_gui_key *key)
+{
+ /* free memory */
+ if (key->key)
+ free (key->key);
+ if (key->command)
+ free (key->command);
+
+ /* remove key from keys list */
+ if (key->prev_key)
+ key->prev_key->next_key = key->next_key;
+ if (key->next_key)
+ key->next_key->prev_key = key->prev_key;
+ if (gui_keys == key)
+ gui_keys = key->next_key;
+ if (last_gui_key == key)
+ last_gui_key = key->prev_key;
+
+ free (key);
+}
+
+/*
+ * gui_key_free_all: delete all key bindings
+ */
+
+void
+gui_key_free_all ()
+{
+ while (gui_keys)
+ gui_key_free (gui_keys);
+}
diff --git a/src/gui/gui.h b/src/gui/gui.h
index 63d5ab50c..ec1dc8bae 100644
--- a/src/gui/gui.h
+++ b/src/gui/gui.h
@@ -26,7 +26,7 @@
#define INPUT_BUFFER_BLOCK_SIZE 256
-#define NUM_COLORS 50
+#define NUM_COLORS 51
#define COLOR_WIN_TITLE 1
#define COLOR_WIN_CHAT 2
#define COLOR_WIN_CHAT_TIME 3
@@ -45,31 +45,32 @@
#define COLOR_WIN_STATUS_DATA_OTHER 16
#define COLOR_WIN_STATUS_MORE 17
#define COLOR_WIN_INFOBAR 18
-#define COLOR_WIN_INFOBAR_HIGHLIGHT 19
-#define COLOR_WIN_INPUT 20
-#define COLOR_WIN_INPUT_CHANNEL 21
-#define COLOR_WIN_INPUT_NICK 22
-#define COLOR_WIN_NICK 23
-#define COLOR_WIN_NICK_AWAY 24
-#define COLOR_WIN_NICK_CHANOWNER 25
-#define COLOR_WIN_NICK_CHANADMIN 26
-#define COLOR_WIN_NICK_OP 27
-#define COLOR_WIN_NICK_HALFOP 28
-#define COLOR_WIN_NICK_VOICE 29
-#define COLOR_WIN_NICK_MORE 30
-#define COLOR_WIN_NICK_SEP 31
-#define COLOR_WIN_NICK_SELF 32
-#define COLOR_WIN_NICK_PRIVATE 33
-#define COLOR_WIN_NICK_FIRST 34
-#define COLOR_WIN_NICK_LAST 43
+#define COLOR_WIN_INFOBAR_DELIMITERS 19
+#define COLOR_WIN_INFOBAR_HIGHLIGHT 20
+#define COLOR_WIN_INPUT 21
+#define COLOR_WIN_INPUT_CHANNEL 22
+#define COLOR_WIN_INPUT_NICK 23
+#define COLOR_WIN_NICK 24
+#define COLOR_WIN_NICK_AWAY 25
+#define COLOR_WIN_NICK_CHANOWNER 26
+#define COLOR_WIN_NICK_CHANADMIN 27
+#define COLOR_WIN_NICK_OP 28
+#define COLOR_WIN_NICK_HALFOP 29
+#define COLOR_WIN_NICK_VOICE 30
+#define COLOR_WIN_NICK_MORE 31
+#define COLOR_WIN_NICK_SEP 32
+#define COLOR_WIN_NICK_SELF 33
+#define COLOR_WIN_NICK_PRIVATE 34
+#define COLOR_WIN_NICK_FIRST 35
+#define COLOR_WIN_NICK_LAST 44
#define COLOR_WIN_NICK_NUMBER (COLOR_WIN_NICK_LAST - COLOR_WIN_NICK_FIRST + 1)
-#define COLOR_DCC_SELECTED 44
-#define COLOR_DCC_WAITING 45
-#define COLOR_DCC_CONNECTING 46
-#define COLOR_DCC_ACTIVE 47
-#define COLOR_DCC_DONE 48
-#define COLOR_DCC_FAILED 49
-#define COLOR_DCC_ABORTED 50
+#define COLOR_DCC_SELECTED 45
+#define COLOR_DCC_WAITING 46
+#define COLOR_DCC_CONNECTING 47
+#define COLOR_DCC_ACTIVE 48
+#define COLOR_DCC_DONE 49
+#define COLOR_DCC_FAILED 40
+#define COLOR_DCC_ABORTED 51
#define SERVER(buffer) ((t_irc_server *)(buffer->server))
#define CHANNEL(buffer) ((t_irc_channel *)(buffer->channel))
@@ -219,6 +220,9 @@ struct t_gui_window
int win_nick_height; /* height of nick window */
int win_nick_start; /* # of 1st nick for display (scroll) */
+ /* input window settings */
+ int win_input_x; /* position of cursor in input window */
+
/* windows for Curses GUI */
void *win_title; /* title window */
void *win_chat; /* chat window (example: channel) */
@@ -252,6 +256,26 @@ struct t_gui_window
t_gui_window *next_window; /* link to next window */
};
+typedef struct t_gui_key t_gui_key;
+
+struct t_gui_key
+{
+ char *key; /* key combo (ex: a, ^W, ^W^C, meta-a) */
+ char *command; /* associated command (may be NULL) */
+ void (*function)(); /* associated function (if cmd is NULL) */
+ t_gui_key *prev_key; /* link to previous key */
+ t_gui_key *next_key; /* link to next key */
+};
+
+typedef struct t_gui_key_function t_gui_key_function;
+
+struct t_gui_key_function
+{
+ char *function_name; /* name of function */
+ void (*function)(); /* associated function */
+ char *description; /* description of function */
+};
+
/* variables */
extern int gui_init_ok;
@@ -264,8 +288,11 @@ extern t_gui_buffer *gui_buffers;
extern t_gui_buffer *last_gui_buffer;
extern t_gui_buffer *buffer_before_dcc;
extern t_gui_infobar *gui_infobar;
+extern t_gui_key *gui_keys;
+extern t_gui_key *last_gui_key;
+extern t_gui_key_function gui_key_functions[];
-/* GUI independent functions */
+/* GUI independent functions: windows & buffers */
extern t_gui_window *gui_window_new (int, int, int, int);
extern t_gui_buffer *gui_buffer_new (t_gui_window *, void *, void *, int, int);
@@ -277,17 +304,53 @@ extern void gui_infobar_remove ();
extern void gui_buffer_free (t_gui_buffer *, int);
extern t_gui_line *gui_new_line (t_gui_buffer *);
extern t_gui_message *gui_new_message (t_gui_buffer *);
-extern void gui_optimize_input_buffer_size (t_gui_buffer *);
-extern void gui_delete_previous_word (t_gui_buffer *);
-extern void gui_move_previous_word (t_gui_buffer *);
-extern void gui_move_next_word (t_gui_buffer *);
-extern void gui_buffer_insert_string (t_gui_buffer *, char *, int);
+extern void gui_input_insert_char ();
+extern void gui_input_return ();
+extern void gui_input_tab ();
+extern void gui_input_backspace ();
+extern void gui_input_delete ();
+extern void gui_input_delete_previous_word ();
+extern void gui_input_delete_next_word ();
+extern void gui_input_delete_begin_of_line ();
+extern void gui_input_delete_end_of_line ();
+extern void gui_input_delete_line ();
+extern void gui_input_home ();
+extern void gui_input_end ();
+extern void gui_input_left ();
+extern void gui_input_previous_word ();
+extern void gui_input_right ();
+extern void gui_input_next_word ();
+extern void gui_input_up ();
+extern void gui_input_down ();
+extern void gui_input_jump_smart ();
+extern void gui_input_jump_dcc ();
+extern void gui_input_jump_server ();
+extern void gui_input_jump_next_server ();
+extern void gui_input_hotlist_clear ();
+extern void gui_input_infobar_clear ();
+extern void gui_switch_to_previous_buffer ();
+extern void gui_switch_to_next_buffer ();
+extern void gui_switch_to_previous_window ();
+extern void gui_switch_to_next_window ();
extern t_gui_buffer *gui_switch_to_buffer_by_number (t_gui_window *, int);
extern void gui_move_buffer_to_number (t_gui_window *, int);
extern void gui_window_print_log (t_gui_window *);
extern void gui_buffer_print_log (t_gui_buffer *);
-/* GUI dependant functions */
+/* GUI independent functions: keys */
+
+extern void gui_key_init ();
+extern char *gui_key_get_internal_code (char *);
+extern char *gui_key_get_expanded_name (char *);
+extern void *gui_key_function_search_by_name (char *);
+extern char *gui_key_function_search_by_ptr (void *);
+extern t_gui_key *gui_key_bind (char *, char *);
+extern int gui_key_unbind (char *);
+extern int gui_key_pressed (char *);
+extern void gui_key_free (t_gui_key *);
+extern void gui_key_free_all ();
+
+/* GUI dependant functions: display */
extern int gui_assign_color (int *, char *);
extern int gui_get_color_by_name (char *);
@@ -298,22 +361,19 @@ extern void gui_draw_buffer_title (t_gui_buffer *, int);
extern void gui_draw_buffer_chat (t_gui_buffer *, int);
extern void gui_draw_buffer_nick (t_gui_buffer *, int);
extern void gui_draw_buffer_status (t_gui_buffer *, int);
+extern void gui_draw_buffer_infobar_time (t_gui_buffer *);
extern void gui_draw_buffer_infobar (t_gui_buffer *, int);
extern void gui_draw_buffer_input (t_gui_buffer *, int);
extern void gui_redraw_buffer (t_gui_buffer *);
extern void gui_switch_to_buffer (t_gui_window *, t_gui_buffer *);
extern t_gui_buffer *gui_get_dcc_buffer ();
extern void gui_switch_to_dcc_buffer ();
-extern void gui_switch_to_previous_buffer (t_gui_window *);
-extern void gui_switch_to_next_buffer (t_gui_window *);
-extern void gui_switch_to_previous_window (t_gui_window *);
-extern void gui_switch_to_next_window (t_gui_window *);
-extern void gui_move_page_up (t_gui_window *);
-extern void gui_move_page_down (t_gui_window *);
-extern void gui_nick_move_beginning (t_gui_window *);
-extern void gui_nick_move_end (t_gui_window *);
-extern void gui_nick_move_page_up (t_gui_window *);
-extern void gui_nick_move_page_down (t_gui_window *);
+extern void gui_input_page_up ();
+extern void gui_input_page_down ();
+extern void gui_input_nick_beginning ();
+extern void gui_input_nick_end ();
+extern void gui_input_nick_page_up ();
+extern void gui_input_nick_page_down ();
extern void gui_curses_resize_handler ();
extern void gui_window_init_subwindows (t_gui_window *);
extern void gui_window_split_horiz (t_gui_window *);
@@ -330,6 +390,7 @@ extern void gui_set_window_title ();
extern void gui_init ();
extern void gui_end ();
extern void gui_printf_type_color (/*@null@*/ t_gui_buffer *, int, int, char *, ...);
+extern void gui_input_default_key_bindings ();
extern void gui_main_loop ();
#endif /* gui.h */
diff --git a/weechat/ChangeLog b/weechat/ChangeLog
index 181c9b373..199c53363 100644
--- a/weechat/ChangeLog
+++ b/weechat/ChangeLog
@@ -1,10 +1,14 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
-ChangeLog - 2005-07-06
+ChangeLog - 2005-07-09
Versoin 0.1.4 (under dev!):
+ * new keyboard management: keys are setup in config file, new command
+ /key was added and some new default keys were added
+ * added seconds in infobar time (optional thanks to new setting)
+ * fixed some curses refreshs
* channels auto-prefixed by "#" (if no prefix found) for /join command
Version 0.1.3 (2005-07-02):
diff --git a/weechat/po/es.po b/weechat/po/es.po
index 85ccfd4ca..7207bd263 100644
--- a/weechat/po/es.po
+++ b/weechat/po/es.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.4-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-07-02 18:30+0200\n"
-"PO-Revision-Date: 2005-07-02 20:21+0200\n"
+"POT-Creation-Date: 2005-07-09 17:25+0200\n"
+"PO-Revision-Date: 2005-07-09 14:35+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"
@@ -20,7 +20,7 @@ msgstr ""
msgid "%s cannot allocate new nick\n"
msgstr "%s no ha sido posible crear un nuevo nick\n"
-#: src/irc/irc-server.c:180 src/common/weeconfig.c:1625
+#: src/irc/irc-server.c:180 src/common/weeconfig.c:1677
msgid "Unable to get user's name"
msgstr "No ha sido posible obtener el nombre de usuario"
@@ -1299,7 +1299,7 @@ msgstr "no es posible cambiar el modo para el resto de usuarios"
msgid "whois (secure connection)"
msgstr ""
-#: src/irc/irc-display.c:156 src/common/command.c:842
+#: src/irc/irc-display.c:156 src/common/command.c:848
msgid "Server: "
msgstr "Servidor: "
@@ -1340,45 +1340,45 @@ msgstr "%s: utilización del nombre de máquina local \"%s\"\n"
#: src/irc/irc-send.c:232 src/irc/irc-send.c:260 src/irc/irc-send.c:426
#: src/irc/irc-send.c:452 src/irc/irc-send.c:478 src/irc/irc-send.c:519
-#: src/irc/irc-send.c:555 src/irc/irc-send.c:619 src/irc/irc-send.c:676
-#: src/irc/irc-send.c:1018 src/irc/irc-send.c:1116 src/irc/irc-send.c:1595
-#: src/irc/irc-send.c:1702
+#: src/irc/irc-send.c:555 src/irc/irc-send.c:622 src/irc/irc-send.c:679
+#: src/irc/irc-send.c:1021 src/irc/irc-send.c:1119 src/irc/irc-send.c:1598
+#: src/irc/irc-send.c:1705
#, c-format
msgid "%s \"%s\" command can only be executed in a channel window\n"
msgstr ""
"%s el comando \"%s\" sólo puede ser ejecutado en una ventana de canal\n"
#: 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:1621
-#: src/common/command.c:1167 src/common/command.c:1451
-#: src/common/command.c:1594
+#: src/irc/irc-send.c:999 src/irc/irc-send.c:1092 src/irc/irc-send.c:1624
+#: src/common/command.c:1189 src/common/command.c:1455
+#: src/common/command.c:1605 src/common/command.c:1748
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr "%s número de argumentos incorrecto para el comando \"%s\"\n"
-#: src/irc/irc-send.c:398 src/irc/irc-send.c:604 src/irc/irc-send.c:661
+#: src/irc/irc-send.c:398 src/irc/irc-send.c:607 src/irc/irc-send.c:664
#, c-format
msgid "%s wrong arguments for \"%s\" command\n"
msgstr "%s argumentos incorrecto para el comando \"%s\"\n"
-#: src/irc/irc-send.c:804 src/irc/irc-send.c:871 src/irc/irc-send.c:1164
-#: src/irc/irc-send.c:1178 src/irc/irc-send.c:1522
+#: src/irc/irc-send.c:807 src/irc/irc-send.c:874 src/irc/irc-send.c:1167
+#: src/irc/irc-send.c:1181 src/irc/irc-send.c:1525
#, c-format
msgid "%s \"%s\" command can not be executed on a server window\n"
msgstr ""
"%s el comando \"%s\" no puede ser ejecutado en una ventana de servidor\n"
-#: src/irc/irc-send.c:889 src/irc/irc-send.c:914 src/irc/irc-recv.c:322
+#: src/irc/irc-send.c:892 src/irc/irc-send.c:917 src/irc/irc-recv.c:322
#, c-format
msgid "%s nick \"%s\" not found for \"%s\" command\n"
msgstr "%s usuario \"%s\" no encontrado para el comando \"%s\"\n"
-#: src/irc/irc-send.c:966 src/irc/irc-send.c:1274 src/irc/irc-recv.c:1505
+#: src/irc/irc-send.c:969 src/irc/irc-send.c:1277 src/irc/irc-recv.c:1505
#, c-format
msgid "%s cannot create new private window \"%s\"\n"
msgstr "%s no es posible crear una nueva ventana privada \"%s\"\n"
-#: src/irc/irc-send.c:1674
+#: src/irc/irc-send.c:1677
#, c-format
msgid "%s, compiled on %s %s\n"
msgstr "%s, compilado en %s %s\n"
@@ -2089,66 +2089,65 @@ msgstr ""
"%s no ha sido posible añadir el manejador para el mensaje \"%s\" (memoria "
"insuficiente)\n"
-#: src/gui/curses/gui-input.c:788
+#: src/gui/curses/gui-input.c:298
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s el lag (retraso) es alto, desconectando del servidor...\n"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "bytes"
msgstr "bytes"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Kb"
msgstr "KB"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Mb"
msgstr "MB"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Gb"
msgstr "GB"
-#: src/gui/curses/gui-display.c:1122
+#: src/gui/curses/gui-display.c:1116
msgid "(away)"
msgstr "(ausente)"
-#: src/gui/curses/gui-display.c:1235
-#, c-format
-msgid "%d:[not connected] "
-msgstr "%d:[no conectado] "
+#: src/gui/curses/gui-display.c:1233
+msgid "[not connected]"
+msgstr "[no conectado]"
-#: src/gui/curses/gui-display.c:1252
+#: src/gui/curses/gui-display.c:1249
msgid "Act: "
msgstr "Act: "
-#: src/gui/curses/gui-display.c:1301
+#: src/gui/curses/gui-display.c:1298
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
-#: src/gui/curses/gui-display.c:1322
+#: src/gui/curses/gui-display.c:1319
msgid "-MORE-"
msgstr "-MÁS-"
-#: src/gui/curses/gui-display.c:1509
+#: src/gui/curses/gui-display.c:1559
msgid " [A] Accept"
msgstr " [A] Aceptar"
-#: src/gui/curses/gui-display.c:1510 src/gui/curses/gui-display.c:1514
+#: src/gui/curses/gui-display.c:1560 src/gui/curses/gui-display.c:1564
msgid " [C] Cancel"
msgstr " [C] Cancelar"
-#: src/gui/curses/gui-display.c:1519
+#: src/gui/curses/gui-display.c:1569
msgid " [R] Remove"
msgstr " [R] Eliminar"
-#: src/gui/curses/gui-display.c:1523
+#: src/gui/curses/gui-display.c:1573
msgid " [P] Purge old DCC"
msgstr " [P] Purgar los viejos DCC"
-#: src/gui/curses/gui-display.c:1524
+#: src/gui/curses/gui-display.c:1574
msgid " [Q] Close DCC view"
msgstr " [Q] Cerrar la vista DCC"
@@ -2156,15 +2155,15 @@ msgstr " [Q] Cerrar la vista DCC"
msgid "server"
msgstr "servidor"
-#: src/gui/gui-common.c:330
+#: src/gui/gui-common.c:333
msgid "Not enough memory for infobar message\n"
msgstr "No hay suficiente memoria para el mensaje de la barra de información\n"
-#: src/gui/gui-common.c:505
+#: src/gui/gui-common.c:508
msgid "Not enough memory for new line\n"
msgstr "No hay suficiente memoria para una nueva línea\n"
-#: src/gui/gui-common.c:548
+#: src/gui/gui-common.c:551
msgid "Not enough memory for new message\n"
msgstr "No hay suficiente memoria para el mensaje de la barra de información\n"
@@ -2275,14 +2274,32 @@ msgid "command: name of a WeeChat or IRC command"
msgstr "comando: nombre de un comando de Weechat ó de IRC"
#: src/common/command.c:75
+msgid "bind/unbind keys"
+msgstr ""
+
+#: src/common/command.c:76
+msgid "[key function/command] [unbind key] [functions] [reset -yes]"
+msgstr ""
+
+#: src/common/command.c:77
+msgid ""
+"key: bind this key to an internal function or a command (beginning by \"/"
+"\")\n"
+"unbind: unbind a key (if \"all\", default bindings are restored)\n"
+"functions: list internal functions for key bindings\n"
+"reset: restore bindings to the default values and delete ALL personal "
+"binding (use carefully!)"
+msgstr ""
+
+#: src/common/command.c:82
msgid "list/load/unload Perl scripts"
msgstr "lista/carga/descarga de los Perl scripts"
-#: src/common/command.c:76 src/common/command.c:81
+#: src/common/command.c:83 src/common/command.c:88
msgid "[load filename] | [autoload] | [reload] | [unload]"
msgstr "[load fichero] | [autoload] | [reload] | [unload]"
-#: src/common/command.c:77
+#: src/common/command.c:84
msgid ""
"filename: Perl script (file) to load\n"
"Without argument, /perl command lists all loaded Perl scripts."
@@ -2290,11 +2307,11 @@ msgstr ""
"fichero: Perl script (archivo) a cargar\n"
"Sin argumentos, el comando /perl lista todos los Perl scripts cargados."
-#: src/common/command.c:80
+#: src/common/command.c:87
msgid "list/load/unload Python scripts"
msgstr "lista/carga/descarga de los Python scripts"
-#: src/common/command.c:82
+#: src/common/command.c:89
msgid ""
"filename: Python script (file) to load\n"
"Without argument, /python command lists all loaded Python scripts."
@@ -2302,11 +2319,11 @@ msgstr ""
"fichero: Python script (archivo) a cargar\n"
"Sin argumentos, el comando /python lista todos los Python scripts cargados."
-#: src/common/command.c:85
+#: src/common/command.c:92
msgid "list, add or remove servers"
msgstr "lista, añade o elimina servidores"
-#: src/common/command.c:86
+#: src/common/command.c:93
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-"
"pwd password] [-nicks nick1 [nick2 [nick3]]] [-username username] [-realname "
@@ -2318,7 +2335,7 @@ msgstr ""
"username nombre de usuario] [-realname nombre_real] [-command comando] [-"
"autojoin canal[,canal]] ] | [del nombre_de_servidor]"
-#: src/common/command.c:91
+#: src/common/command.c:98
#, fuzzy
msgid ""
"servername: server name, for internal & display use\n"
@@ -2344,27 +2361,27 @@ msgstr ""
"nombre_de_usuario: nombre de usuario\n"
"nombre_real: nombre real del usuario"
-#: src/common/command.c:103
+#: src/common/command.c:110
msgid "save config to disk"
msgstr "guardar configuración a disco"
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "[file]"
msgstr "[archivo]"
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "file: filename for writing config"
msgstr "archivo: fichero en el que guardar la configuración"
-#: src/common/command.c:106
+#: src/common/command.c:113
msgid "set config parameters"
msgstr "modificar parámetros de configuración"
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid "[option[=value]]"
msgstr "[opción[=valor]]"
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid ""
"option: name of an option\n"
"value: value for option"
@@ -2372,27 +2389,27 @@ msgstr ""
"opción: nombre de una opción\n"
"valor: valor para la opción"
-#: src/common/command.c:109
+#: src/common/command.c:116
msgid "remove an alias"
msgstr "eliminar un alias"
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name"
msgstr "alias"
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name: name of alias to remove"
msgstr "alias: nombre del alias a suprimir"
-#: src/common/command.c:112
+#: src/common/command.c:119
msgid "manage windows"
msgstr "gestión de ventanas"
-#: src/common/command.c:113
+#: src/common/command.c:120
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr "[list | splith | splitv | [merge [down | up | left | right | all]]]"
-#: src/common/command.c:115
+#: src/common/command.c:121
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2405,29 +2422,29 @@ msgstr ""
"splitv: dividir la ventana actual verticalmente\n"
"merge: fusionar una ventana con otra"
-#: src/common/command.c:261
+#: src/common/command.c:267
#, 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:271
+#: src/common/command.c:277
#, c-format
msgid "%s alias cannot run another alias!\n"
msgstr "%s ¡el alias no puede ejecutar otro alias!\n"
-#: src/common/command.c:278
+#: src/common/command.c:284
#, c-format
msgid "%s target command \"%s\" does not exist!\n"
msgstr "%s ¡el comando objetivo \"%s\" no existe!\n"
-#: src/common/command.c:486
+#: src/common/command.c:492
#, 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:498
+#: src/common/command.c:504
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
@@ -2436,19 +2453,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:520 src/common/command.c:590
+#: src/common/command.c:526 src/common/command.c:596
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr "%s el comando \"%s\" ha fallado\n"
-#: src/common/command.c:548
+#: src/common/command.c:554
#, 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:560
+#: src/common/command.c:566
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
@@ -2457,189 +2474,221 @@ 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:575
+#: src/common/command.c:581
#, 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:639
+#: src/common/command.c:645
#, 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:720
+#: src/common/command.c:726
#, 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:742
+#: src/common/command.c:748
#, c-format
msgid "%s unable to call handler for message (not enough memory)\n"
msgstr ""
-#: src/common/command.c:750
+#: src/common/command.c:756
msgid "This window is not a channel!\n"
msgstr "¡Esta ventana no es un canal!\n"
-#: src/common/command.c:778 src/common/command.c:802 src/common/command.c:906
+#: src/common/command.c:784 src/common/command.c:808 src/common/command.c:913
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr "%s faltan argumentos para el comando \"%s\"\n"
-#: src/common/command.c:787
+#: src/common/command.c:793
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr "Alias \"%s\" => \"%s\" creado\n"
-#: src/common/command.c:793
+#: src/common/command.c:799
#, 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:813
+#: src/common/command.c:819
msgid "List of aliases:\n"
msgstr "Lista de alias:\n"
-#: src/common/command.c:825
+#: src/common/command.c:831
msgid "No alias defined.\n"
msgstr "Ningún alias definido.\n"
-#: src/common/command.c:848
+#: src/common/command.c:854
msgid "Channel: "
msgstr "Canal: "
-#: src/common/command.c:851 src/common/command.c:861
+#: src/common/command.c:857 src/common/command.c:867
msgid " (server: "
msgstr " (servidor: "
-#: src/common/command.c:858
+#: src/common/command.c:864
msgid "Private with: "
msgstr "Privado con: "
-#: src/common/command.c:886
+#: src/common/command.c:893
msgid "Opened buffers:\n"
msgstr "Búfers abiertos:\n"
-#: src/common/command.c:929 src/common/command.c:1069
+#: src/common/command.c:936
#, c-format
msgid "%s incorrect buffer number\n"
msgstr "%s número de búfer incorrecto\n"
-#: src/common/command.c:943
+#: src/common/command.c:950
#, 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:953
+#: src/common/command.c:960
#, 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:992
+#: src/common/command.c:999
msgid "Notify levels: "
msgstr "Niveles de notificación: "
-#: src/common/command.c:1020 src/common/command.c:1042
+#: src/common/command.c:1027 src/common/command.c:1049
#, c-format
msgid "%s incorrect notify level (must be between %d and %d)\n"
msgstr "%s nivel de notificación incorrecto (debe estar entre %d y %d)\n"
-#: src/common/command.c:1029
+#: src/common/command.c:1036
#, c-format
msgid "%s incorrect buffer for notify (must be channel or private)\n"
msgstr ""
-#: src/common/command.c:1060
-#, 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:1094
+#: src/common/command.c:1116
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr "parámetro desconocido \"%s\" para el comando \"%s\"\n"
-#: src/common/command.c:1124
+#: src/common/command.c:1146
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr "%s ya conectado al servidor \"%s\"!\n"
-#: src/common/command.c:1132
+#: src/common/command.c:1154
#, c-format
msgid "%s currently connecting to server \"%s\"!\n"
msgstr "%s actualmente conectando al servidor \"%s\"!\n"
-#: src/common/command.c:1150 src/common/command.c:1225
+#: src/common/command.c:1172 src/common/command.c:1247
#, c-format
msgid "%s server not found\n"
msgstr "%s servidor no encontrado\n"
-#: src/common/command.c:1180 src/common/command.c:1444
-#: src/common/command.c:1587 src/common/command.c:2283
-#: src/common/command.c:2295
+#: src/common/command.c:1202 src/common/command.c:1598
+#: src/common/command.c:1741 src/common/command.c:2438
+#: src/common/command.c:2454
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr "%s opción desconocida para el comando \"%s\"\n"
-#: src/common/command.c:1209
+#: src/common/command.c:1231
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr "%s ¡no conectado al servidor \"%s\"!\n"
-#: src/common/command.c:1217
+#: src/common/command.c:1239
msgid "Auto-reconnection is cancelled\n"
msgstr "La reconexión automática está anulada\n"
-#: src/common/command.c:1243 src/common/weechat.c:273
+#: src/common/command.c:1265 src/common/weechat.c:273
#, c-format
msgid "%s internal commands:\n"
msgstr "Comandos internos %s :\n"
-#: src/common/command.c:1252 src/common/weechat.c:293
+#: src/common/command.c:1274 src/common/weechat.c:293
#, c-format
msgid "IRC commands:\n"
msgstr "Comandos IRC :\n"
-#: src/common/command.c:1319
+#: src/common/command.c:1341
#, 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:1343 src/common/command.c:1486
+#: src/common/command.c:1359
+msgid "New key binding:\n"
+msgstr ""
+
+#: src/common/command.c:1392
+msgid "Key bindings:\n"
+msgstr ""
+
+#: src/common/command.c:1404
+#, c-format
+msgid "Key \"%s\" unbinded\n"
+msgstr ""
+
+#: src/common/command.c:1409
+#, c-format
+msgid "%s unable to unbind key \"%s\"\n"
+msgstr ""
+
+#: src/common/command.c:1417 src/common/weechat.c:324
+#, c-format
+msgid "Internal key functions:\n"
+msgstr ""
+
+#: src/common/command.c:1435
+msgid "Default key bindings restored\n"
+msgstr ""
+
+#: src/common/command.c:1441
+#, c-format
+msgid "%s \"-yes\" argument is required for keys reset (securuty reason)\n"
+msgstr ""
+
+#: src/common/command.c:1470
+#, c-format
+msgid "%s unable to bind key \"%s\"\n"
+msgstr ""
+
+#: src/common/command.c:1497 src/common/command.c:1640
#, c-format
msgid "Registered %s scripts:\n"
msgstr "%s scripts registrados:\n"
-#: src/common/command.c:1360 src/common/command.c:1383
-#: src/common/command.c:1406 src/common/command.c:1503
-#: src/common/command.c:1526 src/common/command.c:1549
+#: src/common/command.c:1514 src/common/command.c:1537
+#: src/common/command.c:1560 src/common/command.c:1657
+#: src/common/command.c:1680 src/common/command.c:1703
msgid " (none)\n"
msgstr " (ninguno)\n"
-#: src/common/command.c:1365 src/common/command.c:1508
+#: src/common/command.c:1519 src/common/command.c:1662
#, c-format
msgid "%s message handlers:\n"
msgstr "Funciones %s para mensajes:\n"
-#: src/common/command.c:1374 src/common/command.c:1517
+#: src/common/command.c:1528 src/common/command.c:1671
#, c-format
msgid " IRC(%s) => %s(%s)\n"
msgstr " IRC(%s) => %s(%s)\n"
-#: src/common/command.c:1388 src/common/command.c:1531
+#: src/common/command.c:1542 src/common/command.c:1685
#, c-format
msgid "%s command handlers:\n"
msgstr "Comandos %s :\n"
-#: src/common/command.c:1397 src/common/command.c:1540
+#: src/common/command.c:1551 src/common/command.c:1694
#, c-format
msgid " Command /%s => %s(%s)\n"
msgstr " Comando /%s => %s(%s)\n"
-#: src/common/command.c:1457
+#: src/common/command.c:1611
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
@@ -2648,7 +2697,7 @@ msgstr ""
"Por favor, recompile WeeChat con la opción \"--enable-perl\" para el "
"script ./configure\n"
-#: src/common/command.c:1600
+#: src/common/command.c:1754
msgid ""
"WeeChat was build without Python support.\n"
"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
@@ -2658,32 +2707,32 @@ msgstr ""
"Por favor, recompile WeeChat con la opción \"--enable-python\" para el "
"script ./configure\n"
-#: src/common/command.c:1648
+#: src/common/command.c:1802
msgid "No server.\n"
msgstr "Ningún servidor.\n"
-#: src/common/command.c:1659
+#: src/common/command.c:1813
#, c-format
msgid "Server '%s' not found.\n"
msgstr "Servidor '%s' no encontrado.\n"
-#: src/common/command.c:1671
+#: src/common/command.c:1825
#, 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:1679
+#: src/common/command.c:1833
#, 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:1698
+#: src/common/command.c:1852
#, 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:1706
+#: src/common/command.c:1860
#, c-format
msgid ""
"%s you can not delete server \"%s\" because you are connected to. Try /"
@@ -2692,108 +2741,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:1722 src/common/command.c:1868
+#: src/common/command.c:1876 src/common/command.c:2022
msgid "Server"
msgstr "Servidor"
-#: src/common/command.c:1725
+#: src/common/command.c:1879
msgid "has been deleted\n"
msgstr "ha sido eliminado\n"
-#: src/common/command.c:1740
+#: src/common/command.c:1894
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr "%s faltan parámetros para el comando \"%s\"\n"
-#: src/common/command.c:1750
+#: src/common/command.c:1904
#, 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:1779 src/common/command.c:1807
-#: src/common/command.c:1820 src/common/command.c:1846
+#: src/common/command.c:1933 src/common/command.c:1961
+#: src/common/command.c:1974 src/common/command.c:2000
#, c-format
msgid "%s missing password for \"%s\" parameter\n"
msgstr "%s falta contraseña para el comando \"%s\"\n"
-#: src/common/command.c:1792
+#: src/common/command.c:1946
#, 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:1833
+#: src/common/command.c:1987
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr "%s falta comando para el parámetro \"%s\"\n"
-#: src/common/command.c:1871
+#: src/common/command.c:2025
msgid "created\n"
msgstr "creado\n"
-#: src/common/command.c:1877
+#: src/common/command.c:2031
#, c-format
msgid "%s unable to create server\n"
msgstr "%s no es posible crear el servidor\n"
-#: src/common/command.c:1932
+#: src/common/command.c:2086
msgid "(unknown)"
msgstr "(desconocido)"
-#: src/common/command.c:1955
+#: src/common/command.c:2109
msgid "(password hidden) "
msgstr "(contraseña oculta) "
-#: src/common/command.c:2019
+#: src/common/command.c:2173
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr "%s servidor \"%s\" no encontrado\n"
-#: src/common/command.c:2050 src/common/command.c:2096
+#: src/common/command.c:2204 src/common/command.c:2250
#, 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:2055 src/common/command.c:2088
+#: src/common/command.c:2209 src/common/command.c:2242
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr "%s valor incorrecto para la opción \"%s\"\n"
-#: src/common/command.c:2071
+#: src/common/command.c:2225
#, 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:2169
+#: src/common/command.c:2324
#, 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:2172
+#: src/common/command.c:2327
msgid "No config option found\n"
msgstr "Ninguna opción de configuración encontrada\n"
-#: src/common/command.c:2178
+#: src/common/command.c:2333
#, 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:2181
+#: src/common/command.c:2336
msgid "config option(s) found\n"
msgstr "opción/opciones de configuración encontrada(s)\n"
-#: src/common/command.c:2201
+#: src/common/command.c:2356
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr "%s alias o comando \"%s\" no encontrado\n"
-#: src/common/command.c:2211
+#: src/common/command.c:2366
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr "Alias \"%s\" eliminado\n"
-#: src/common/command.c:2231
+#: src/common/command.c:2386
msgid "Opened windows:\n"
msgstr "Ventanas abiertas:\n"
@@ -2938,57 +2987,62 @@ msgstr ""
"donde 'j' es el nombre del alias, y 'join' el comando asociado.\n"
"\n"
-#: src/common/weechat.c:371
+#: src/common/weechat.c:344
+#, c-format
+msgid "%s default keys:\n"
+msgstr ""
+
+#: src/common/weechat.c:424
#, c-format
msgid "%s invalid syntax for IRC server ('%s'), ignored\n"
msgstr "%s sintaxis inválida para el servidor IRC ('%s'), ignorado\n"
-#: src/common/weechat.c:384
+#: src/common/weechat.c:437
#, c-format
msgid "%s unable to create server ('%s'), ignored\n"
msgstr "%s no es posible crear el servidor ('%s'), ignorado\n"
-#: src/common/weechat.c:393
+#: src/common/weechat.c:446
#, c-format
msgid "%s unknown parameter '%s', ignored\n"
msgstr "%s parámetro desconocido '%s', ignorado\n"
-#: src/common/weechat.c:413
+#: src/common/weechat.c:466
#, c-format
msgid "%s cannot create directory \"%s\"\n"
msgstr "%s no es posible crear el directorio \"%s\"\n"
-#: src/common/weechat.c:439
+#: src/common/weechat.c:492
#, c-format
msgid "%s unable to get HOME directory\n"
msgstr "%s no ha sido posible leer el directorio HOME\n"
-#: src/common/weechat.c:448
+#: src/common/weechat.c:501
#, c-format
msgid "%s not enough memory for home directory\n"
msgstr "%s no hay suficiente memoria para el directorio home\n"
-#: src/common/weechat.c:458
+#: src/common/weechat.c:511
#, c-format
msgid "%s unable to create ~/.weechat directory\n"
msgstr "%s no es posible crear el directorio ~/.weechat\n"
-#: src/common/weechat.c:510
+#: src/common/weechat.c:563
#, c-format
msgid "%s unable to create ~/.weechat/logs directory\n"
msgstr "%s no es posible crear el directorio ~/.weechat/logs\n"
-#: src/common/weechat.c:553
+#: src/common/weechat.c:606
#, c-format
msgid "%s unable to create/append to log file (~/.weechat/%s)"
msgstr "%s no es posible crear/añadir en el fichero de log (~/.weechat/%s)"
-#: src/common/weechat.c:576
+#: src/common/weechat.c:629
#, c-format
msgid "%sWelcome to "
msgstr "%sBienvenido a "
-#: src/common/weechat.c:589 src/common/weechat.c:598
+#: src/common/weechat.c:642 src/common/weechat.c:651
msgid "compiled on"
msgstr "compilado en"
@@ -3000,33 +3054,33 @@ msgstr "Error WeeChat:"
msgid "WeeChat Warning:"
msgstr "Advertencia WeeChat:"
-#: src/common/weeconfig.c:88 src/common/weeconfig.c:89
+#: src/common/weeconfig.c:90 src/common/weeconfig.c:91
msgid "set title for window (terminal for Curses GUI) with name & version"
msgstr ""
"define el título de la ventana (el terminal para la interfaz Curses) con el "
"nombre y la versión"
-#: src/common/weeconfig.c:92 src/common/weeconfig.c:93
+#: src/common/weeconfig.c:94 src/common/weeconfig.c:95
msgid "display WeeChat logo at startup"
msgstr "mostrar el logotipo de WeeChat en el arranque"
-#: src/common/weeconfig.c:96 src/common/weeconfig.c:97
+#: src/common/weeconfig.c:98 src/common/weeconfig.c:99
msgid "display WeeChat version at startup"
msgstr "mostrar la versión de Weechat en el arranque"
-#: src/common/weeconfig.c:100
+#: src/common/weeconfig.c:102
msgid "WeeChat slogan"
msgstr "eslógan de WeeChat"
-#: src/common/weeconfig.c:101
+#: src/common/weeconfig.c:103
msgid "WeeChat slogan (if empty, slogan is not used)"
msgstr "eslógan de WeeChat (si está vacío, el eslógan no será utilizado)"
-#: src/common/weeconfig.c:104
+#: src/common/weeconfig.c:106
msgid "charset for decoding messages from server"
msgstr "juego de caracteres para decodificar los mensajes del servidor"
-#: src/common/weeconfig.c:105
+#: src/common/weeconfig.c:107
msgid ""
"charset for decoding messages from server, examples: UTF-8, ISO-8859-1 (if "
"empty, messages are not converted)"
@@ -3034,11 +3088,11 @@ msgstr ""
"juego de caracteres para decodificar los mensajes del servidor, ejemplos: "
"UTF-8, ISO-8859-1 (si no se especifica, los mensajes no son convertidos)"
-#: src/common/weeconfig.c:108
+#: src/common/weeconfig.c:110
msgid "charset for encoding messages sent to server"
msgstr "juego de caracteres para codificar los mensajes enviados al servidor"
-#: src/common/weeconfig.c:109
+#: src/common/weeconfig.c:111
msgid ""
"charset for encoding messages sent to server, examples: UFT-8, ISO-8859-1 "
"(if empty, local charset is used)"
@@ -3047,11 +3101,11 @@ msgstr ""
"ejemplos: UFT-8, ISO-8859-1 (si no se especifica, se utiliza el juego de "
"caracteres local)"
-#: src/common/weeconfig.c:112
+#: src/common/weeconfig.c:114
msgid "internal WeeChat charset (should be ISO)"
msgstr "juego de caracteres interno de WeeChat (debería ser ISO)"
-#: src/common/weeconfig.c:113
+#: src/common/weeconfig.c:115
msgid ""
"internal WeeChat charset, should be ISO-xxxx even if locale is UTF-8 (if "
"empty, local charset is used)"
@@ -3060,45 +3114,45 @@ msgstr ""
"locale sea UTF-8 (si no se especifica, se utiliza el juego de caracteres "
"local)"
-#: src/common/weeconfig.c:116 src/common/weeconfig.c:117
+#: src/common/weeconfig.c:118 src/common/weeconfig.c:119
msgid "timestamp for buffers"
msgstr "fecha y hora para las búfers"
-#: src/common/weeconfig.c:120 src/common/weeconfig.c:121
+#: src/common/weeconfig.c:122 src/common/weeconfig.c:123
msgid "display nick names with different colors"
msgstr "mostrar nombres de usuario con colores diferentes"
-#: src/common/weeconfig.c:124 src/common/weeconfig.c:125
+#: src/common/weeconfig.c:126 src/common/weeconfig.c:127
msgid "display actions with different colors"
msgstr "mostrar acciones con colores diferentes"
-#: src/common/weeconfig.c:128 src/common/weeconfig.c:129
+#: src/common/weeconfig.c:130 src/common/weeconfig.c:131
msgid "remove colors from incoming messages"
msgstr "quitar colores en los mensajes entrantes"
-#: src/common/weeconfig.c:132
+#: src/common/weeconfig.c:134
msgid "display nicklist window"
msgstr "mostrar ventana de usuarios"
-#: src/common/weeconfig.c:133
+#: src/common/weeconfig.c:135
msgid "display nicklist window (for channel windows)"
msgstr "mostrar ventana de usuarios (para las ventanas de canal)"
-#: src/common/weeconfig.c:136
+#: src/common/weeconfig.c:138
msgid "nicklist position"
msgstr "posición de la ventana de usuarios"
-#: src/common/weeconfig.c:137
+#: src/common/weeconfig.c:139
msgid "nicklist position (top, left, right (default), bottom)"
msgstr ""
"posición de la ventana de usuarios (arriba (top), izquierda (left), derecha "
"(right, por defecto), abajo (bottom))"
-#: src/common/weeconfig.c:140
+#: src/common/weeconfig.c:142
msgid "min size for nicklist"
msgstr "tamaño mínimo para la ventana de usuarios"
-#: src/common/weeconfig.c:141
+#: src/common/weeconfig.c:143
msgid ""
"min size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no min size))"
@@ -3106,11 +3160,11 @@ msgstr ""
"tamaño mínimo para la ventana de usuarios (ancho o alto, dependiendo de "
"look_nicklist_position (0 = sin tamaño mínimo))"
-#: src/common/weeconfig.c:145
+#: src/common/weeconfig.c:147
msgid "max size for nicklist"
msgstr "tamaño máximo para la ventana de usuarios"
-#: src/common/weeconfig.c:146
+#: src/common/weeconfig.c:148
msgid ""
"max size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no max size; if min == max and > 0, then size is fixed))"
@@ -3119,37 +3173,41 @@ msgstr ""
"look_nicklist_position (0 = sin tamaño máximo, si min == max y > 0, entonces "
"se fija el tamaño))"
-#: src/common/weeconfig.c:150 src/common/weeconfig.c:151
+#: src/common/weeconfig.c:152 src/common/weeconfig.c:153
msgid "text to display instead of nick when not connected"
msgstr "texto a mostrar en lugar del nick cuando no se está conectado"
-#: src/common/weeconfig.c:154 src/common/weeconfig.c:155
+#: src/common/weeconfig.c:156 src/common/weeconfig.c:157
msgid "display nick mode ((half)op/voice) before each nick"
msgstr "mostrar modo del usuario ((half)op/voice) antes de cada usuario"
-#: src/common/weeconfig.c:158 src/common/weeconfig.c:159
+#: src/common/weeconfig.c:160 src/common/weeconfig.c:161
msgid "display space if nick mode is not (half)op/voice"
msgstr "mostrar un espacio si el modo de usuario no es (half)op/voice"
-#: src/common/weeconfig.c:162 src/common/weeconfig.c:163
+#: src/common/weeconfig.c:164 src/common/weeconfig.c:165
msgid "the string inserted after nick completion"
msgstr "la cadena mostrada tras la finalización de los nombres de usuario"
-#: src/common/weeconfig.c:166 src/common/weeconfig.c:167
+#: src/common/weeconfig.c:168 src/common/weeconfig.c:169
msgid "enable info bar"
msgstr "activa la barra de información"
-#: src/common/weeconfig.c:170 src/common/weeconfig.c:171
+#: src/common/weeconfig.c:172 src/common/weeconfig.c:173
msgid "timestamp for time in infobar"
msgstr "fecha y hora para las conversaciones guardadas"
-#: src/common/weeconfig.c:174
+#: src/common/weeconfig.c:176 src/common/weeconfig.c:177
+msgid "display seconds in infobar time"
+msgstr ""
+
+#: src/common/weeconfig.c:180
msgid "delay (in seconds) for highlight messages in infobar"
msgstr ""
"retraso (en segundos) para la notificación de mensajes en la barra de "
"información"
-#: src/common/weeconfig.c:175
+#: src/common/weeconfig.c:181
msgid ""
"delay (in seconds) for highlight messages in infobar (0 = disable highlight "
"notifications in infobar)"
@@ -3157,260 +3215,264 @@ msgstr ""
"retraso (en segundos) para la notificación de mensajes en la barra de "
"información (0 = desactivar las notificaciones en la barra de información)"
-#: src/common/weeconfig.c:233 src/common/weeconfig.c:234
+#: src/common/weeconfig.c:240 src/common/weeconfig.c:241
msgid "color for title bar"
msgstr "color para la barra de título"
-#: src/common/weeconfig.c:237 src/common/weeconfig.c:238
+#: src/common/weeconfig.c:244 src/common/weeconfig.c:245
msgid "background for title bar"
msgstr "color de fondo para la barra de título"
-#: src/common/weeconfig.c:243 src/common/weeconfig.c:244
+#: src/common/weeconfig.c:250 src/common/weeconfig.c:251
msgid "color for chat text"
msgstr "color para el texto de conversación"
-#: src/common/weeconfig.c:247
+#: src/common/weeconfig.c:254
msgid "color for time"
msgstr "color para la hora"
-#: src/common/weeconfig.c:248
+#: src/common/weeconfig.c:255
msgid "color for time in chat window"
msgstr "color para la hora en la ventana de conversación"
-#: src/common/weeconfig.c:251
+#: src/common/weeconfig.c:258
msgid "color for time separator"
msgstr "color para el separador de la hora"
-#: src/common/weeconfig.c:252
+#: src/common/weeconfig.c:259
msgid "color for time separator (chat window)"
msgstr "color para el separador de la hora (ventana de conversación)"
-#: src/common/weeconfig.c:255 src/common/weeconfig.c:256
+#: src/common/weeconfig.c:262 src/common/weeconfig.c:263
msgid "color for 1st and 3rd char of prefix"
msgstr "color para el primer o tercer carácter de prefijo"
-#: src/common/weeconfig.c:259 src/common/weeconfig.c:260
+#: src/common/weeconfig.c:266 src/common/weeconfig.c:267
msgid "color for middle char of prefix"
msgstr "color para el carácter de en medio del prefijo"
-#: src/common/weeconfig.c:263
+#: src/common/weeconfig.c:270
msgid "color for nicks in actions"
msgstr "color para los nombres de usuario en las acciones"
-#: src/common/weeconfig.c:264
+#: src/common/weeconfig.c:271
msgid "color for nicks in actions (chat window)"
msgstr ""
"color para los nombres de usuario en las acciones (ventana de conversación)"
-#: src/common/weeconfig.c:267
+#: src/common/weeconfig.c:274
msgid "color for hostnames"
msgstr "color para los nombres de máquina"
-#: src/common/weeconfig.c:268
+#: src/common/weeconfig.c:275
msgid "color for hostnames (chat window)"
msgstr "color para los nombres de máquina (ventana de conversación)"
-#: src/common/weeconfig.c:271
+#: src/common/weeconfig.c:278
msgid "color for channel names in actions"
msgstr "color para los nombres de canal en las acciones"
-#: src/common/weeconfig.c:272
+#: src/common/weeconfig.c:279
msgid "color for channel names in actions (chat window)"
msgstr ""
"color para los nombres de canal en las acciones (ventana de conversación)"
-#: src/common/weeconfig.c:275
+#: src/common/weeconfig.c:282
msgid "color for dark separators"
msgstr "color para los separadores oscuros"
-#: src/common/weeconfig.c:276
+#: src/common/weeconfig.c:283
msgid "color for dark separators (chat window)"
msgstr "color para los separadores oscuros (ventana de conversación)"
-#: src/common/weeconfig.c:279
+#: src/common/weeconfig.c:286
msgid "color for highlighted nick"
msgstr "color para el alias subrayado"
-#: src/common/weeconfig.c:280
+#: src/common/weeconfig.c:287
msgid "color for highlighted nick (chat window)"
msgstr "color para el alias subrayado (ventana de conversación)"
-#: src/common/weeconfig.c:283
+#: src/common/weeconfig.c:290
msgid "background for chat"
msgstr "color de fondo para la conversación"
-#: src/common/weeconfig.c:284
+#: src/common/weeconfig.c:291
msgid "background for chat window"
msgstr "color de fondo para la ventana de conversación"
-#: src/common/weeconfig.c:289 src/common/weeconfig.c:290
+#: src/common/weeconfig.c:296 src/common/weeconfig.c:297
msgid "color for status bar"
msgstr "color para la barra de estado"
-#: src/common/weeconfig.c:293 src/common/weeconfig.c:294
+#: src/common/weeconfig.c:300 src/common/weeconfig.c:301
msgid "color for status bar delimiters"
msgstr "color para los delimitadores de la barra de estado"
-#: src/common/weeconfig.c:297
+#: src/common/weeconfig.c:304
msgid "color for window with new messages"
msgstr "color para una ventana con mensajes nuevos"
-#: src/common/weeconfig.c:298
+#: src/common/weeconfig.c:305
msgid "color for window with new messages (status bar)"
msgstr "color para una ventana con mensajes nuevos (barra de estado)"
-#: src/common/weeconfig.c:301
+#: src/common/weeconfig.c:308
msgid "color for window with highlight"
msgstr "color para una ventana con resaltado"
-#: src/common/weeconfig.c:302
+#: src/common/weeconfig.c:309
msgid "color for window with highlight (status bar)"
msgstr "color para una ventana con resaltado (barra de estado)"
-#: src/common/weeconfig.c:305
+#: src/common/weeconfig.c:312
msgid "color for window with new data (not messages)"
msgstr "color para una ventana con nuevos datos (no mensajes)"
-#: src/common/weeconfig.c:306
+#: src/common/weeconfig.c:313
msgid "color for window with new data (not messages) (status bar)"
msgstr ""
"color para una ventana con nuevos datos (no mensajes) (barra de estado)"
-#: src/common/weeconfig.c:309
+#: src/common/weeconfig.c:316
msgid "color for \"-MORE-\" text"
msgstr "color para el texto \"-MÁS-\""
-#: src/common/weeconfig.c:310
+#: src/common/weeconfig.c:317
msgid "color for window with new data (status bar)"
msgstr "color para una ventana con nuevos datos (barra de estado)"
-#: src/common/weeconfig.c:313 src/common/weeconfig.c:314
+#: src/common/weeconfig.c:320 src/common/weeconfig.c:321
msgid "background for status window"
msgstr "color de fondo para la ventana de estado"
-#: src/common/weeconfig.c:319 src/common/weeconfig.c:320
+#: src/common/weeconfig.c:326 src/common/weeconfig.c:327
msgid "color for info bar text"
msgstr "color para el texto de la barra de información"
-#: src/common/weeconfig.c:323 src/common/weeconfig.c:324
+#: src/common/weeconfig.c:330 src/common/weeconfig.c:331
+msgid "color for infobar delimiters"
+msgstr "color para los delimitadores de la barra de información"
+
+#: src/common/weeconfig.c:334 src/common/weeconfig.c:335
msgid "color for info bar highlight notification"
msgstr "color para la notificación en la barra de información"
-#: src/common/weeconfig.c:327 src/common/weeconfig.c:328
+#: src/common/weeconfig.c:338 src/common/weeconfig.c:339
msgid "background for info bar window"
msgstr "color de fondo para la ventana de la barra de información"
-#: src/common/weeconfig.c:333 src/common/weeconfig.c:334
+#: src/common/weeconfig.c:344 src/common/weeconfig.c:345
msgid "color for input text"
msgstr "color para el texto de entrada"
-#: src/common/weeconfig.c:337 src/common/weeconfig.c:338
+#: src/common/weeconfig.c:348 src/common/weeconfig.c:349
msgid "color for input text (channel name)"
msgstr "color para el texto de entrada (nombre de canal)"
-#: src/common/weeconfig.c:341 src/common/weeconfig.c:342
+#: src/common/weeconfig.c:352 src/common/weeconfig.c:353
msgid "color for input text (nick name)"
msgstr "color para el texto de entrada (alias)"
-#: src/common/weeconfig.c:345 src/common/weeconfig.c:346
+#: src/common/weeconfig.c:356 src/common/weeconfig.c:357
msgid "background for input window"
msgstr "color de fondo para la ventana de entrada"
-#: src/common/weeconfig.c:351 src/common/weeconfig.c:352
+#: src/common/weeconfig.c:362 src/common/weeconfig.c:363
msgid "color for nicknames"
msgstr "color para los nombres de usuario"
-#: src/common/weeconfig.c:355 src/common/weeconfig.c:356
+#: src/common/weeconfig.c:366 src/common/weeconfig.c:367
msgid "color for away nicknames"
msgstr "color para los usuarios ausentes"
-#: src/common/weeconfig.c:359
+#: src/common/weeconfig.c:370
msgid "color for chan owner symbol"
msgstr "color para el símbolo de propietario de canal"
-#: src/common/weeconfig.c:360
+#: src/common/weeconfig.c:371
msgid "color for chan owner symbol (specific to unrealircd)"
msgstr ""
"color para el símbolo de propietario de canal (especificado en unrealircd)"
-#: src/common/weeconfig.c:363
+#: src/common/weeconfig.c:374
msgid "color for chan admin symbol"
msgstr "color para el símbolo de administrador de canal"
-#: src/common/weeconfig.c:364
+#: src/common/weeconfig.c:375
msgid "color for chan admin symbol (specific to unrealircd)"
msgstr ""
"color para el símbolo de administrador de canal (especificado en unrealircd)"
-#: src/common/weeconfig.c:367 src/common/weeconfig.c:368
+#: src/common/weeconfig.c:378 src/common/weeconfig.c:379
msgid "color for operator symbol"
msgstr "color para el símbolo de operador"
-#: src/common/weeconfig.c:371 src/common/weeconfig.c:372
+#: src/common/weeconfig.c:382 src/common/weeconfig.c:383
msgid "color for half-operator symbol"
msgstr "color para el símbolo de semi-operador"
-#: src/common/weeconfig.c:375 src/common/weeconfig.c:376
+#: src/common/weeconfig.c:386 src/common/weeconfig.c:387
msgid "color for voice symbol"
msgstr "color para el símbolo de voz"
-#: src/common/weeconfig.c:379 src/common/weeconfig.c:380
+#: src/common/weeconfig.c:390 src/common/weeconfig.c:391
msgid "color for '+' when scrolling nicks"
msgstr ""
-#: src/common/weeconfig.c:383 src/common/weeconfig.c:384
+#: src/common/weeconfig.c:394 src/common/weeconfig.c:395
msgid "color for nick separator"
msgstr "color para el separador de alias"
-#: src/common/weeconfig.c:387 src/common/weeconfig.c:388
+#: src/common/weeconfig.c:398 src/common/weeconfig.c:399
msgid "color for local nick"
msgstr "color para el alias local"
-#: src/common/weeconfig.c:391 src/common/weeconfig.c:392
+#: src/common/weeconfig.c:402 src/common/weeconfig.c:403
msgid "color for other nick in private window"
msgstr "color para el otro alias en la ventana privada"
-#: src/common/weeconfig.c:395 src/common/weeconfig.c:396
+#: src/common/weeconfig.c:406 src/common/weeconfig.c:407
msgid "background for nicknames"
msgstr "color de fondo para los nombres de usuario"
-#: src/common/weeconfig.c:401
+#: src/common/weeconfig.c:412
msgid "color for selected DCC"
msgstr "color para el DCC seleccionado"
-#: src/common/weeconfig.c:402
+#: src/common/weeconfig.c:413
msgid "color for selected DCC (chat window)"
msgstr "color para el DCC seleccionado (ventana de conversación)"
-#: src/common/weeconfig.c:405 src/common/weeconfig.c:406
+#: src/common/weeconfig.c:416 src/common/weeconfig.c:417
msgid "color for \"waiting\" dcc status"
msgstr "color para el estado dcc \"esperando\""
-#: src/common/weeconfig.c:409 src/common/weeconfig.c:410
+#: src/common/weeconfig.c:420 src/common/weeconfig.c:421
msgid "color for \"connecting\" dcc status"
msgstr "color para el estado dcc \"conectando\""
-#: src/common/weeconfig.c:413 src/common/weeconfig.c:414
+#: src/common/weeconfig.c:424 src/common/weeconfig.c:425
msgid "color for \"active\" dcc status"
msgstr "color para el estado dcc \"activo\""
-#: src/common/weeconfig.c:417 src/common/weeconfig.c:418
+#: src/common/weeconfig.c:428 src/common/weeconfig.c:429
msgid "color for \"done\" dcc status"
msgstr "color para el estado dcc \"terminado\""
-#: src/common/weeconfig.c:421 src/common/weeconfig.c:422
+#: src/common/weeconfig.c:432 src/common/weeconfig.c:433
msgid "color for \"failed\" dcc status"
msgstr "color para el estado dcc \"fallo\""
-#: src/common/weeconfig.c:425 src/common/weeconfig.c:426
+#: src/common/weeconfig.c:436 src/common/weeconfig.c:437
msgid "color for \"aborted\" dcc status"
msgstr "color para el estado dcc \"abortado\""
-#: src/common/weeconfig.c:439
+#: src/common/weeconfig.c:450
msgid "max lines in history (per window)"
msgstr "número máximo de líneas en el histórico (por ventana)"
-#: src/common/weeconfig.c:440
+#: src/common/weeconfig.c:451
msgid ""
"maximum number of lines in history for one server/channel/private window (0 "
"= unlimited)"
@@ -3418,341 +3480,341 @@ msgstr ""
"número máximo de líneas en el histórico para un servidor/canal/privado (0 = "
"ilimitado)"
-#: src/common/weeconfig.c:444
+#: src/common/weeconfig.c:455
msgid "max user commands in history"
msgstr "número máximo de comandos de usuario en el histórico"
-#: src/common/weeconfig.c:445
+#: src/common/weeconfig.c:456
msgid "maximum number of user commands in history (0 = unlimited)"
msgstr "número máximo de comandos de usuario en el histórico (0 = ilimitado)"
-#: src/common/weeconfig.c:462 src/common/weeconfig.c:463
+#: src/common/weeconfig.c:473 src/common/weeconfig.c:474
msgid "automatically log server messages"
msgstr "registrar automáticamente los mensajes de servidor"
-#: src/common/weeconfig.c:466 src/common/weeconfig.c:467
+#: src/common/weeconfig.c:477 src/common/weeconfig.c:478
msgid "automatically log channel chats"
msgstr "registrar automáticamente las conversaciones de canal"
-#: src/common/weeconfig.c:470 src/common/weeconfig.c:471
+#: src/common/weeconfig.c:481 src/common/weeconfig.c:482
msgid "automatically log private chats"
msgstr "registrar automáticamente las conversaciones privadas"
-#: src/common/weeconfig.c:474 src/common/weeconfig.c:475
+#: src/common/weeconfig.c:485 src/common/weeconfig.c:486
msgid "log messages from plugins (scripts)"
msgstr "registrar mensajes de plugins (scripts)"
-#: src/common/weeconfig.c:478
+#: src/common/weeconfig.c:489
msgid "path for log files"
msgstr "ruta para los archivos de registro (logs)"
-#: src/common/weeconfig.c:479
+#: src/common/weeconfig.c:490
msgid "path for WeeChat log files"
msgstr "ruta para los archivos de registro (logs) de WeeChat"
-#: src/common/weeconfig.c:482
+#: src/common/weeconfig.c:493
msgid "timestamp for log"
msgstr "fecha y hora para las conversaciones registradas"
-#: src/common/weeconfig.c:483
+#: src/common/weeconfig.c:494
msgid "timestamp for log (see man strftime for date/time specifiers)"
msgstr ""
"fecha y hora para los registros (ver man strftime para el formato de fecha/"
"hora)"
-#: src/common/weeconfig.c:486 src/common/weeconfig.c:487
+#: src/common/weeconfig.c:497 src/common/weeconfig.c:498
msgid "hide password displayed by nickserv"
msgstr "ocultar contraseña mostrada por nickserv"
-#: src/common/weeconfig.c:506
+#: src/common/weeconfig.c:517
msgid "display message to all channels when away"
msgstr "mostrar mensaje en todos los canales cuando se está ausente"
-#: src/common/weeconfig.c:507
+#: src/common/weeconfig.c:518
msgid "display message to all channels when (un)marking as away"
msgstr ""
"mostrar mensaje en todos los canales cuando se vuelva del estado ausente"
-#: src/common/weeconfig.c:510 src/common/weeconfig.c:511
+#: src/common/weeconfig.c:521 src/common/weeconfig.c:522
msgid "default message when away"
msgstr "mensaje por defecto para el estado ausente"
-#: src/common/weeconfig.c:514 src/common/weeconfig.c:515
+#: src/common/weeconfig.c:525 src/common/weeconfig.c:526
msgid "default part message (leaving channel)"
msgstr "mensaje por defecto de salida (saliendo de un canal)"
-#: src/common/weeconfig.c:518
+#: src/common/weeconfig.c:529
msgid "default quit message"
msgstr "mensaje de fin por defecto"
-#: src/common/weeconfig.c:519
+#: src/common/weeconfig.c:530
msgid ""
"default quit message ('%v' will be replaced by WeeChat version in string)"
msgstr ""
"mensaje de fin por defecto ('%v' será reemplazado por la versión de WeeChat "
"en la cadena)"
-#: src/common/weeconfig.c:522
+#: src/common/weeconfig.c:533
msgid "interval between two checks for away"
msgstr "intervalo entre dos comprobaciones de ausencia"
-#: src/common/weeconfig.c:523
+#: src/common/weeconfig.c:534
msgid "interval between two checks for away (in minutes, 0 = never check)"
msgstr ""
"intervalo entre dos comprobaciones de ausencia (en minutos, 0 = no comprobar)"
-#: src/common/weeconfig.c:526
+#: src/common/weeconfig.c:537
msgid "interval between two checks for lag"
msgstr "intervalo entre dos medidas de lag (retraso)"
-#: src/common/weeconfig.c:527
+#: src/common/weeconfig.c:538
msgid "interval between two checks for lag (in seconds)"
msgstr "intervalo entre dos medidas de lag (en segundos)"
-#: src/common/weeconfig.c:530
+#: src/common/weeconfig.c:541
msgid "minimum lag to show"
msgstr "lag (retraso) mínimo a mostrar"
-#: src/common/weeconfig.c:531
+#: src/common/weeconfig.c:542
msgid "minimum lag to show (in seconds)"
msgstr "lag mínimo a mostrar (en segundos)"
-#: src/common/weeconfig.c:534
+#: src/common/weeconfig.c:545
msgid "disconnect after important lag"
msgstr "desconexión tras un lag importante"
-#: src/common/weeconfig.c:535
+#: src/common/weeconfig.c:546
msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
"desconexión tras un lag importante (en minutos, 0 = no desconectar nunca)"
-#: src/common/weeconfig.c:538 src/common/weeconfig.c:539
+#: src/common/weeconfig.c:549 src/common/weeconfig.c:550
msgid "create a FIFO pipe for remote control"
msgstr "crea una tubería FIFO para control remoto"
-#: src/common/weeconfig.c:558
+#: src/common/weeconfig.c:569
msgid "automatically accept dcc files"
msgstr "aceptar automáticamente los ficheros dcc"
-#: src/common/weeconfig.c:559
+#: src/common/weeconfig.c:570
msgid "automatically accept incoming dcc files"
msgstr "aceptar automáticamente los ficheros dcc entrantes"
-#: src/common/weeconfig.c:562
+#: src/common/weeconfig.c:573
msgid "automatically accept dcc chats"
msgstr "aceptar automáticamente las peticiones de conversación dcc"
-#: src/common/weeconfig.c:563
+#: src/common/weeconfig.c:574
msgid "automatically accept dcc chats (use carefully!)"
msgstr ""
"aceptar automáticamente las peticiones de conversación dcc (¡utilizar con "
"precaución!)"
-#: src/common/weeconfig.c:566
+#: src/common/weeconfig.c:577
msgid "timeout for dcc request"
msgstr "tiempo de espera (timeout) para la petición dcc"
-#: src/common/weeconfig.c:567
+#: src/common/weeconfig.c:578
msgid "timeout for dcc request (in seconds)"
msgstr "tiempo de espera para la petición dcc (en segundos)"
-#: src/common/weeconfig.c:570
+#: src/common/weeconfig.c:581
msgid "block size for dcc packets"
msgstr "tamaño de bloque para los paquetes dcc"
-#: src/common/weeconfig.c:571
+#: src/common/weeconfig.c:582
msgid "block size for dcc packets in bytes (default: 65536)"
msgstr "tamaño de bloque para los paquetes dcc en bytes (por defecto: 65536)"
-#: src/common/weeconfig.c:574
+#: src/common/weeconfig.c:585
msgid "path for incoming files with dcc"
msgstr "ruta para los ficheros recibidos con dcc"
-#: src/common/weeconfig.c:575
+#: src/common/weeconfig.c:586
msgid "path for writing incoming files with dcc (default: user home)"
msgstr ""
"ruta para los ficheros recibidos con dcc (por defecto: directorio home del "
"usuario)"
-#: src/common/weeconfig.c:578
+#: src/common/weeconfig.c:589
msgid "default path for sending files with dcc"
msgstr "ruta por defecto para enviar ficheros con dcc"
-#: src/common/weeconfig.c:579
+#: src/common/weeconfig.c:590
msgid ""
"path for reading files when sending thru dcc (when no path is specified)"
msgstr ""
"ruta para la lectura de ficheros cuando se envían a través de dcc (cuando no "
"se especifica una ruta)"
-#: src/common/weeconfig.c:582 src/common/weeconfig.c:583
+#: src/common/weeconfig.c:593 src/common/weeconfig.c:594
msgid "convert spaces to underscores when sending files"
msgstr "convertir los espacios a subrayados cuando se envían los ficheros"
-#: src/common/weeconfig.c:586
+#: src/common/weeconfig.c:597
msgid "automatically rename dcc files if already exists"
msgstr "renombrar automáticamente los ficheros dcc si ya existen"
-#: src/common/weeconfig.c:587
+#: src/common/weeconfig.c:598
msgid "rename incoming files if already exists (add '.1', '.2', ...)"
msgstr ""
"renombrar los ficheros recibidos si ya existen (añadir '.1', '.2', ...)"
-#: src/common/weeconfig.c:590
+#: src/common/weeconfig.c:601
msgid "automatically resume aborted transfers"
msgstr "continuar automáticamente las transferencias canceladas"
-#: src/common/weeconfig.c:591
+#: src/common/weeconfig.c:602
msgid ""
"automatically resume dcc transfer if connection with remote host is loosed"
msgstr ""
"continuar automáticamente la transferencia dcc si se ha perdido la conexión "
"con la máquina remota"
-#: src/common/weeconfig.c:610
+#: src/common/weeconfig.c:621
msgid "use proxy"
msgstr "utilizar un proxy"
-#: src/common/weeconfig.c:611
+#: src/common/weeconfig.c:622
msgid "use a proxy server to connect to irc server"
msgstr "utilizar un proxy para conectarse al servidor irc"
-#: src/common/weeconfig.c:614
+#: src/common/weeconfig.c:625
msgid "proxy type"
msgstr ""
-#: src/common/weeconfig.c:615
+#: src/common/weeconfig.c:626
msgid "proxy type (http (default), socks4, socks5)"
msgstr ""
-#: src/common/weeconfig.c:618
+#: src/common/weeconfig.c:629
msgid "use ipv6 proxy"
msgstr ""
-#: src/common/weeconfig.c:619
+#: src/common/weeconfig.c:630
msgid "connect to proxy in ipv6"
msgstr ""
-#: src/common/weeconfig.c:622
+#: src/common/weeconfig.c:633
msgid "proxy address"
msgstr "dirección del proxy"
-#: src/common/weeconfig.c:623
+#: src/common/weeconfig.c:634
msgid "proxy server address (IP or hostname)"
msgstr "dirección del servidor proxy (IP o nombre de máquina)"
-#: src/common/weeconfig.c:626
+#: src/common/weeconfig.c:637
msgid "port for proxy"
msgstr "puerto para el proxy"
-#: src/common/weeconfig.c:627
+#: src/common/weeconfig.c:638
msgid "port for connecting to proxy server"
msgstr "puerto para conectarse al servidor proxy"
-#: src/common/weeconfig.c:630
+#: src/common/weeconfig.c:641
msgid "proxy username"
msgstr ""
-#: src/common/weeconfig.c:631
+#: src/common/weeconfig.c:642
msgid "username for proxy server"
msgstr ""
-#: src/common/weeconfig.c:634
+#: src/common/weeconfig.c:645
msgid "proxy password"
msgstr "contraseña para el proxy"
-#: src/common/weeconfig.c:635
+#: src/common/weeconfig.c:646
msgid "password for proxy server"
msgstr "contraseña para el servidor proxy"
-#: src/common/weeconfig.c:646
+#: src/common/weeconfig.c:657
msgid "server name"
msgstr "nombre de servidor"
-#: src/common/weeconfig.c:647
+#: src/common/weeconfig.c:658
msgid "name associated to IRC server (for display only)"
msgstr "nombre asociado al servidor IRC (para mostrar solamente)"
-#: src/common/weeconfig.c:650
+#: src/common/weeconfig.c:661
msgid "automatically connect to server"
msgstr "conexión automática al servidor"
-#: src/common/weeconfig.c:651
+#: src/common/weeconfig.c:662
msgid "automatically connect to server when WeeChat is starting"
msgstr "conexión automática al servidor cuando WeeChat esté arrancando"
-#: src/common/weeconfig.c:654
+#: src/common/weeconfig.c:665
msgid "automatically reconnect to server"
msgstr "reconexión automática al servidor"
-#: src/common/weeconfig.c:655
+#: src/common/weeconfig.c:666
msgid "automatically reconnect to server when disconnected"
msgstr "reconexión automática al servidor tras una desconexión"
-#: src/common/weeconfig.c:658
+#: src/common/weeconfig.c:669
msgid "delay before trying again to reconnect"
msgstr "esperar antes de intentar de nuevo una reconexión"
-#: src/common/weeconfig.c:659
+#: src/common/weeconfig.c:670
msgid "delay (in seconds) before trying again to reconnect to server"
msgstr ""
"espera (en segundos) antes de intentar de nuevo una reconexión al servidor"
-#: src/common/weeconfig.c:662
+#: src/common/weeconfig.c:673
msgid "server address or hostname"
msgstr "dirección o nombre de máquina del servidor"
-#: src/common/weeconfig.c:663
+#: src/common/weeconfig.c:674
msgid "IP address or hostname of IRC server"
msgstr "dirección IP o nombre de máquina del servidor IRC"
-#: src/common/weeconfig.c:666
+#: src/common/weeconfig.c:677
msgid "port for IRC server"
msgstr "puerto para el servidor IRC"
-#: src/common/weeconfig.c:667
+#: src/common/weeconfig.c:678
msgid "port for connecting to server"
msgstr "puerto para conectarse al servidor"
-#: src/common/weeconfig.c:670 src/common/weeconfig.c:671
+#: src/common/weeconfig.c:681 src/common/weeconfig.c:682
msgid "use IPv6 protocol for server communication"
msgstr ""
-#: src/common/weeconfig.c:674 src/common/weeconfig.c:675
+#: src/common/weeconfig.c:685 src/common/weeconfig.c:686
msgid "use SSL for server communication"
msgstr ""
-#: src/common/weeconfig.c:678
+#: src/common/weeconfig.c:689
msgid "server password"
msgstr "contraseña para el servidor"
-#: src/common/weeconfig.c:679
+#: src/common/weeconfig.c:690
msgid "password for IRC server"
msgstr "contraseña para el servidor IRC"
-#: src/common/weeconfig.c:682
+#: src/common/weeconfig.c:693
msgid "nickname for server"
msgstr "nombre de usuario para el servidor"
-#: src/common/weeconfig.c:683
+#: src/common/weeconfig.c:694
msgid "nickname to use on IRC server"
msgstr "nombre de usuario a utilizar en el servidor IRC"
-#: src/common/weeconfig.c:686
+#: src/common/weeconfig.c:697
msgid "alternate nickname for server"
msgstr "nombre de usuario alternativo para el servidor"
-#: src/common/weeconfig.c:687
+#: src/common/weeconfig.c:698
msgid "alternate nickname to use on IRC server (if nickname is already used)"
msgstr ""
"nombre de usuario alternativo para el servidor IRC (si el nombre de usuario "
"ya está en uso)"
-#: src/common/weeconfig.c:690
+#: src/common/weeconfig.c:701
msgid "2nd alternate nickname for server"
msgstr "segundo nombre de usuario alternativo para el servidor"
-#: src/common/weeconfig.c:691
+#: src/common/weeconfig.c:702
msgid ""
"2nd alternate nickname to use on IRC server (if alternate nickname is "
"already used)"
@@ -3760,31 +3822,31 @@ msgstr ""
"segundo nombre de usuario alternativo a utilizar en el servidor IRC (si el "
"nombre de usuario alternativo ya está en uso)"
-#: src/common/weeconfig.c:694
+#: src/common/weeconfig.c:705
msgid "user name for server"
msgstr "nombre de usuario para el servidor"
-#: src/common/weeconfig.c:695
+#: src/common/weeconfig.c:706
msgid "user name to use on IRC server"
msgstr "nombre de usuario para el servidor IRC"
-#: src/common/weeconfig.c:698
+#: src/common/weeconfig.c:709
msgid "real name for server"
msgstr "nombre real para el servidor"
-#: src/common/weeconfig.c:699
+#: src/common/weeconfig.c:710
msgid "real name to use on IRC server"
msgstr "nombre real para el servidor IRC"
-#: src/common/weeconfig.c:702 src/common/weeconfig.c:703
+#: src/common/weeconfig.c:713 src/common/weeconfig.c:714
msgid "first command to run when connected to server"
msgstr "primer comando a ejecutar cuando se conecte a un servidor"
-#: src/common/weeconfig.c:706
+#: src/common/weeconfig.c:717
msgid "delay (in seconds) after command was executed"
msgstr "espera (en segundos) después de que el comando sea ejecutado"
-#: src/common/weeconfig.c:707
+#: src/common/weeconfig.c:718
msgid ""
"delay (in seconds) after command was executed (example: give some time for "
"authentication)"
@@ -3792,86 +3854,86 @@ msgstr ""
"espera (en segundos) después de que el comando sea ejecutado (ejemplo: dar "
"algo de tiempo para la autenticación)"
-#: src/common/weeconfig.c:710
+#: src/common/weeconfig.c:721
msgid "list of channels to join when connected to server"
msgstr "lista de canales a unirse cuando se conecte a un servidor"
-#: src/common/weeconfig.c:711
+#: src/common/weeconfig.c:722
msgid "comma separated list of channels to join when connected to server"
msgstr ""
"lista de canales (separados por comas) a unirse cuando se conecte a un "
"servidor"
-#: src/common/weeconfig.c:714 src/common/weeconfig.c:715
+#: src/common/weeconfig.c:725 src/common/weeconfig.c:726
msgid "automatically rejoin channels when kicked"
msgstr "unirse de nuevo automáticamente a los canales cuando sea expulsado"
-#: src/common/weeconfig.c:718
+#: src/common/weeconfig.c:729
msgid "notify levels for channels of this server"
msgstr ""
-#: src/common/weeconfig.c:719
+#: src/common/weeconfig.c:730
msgid ""
"comma separated list of notify levels for channels of this server (format: "
"#channel:1,..)"
msgstr ""
-#: src/common/weeconfig.c:1177
+#: src/common/weeconfig.c:1190
#, c-format
msgid "%s %s, line %d: new server, but previous was incomplete\n"
msgstr "%s %s, línea %d: nuevo servidor, pero el anterior estaba incompleto\n"
-#: src/common/weeconfig.c:1186
+#: src/common/weeconfig.c:1199
#, c-format
msgid "%s %s, line %d: server '%s' already exists\n"
msgstr "%s %s, línea %d: el servidor '%s' ya existe\n"
-#: src/common/weeconfig.c:1201
+#: src/common/weeconfig.c:1214
#, c-format
msgid "%s %s, line %d: unable to create server\n"
msgstr "%s %s, línea %d: no es posible crear el servidor\n"
-#: src/common/weeconfig.c:1240
+#: src/common/weeconfig.c:1254
#, c-format
msgid "%s unable to assign default int with string (\"%s\")\n"
msgstr "%s no es posible asignar el valor entero con la cadena (\"%s\")\n"
-#: src/common/weeconfig.c:1251
+#: src/common/weeconfig.c:1265
#, c-format
msgid "%s unable to assign default color (\"%s\")\n"
msgstr "%s no es posible asignar el color por defecto (\"%s\")\n"
-#: src/common/weeconfig.c:1290
+#: src/common/weeconfig.c:1304
#, c-format
msgid "%s config file \"%s\" not found.\n"
msgstr "%s fichero de configuración \"%s\" no encontrado.\n"
-#: src/common/weeconfig.c:1322
+#: src/common/weeconfig.c:1336
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"]\"\n"
msgstr "%s %s, línea %d: sintaxis inválida, falta \"]\"\n"
-#: src/common/weeconfig.c:1339
+#: src/common/weeconfig.c:1353
#, c-format
msgid "%s %s, line %d: unknown section identifier (\"%s\")\n"
msgstr "%s %s, línea %d: identificador de sección desconocido (\"%s\")\n"
-#: src/common/weeconfig.c:1357
+#: src/common/weeconfig.c:1371
#, c-format
msgid "%s %s, line %d: invalid section for option, line is ignored\n"
msgstr "%s %s, línea %d: sección inválida para la opción, línea ignorada\n"
-#: src/common/weeconfig.c:1365
+#: src/common/weeconfig.c:1379
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"=\"\n"
msgstr "%s %s, línea %d: sintaxis inválida, falta \"=\"\n"
-#: src/common/weeconfig.c:1399
+#: src/common/weeconfig.c:1427
#, c-format
msgid "%s %s, line %d: invalid option \"%s\"\n"
msgstr "%s %s, línea %d: opción \"%s\" inválida\n"
-#: src/common/weeconfig.c:1410
+#: src/common/weeconfig.c:1438
#, c-format
msgid ""
"%s %s, line %d: invalid value foroption '%s'\n"
@@ -3880,7 +3942,7 @@ msgstr ""
"%s %s, línea %d: valor inválido para la opción '%s'\n"
"Esperado: valor booleano: 'off' u 'on'\n"
-#: src/common/weeconfig.c:1419
+#: src/common/weeconfig.c:1447
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
@@ -3889,7 +3951,7 @@ msgstr ""
"%s %s, línea %d: valor inválido para la opción %s'\n"
"Esperado: entero comprendido entre %d y %d\n"
-#: src/common/weeconfig.c:1430
+#: src/common/weeconfig.c:1458
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
@@ -3898,26 +3960,26 @@ msgstr ""
"%s %s, línea %d: valor inválido para la opción '%s'\n"
"Esperado: una de estas cadenas: "
-#: src/common/weeconfig.c:1446
+#: src/common/weeconfig.c:1474
#, c-format
msgid "%s %s, line %d: invalid color name for option '%s'\n"
msgstr "%s %s, línea %d: nombre de color inválido para la opción '%s'\n"
-#: src/common/weeconfig.c:1506 src/common/weeconfig.c:1677
+#: src/common/weeconfig.c:1536 src/common/weeconfig.c:1731
#, c-format
msgid "%s cannot create file \"%s\"\n"
msgstr "%s no es posible crear el fichero \"%s\"\n"
-#: src/common/weeconfig.c:1512
+#: src/common/weeconfig.c:1542
#, c-format
msgid "%s: creating default config file...\n"
msgstr "%s: creando fichero de configuración por defecto...\n"
-#: src/common/weeconfig.c:1513
+#: src/common/weeconfig.c:1543
msgid "Creating default config file\n"
msgstr "Creando fichero de configuración por defecto\n"
-#: src/common/weeconfig.c:1516 src/common/weeconfig.c:1686
+#: src/common/weeconfig.c:1546 src/common/weeconfig.c:1740
#, c-format
msgid ""
"#\n"
@@ -3926,6 +3988,9 @@ msgstr ""
"#\n"
"# %s: fichero de configuración, creado por %s v%s el %s#\n"
-#: src/common/weeconfig.c:1683
+#: src/common/weeconfig.c:1737
msgid "Saving config to disk\n"
msgstr "Guardar configuración a disco\n"
+
+#~ msgid "%d:[not connected] "
+#~ msgstr "%d:[no conectado] "
diff --git a/weechat/po/fr.po b/weechat/po/fr.po
index 1e69c89c3..667a96f5f 100644
--- a/weechat/po/fr.po
+++ b/weechat/po/fr.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.4-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-07-02 18:30+0200\n"
-"PO-Revision-Date: 2005-07-02 20:21+0200\n"
+"POT-Creation-Date: 2005-07-09 17:25+0200\n"
+"PO-Revision-Date: 2005-07-09 14:34+0200\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@ msgstr ""
msgid "%s cannot allocate new nick\n"
msgstr "%s impossible d'allouer un nouveau pseudo\n"
-#: src/irc/irc-server.c:180 src/common/weeconfig.c:1625
+#: src/irc/irc-server.c:180 src/common/weeconfig.c:1677
msgid "Unable to get user's name"
msgstr "Impossible de déterminer le nom d'utilisateur"
@@ -1304,7 +1304,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:156 src/common/command.c:842
+#: src/irc/irc-display.c:156 src/common/command.c:848
msgid "Server: "
msgstr "Serveur: "
@@ -1345,9 +1345,9 @@ msgstr "%s: utilisation du nom de machine local \"%s\"\n"
#: src/irc/irc-send.c:232 src/irc/irc-send.c:260 src/irc/irc-send.c:426
#: src/irc/irc-send.c:452 src/irc/irc-send.c:478 src/irc/irc-send.c:519
-#: src/irc/irc-send.c:555 src/irc/irc-send.c:619 src/irc/irc-send.c:676
-#: src/irc/irc-send.c:1018 src/irc/irc-send.c:1116 src/irc/irc-send.c:1595
-#: src/irc/irc-send.c:1702
+#: src/irc/irc-send.c:555 src/irc/irc-send.c:622 src/irc/irc-send.c:679
+#: src/irc/irc-send.c:1021 src/irc/irc-send.c:1119 src/irc/irc-send.c:1598
+#: src/irc/irc-send.c:1705
#, c-format
msgid "%s \"%s\" command can only be executed in a channel window\n"
msgstr ""
@@ -1355,36 +1355,36 @@ msgstr ""
"canal\n"
#: 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:1621
-#: src/common/command.c:1167 src/common/command.c:1451
-#: src/common/command.c:1594
+#: src/irc/irc-send.c:999 src/irc/irc-send.c:1092 src/irc/irc-send.c:1624
+#: src/common/command.c:1189 src/common/command.c:1455
+#: src/common/command.c:1605 src/common/command.c:1748
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr "%s nombre de paramètres erroné pour la commande \"%s\"\n"
-#: src/irc/irc-send.c:398 src/irc/irc-send.c:604 src/irc/irc-send.c:661
+#: src/irc/irc-send.c:398 src/irc/irc-send.c:607 src/irc/irc-send.c:664
#, c-format
msgid "%s wrong arguments for \"%s\" command\n"
msgstr "%s paramètres invalides pour la commande \"%s\"\n"
-#: src/irc/irc-send.c:804 src/irc/irc-send.c:871 src/irc/irc-send.c:1164
-#: src/irc/irc-send.c:1178 src/irc/irc-send.c:1522
+#: src/irc/irc-send.c:807 src/irc/irc-send.c:874 src/irc/irc-send.c:1167
+#: src/irc/irc-send.c:1181 src/irc/irc-send.c:1525
#, c-format
msgid "%s \"%s\" command can not be executed on a server window\n"
msgstr ""
"%s la commande \"%s\" ne peut pas être exécutée dans une fenêtre serveur\n"
-#: src/irc/irc-send.c:889 src/irc/irc-send.c:914 src/irc/irc-recv.c:322
+#: src/irc/irc-send.c:892 src/irc/irc-send.c:917 src/irc/irc-recv.c:322
#, c-format
msgid "%s nick \"%s\" not found for \"%s\" command\n"
msgstr "%s pseudo \"%s\" non trouvé pour la commande \"%s\"\n"
-#: src/irc/irc-send.c:966 src/irc/irc-send.c:1274 src/irc/irc-recv.c:1505
+#: src/irc/irc-send.c:969 src/irc/irc-send.c:1277 src/irc/irc-recv.c:1505
#, c-format
msgid "%s cannot create new private window \"%s\"\n"
msgstr "%s impossible de créer la fenêtre privée \"%s\"\n"
-#: src/irc/irc-send.c:1674
+#: src/irc/irc-send.c:1677
#, c-format
msgid "%s, compiled on %s %s\n"
msgstr "%s, compilé le %s %s\n"
@@ -2094,66 +2094,65 @@ msgstr ""
"%s impossible d'ajouter la fonction pour le message \"%s\" (mémoire "
"insuffisante)\n"
-#: src/gui/curses/gui-input.c:788
+#: src/gui/curses/gui-input.c:298
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s le lag est élevé, déconnexion du serveur...\n"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "bytes"
msgstr "octets"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Kb"
msgstr "Ko"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Mb"
msgstr "Mo"
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Gb"
msgstr "Go"
-#: src/gui/curses/gui-display.c:1122
+#: src/gui/curses/gui-display.c:1116
msgid "(away)"
msgstr "(absent)"
-#: src/gui/curses/gui-display.c:1235
-#, c-format
-msgid "%d:[not connected] "
-msgstr "%d:[non connecté] "
+#: src/gui/curses/gui-display.c:1233
+msgid "[not connected]"
+msgstr "[non connecté]"
-#: src/gui/curses/gui-display.c:1252
+#: src/gui/curses/gui-display.c:1249
msgid "Act: "
msgstr "Act: "
-#: src/gui/curses/gui-display.c:1301
+#: src/gui/curses/gui-display.c:1298
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
-#: src/gui/curses/gui-display.c:1322
+#: src/gui/curses/gui-display.c:1319
msgid "-MORE-"
msgstr "-PLUS-"
-#: src/gui/curses/gui-display.c:1509
+#: src/gui/curses/gui-display.c:1559
msgid " [A] Accept"
msgstr " [A] Accepter"
-#: src/gui/curses/gui-display.c:1510 src/gui/curses/gui-display.c:1514
+#: src/gui/curses/gui-display.c:1560 src/gui/curses/gui-display.c:1564
msgid " [C] Cancel"
msgstr " [C] Annuler"
-#: src/gui/curses/gui-display.c:1519
+#: src/gui/curses/gui-display.c:1569
msgid " [R] Remove"
msgstr " [R] Retirer"
-#: src/gui/curses/gui-display.c:1523
+#: src/gui/curses/gui-display.c:1573
msgid " [P] Purge old DCC"
msgstr " [P] Purger anciens DCC"
-#: src/gui/curses/gui-display.c:1524
+#: src/gui/curses/gui-display.c:1574
msgid " [Q] Close DCC view"
msgstr " [Q] Fermer la vue DCC"
@@ -2161,15 +2160,15 @@ msgstr " [Q] Fermer la vue DCC"
msgid "server"
msgstr "serveur"
-#: src/gui/gui-common.c:330
+#: src/gui/gui-common.c:333
msgid "Not enough memory for infobar message\n"
msgstr "Pas assez de mémoire pour un message de la barre d'infos\n"
-#: src/gui/gui-common.c:505
+#: src/gui/gui-common.c:508
msgid "Not enough memory for new line\n"
msgstr "Pas assez de mémoire pour une nouvelle ligne !\n"
-#: src/gui/gui-common.c:548
+#: src/gui/gui-common.c:551
msgid "Not enough memory for new message\n"
msgstr "Pas assez de mémoire pour un message de la barre d'infos\n"
@@ -2280,14 +2279,40 @@ msgid "command: name of a WeeChat or IRC command"
msgstr "commande: nom d'une commande WeeChat ou IRC"
#: src/common/command.c:75
+msgid "bind/unbind keys"
+msgstr "associer/libérer des touches"
+
+#: src/common/command.c:76
+msgid "[key function/command] [unbind key] [functions] [reset -yes]"
+msgstr "[touche fonction/commande] [unbind touche] [functions] [reset -yes]"
+
+#: src/common/command.c:77
+msgid ""
+"key: bind this key to an internal function or a command (beginning by \"/"
+"\")\n"
+"unbind: unbind a key (if \"all\", default bindings are restored)\n"
+"functions: list internal functions for key bindings\n"
+"reset: restore bindings to the default values and delete ALL personal "
+"binding (use carefully!)"
+msgstr ""
+"touche: associer cette touche à une fonction interne ou une commande "
+"(commençant par \"/\")\n"
+"unbind: supprimer l'association à une touche (si \"all\", toutes les "
+"associations de touches par défaut sont restaurées)\n"
+"functions: lister la liste des fonctions internes pour les associations de "
+"touches\n"
+"reset: restaur les touches aux valeurs par défaut et supprime TOUTES les "
+"touches personnelles (utiliser avec précaution !)"
+
+#: src/common/command.c:82
msgid "list/load/unload Perl scripts"
msgstr "liste/charge/décharge des scripts Perl"
-#: src/common/command.c:76 src/common/command.c:81
+#: src/common/command.c:83 src/common/command.c:88
msgid "[load filename] | [autoload] | [reload] | [unload]"
msgstr "[load fichier] | [autoload] | [reload] | [unload]"
-#: src/common/command.c:77
+#: src/common/command.c:84
msgid ""
"filename: Perl script (file) to load\n"
"Without argument, /perl command lists all loaded Perl scripts."
@@ -2295,11 +2320,11 @@ msgstr ""
"fichier: script Perl (fichier) à charger\n"
"Sans paramètre, la commande /perl liste tous les scripts Perl chargés."
-#: src/common/command.c:80
+#: src/common/command.c:87
msgid "list/load/unload Python scripts"
msgstr "liste/charge/décharge des scripts Python"
-#: src/common/command.c:82
+#: src/common/command.c:89
msgid ""
"filename: Python script (file) to load\n"
"Without argument, /python command lists all loaded Python scripts."
@@ -2307,11 +2332,11 @@ 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
+#: src/common/command.c:92
msgid "list, add or remove servers"
msgstr "liste, ajoute ou retire des serveurs"
-#: src/common/command.c:86
+#: src/common/command.c:93
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-"
"pwd password] [-nicks nick1 [nick2 [nick3]]] [-username username] [-realname "
@@ -2323,7 +2348,7 @@ msgstr ""
"nom_utilisateur] [-realname nom_réel] [-command commande] [-autojoin canal[,"
"canal]] ] | [del nom_serveur]"
-#: src/common/command.c:91
+#: src/common/command.c:98
msgid ""
"servername: server name, for internal & display use\n"
"hostname: name or IP address of server\n"
@@ -2349,27 +2374,27 @@ msgstr ""
"nom_utilisateur: nom d'utilisateur\n"
"nom_réel: nom réel de l'utilisateur"
-#: src/common/command.c:103
+#: src/common/command.c:110
msgid "save config to disk"
msgstr "sauvegarder la configuration sur disque"
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "[file]"
msgstr "[fichier]"
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "file: filename for writing config"
msgstr "fichier: fichier pour sauvegarder la configuration"
-#: src/common/command.c:106
+#: src/common/command.c:113
msgid "set config parameters"
msgstr "modifier des paramètres de configuration"
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid "[option[=value]]"
msgstr "[option[=valeur]]"
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid ""
"option: name of an option\n"
"value: value for option"
@@ -2377,27 +2402,27 @@ msgstr ""
"option: nom d'une option\n"
"valeur: valeur pour l'option"
-#: src/common/command.c:109
+#: src/common/command.c:116
msgid "remove an alias"
msgstr "supprimer un alias"
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name"
msgstr "nom_alias"
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name: name of alias to remove"
msgstr "nom_alias: nom de l'alias à supprimer"
-#: src/common/command.c:112
+#: src/common/command.c:119
msgid "manage windows"
msgstr "gestion des fenêtres"
-#: src/common/command.c:113
+#: src/common/command.c:120
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr "[list | splith | splitv | [merge [down | up | left | right | all]]]"
-#: src/common/command.c:115
+#: src/common/command.c:121
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2409,29 +2434,29 @@ msgstr ""
"splitv: éclate la fenêtre en deux verticalement\n"
"merge: fusionne la fenêtre avec une autre"
-#: src/common/command.c:261
+#: src/common/command.c:267
#, 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:271
+#: src/common/command.c:277
#, 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:278
+#: src/common/command.c:284
#, 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:486
+#: src/common/command.c:492
#, 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:498
+#: src/common/command.c:504
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
@@ -2440,19 +2465,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:520 src/common/command.c:590
+#: src/common/command.c:526 src/common/command.c:596
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr "%s la commande \"%s\" a échoué\n"
-#: src/common/command.c:548
+#: src/common/command.c:554
#, 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:560
+#: src/common/command.c:566
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
@@ -2461,190 +2486,224 @@ 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:575
+#: src/common/command.c:581
#, 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:639
+#: src/common/command.c:645
#, 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:720
+#: src/common/command.c:726
#, 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:742
+#: src/common/command.c:748
#, c-format
msgid "%s unable to call handler for message (not enough memory)\n"
msgstr ""
"%s impossible d'appeler la fonction pour le message (mémoire insuffisante)\n"
-#: src/common/command.c:750
+#: src/common/command.c:756
msgid "This window is not a channel!\n"
msgstr "Cette fenêtre n'est pas un canal !\n"
-#: src/common/command.c:778 src/common/command.c:802 src/common/command.c:906
+#: src/common/command.c:784 src/common/command.c:808 src/common/command.c:913
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr "%s paramètres manquants pour la commande \"%s\"\n"
-#: src/common/command.c:787
+#: src/common/command.c:793
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr "Alias \"%s\" => \"%s\" créé\n"
-#: src/common/command.c:793
+#: src/common/command.c:799
#, 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:813
+#: src/common/command.c:819
msgid "List of aliases:\n"
msgstr "Liste des alias:\n"
-#: src/common/command.c:825
+#: src/common/command.c:831
msgid "No alias defined.\n"
msgstr "Aucun alias défini.\n"
-#: src/common/command.c:848
+#: src/common/command.c:854
msgid "Channel: "
msgstr "Canal: "
-#: src/common/command.c:851 src/common/command.c:861
+#: src/common/command.c:857 src/common/command.c:867
msgid " (server: "
msgstr " (serveur: "
-#: src/common/command.c:858
+#: src/common/command.c:864
msgid "Private with: "
msgstr "Privé avec: "
-#: src/common/command.c:886
+#: src/common/command.c:893
msgid "Opened buffers:\n"
msgstr "Tampons ouverts:\n"
-#: src/common/command.c:929 src/common/command.c:1069
+#: src/common/command.c:936
#, c-format
msgid "%s incorrect buffer number\n"
msgstr "%s numéro de buffer incorrect\n"
-#: src/common/command.c:943
+#: src/common/command.c:950
#, c-format
msgid "%s can not close the single buffer\n"
msgstr "%s impossible de fermer le tampon unique\n"
-#: src/common/command.c:953
+#: src/common/command.c:960
#, 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:992
+#: src/common/command.c:999
msgid "Notify levels: "
msgstr "Niveaux de notification: "
-#: src/common/command.c:1020 src/common/command.c:1042
+#: src/common/command.c:1027 src/common/command.c:1049
#, c-format
msgid "%s incorrect notify level (must be between %d and %d)\n"
msgstr "%s niveau de notification incorrect (doit être entre %d et %d)\n"
-#: src/common/command.c:1029
+#: src/common/command.c:1036
#, c-format
msgid "%s incorrect buffer for notify (must be channel or private)\n"
msgstr ""
"%s tampon incorrect pour la notification (doit être un canal ou un privé)\n"
-#: src/common/command.c:1060
-#, 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:1094
+#: src/common/command.c:1116
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr "paramètre inconnu \"%s\" pour la commande \"%s\"\n"
-#: src/common/command.c:1124
+#: src/common/command.c:1146
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr "%s déjà connecté au serveur \"%s\" !\n"
-#: src/common/command.c:1132
+#: src/common/command.c:1154
#, 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:1150 src/common/command.c:1225
+#: src/common/command.c:1172 src/common/command.c:1247
#, c-format
msgid "%s server not found\n"
msgstr "%s serveur non trouvé\n"
-#: src/common/command.c:1180 src/common/command.c:1444
-#: src/common/command.c:1587 src/common/command.c:2283
-#: src/common/command.c:2295
+#: src/common/command.c:1202 src/common/command.c:1598
+#: src/common/command.c:1741 src/common/command.c:2438
+#: src/common/command.c:2454
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr "%s option inconnue pour la commande \"%s\"\n"
-#: src/common/command.c:1209
+#: src/common/command.c:1231
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr "%s non connecté au serveur \"%s\" !\n"
-#: src/common/command.c:1217
+#: src/common/command.c:1239
msgid "Auto-reconnection is cancelled\n"
msgstr "La reconnexion automatique est annulée\n"
-#: src/common/command.c:1243 src/common/weechat.c:273
+#: src/common/command.c:1265 src/common/weechat.c:273
#, c-format
msgid "%s internal commands:\n"
msgstr "Commandes internes %s :\n"
-#: src/common/command.c:1252 src/common/weechat.c:293
+#: src/common/command.c:1274 src/common/weechat.c:293
#, c-format
msgid "IRC commands:\n"
msgstr "Commandes IRC :\n"
-#: src/common/command.c:1319
+#: src/common/command.c:1341
#, 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:1343 src/common/command.c:1486
+#: src/common/command.c:1359
+msgid "New key binding:\n"
+msgstr "Nouvelle touche:\n"
+
+#: src/common/command.c:1392
+msgid "Key bindings:\n"
+msgstr "Associations de touches:\n"
+
+#: src/common/command.c:1404
+#, c-format
+msgid "Key \"%s\" unbinded\n"
+msgstr "Touche \"%s\" supprimée\n"
+
+#: src/common/command.c:1409
+#, c-format
+msgid "%s unable to unbind key \"%s\"\n"
+msgstr "%s impossible de supprimer la touche \"%s\"\n"
+
+#: src/common/command.c:1417 src/common/weechat.c:324
+#, c-format
+msgid "Internal key functions:\n"
+msgstr "Fonctions internes pour les touches:\n"
+
+#: src/common/command.c:1435
+msgid "Default key bindings restored\n"
+msgstr "Touches par défaut restaurées\n"
+
+#: src/common/command.c:1441
+#, c-format
+msgid "%s \"-yes\" argument is required for keys reset (securuty reason)\n"
+msgstr ""
+"%s le paramètre \"-yes\" est requis pour la réinitialisation des touches "
+"(raison de sécurité)\n"
+
+#: src/common/command.c:1470
+#, c-format
+msgid "%s unable to bind key \"%s\"\n"
+msgstr "%s impossible de créer la touche \"%s\"\n"
+
+#: src/common/command.c:1497 src/common/command.c:1640
#, c-format
msgid "Registered %s scripts:\n"
msgstr "Scripts %s enregistrés :\n"
-#: src/common/command.c:1360 src/common/command.c:1383
-#: src/common/command.c:1406 src/common/command.c:1503
-#: src/common/command.c:1526 src/common/command.c:1549
+#: src/common/command.c:1514 src/common/command.c:1537
+#: src/common/command.c:1560 src/common/command.c:1657
+#: src/common/command.c:1680 src/common/command.c:1703
msgid " (none)\n"
msgstr " (aucun)\n"
-#: src/common/command.c:1365 src/common/command.c:1508
+#: src/common/command.c:1519 src/common/command.c:1662
#, c-format
msgid "%s message handlers:\n"
msgstr "Fonctions %s pour messages :\n"
-#: src/common/command.c:1374 src/common/command.c:1517
+#: src/common/command.c:1528 src/common/command.c:1671
#, c-format
msgid " IRC(%s) => %s(%s)\n"
msgstr " IRC(%s) => %s(%s)\n"
-#: src/common/command.c:1388 src/common/command.c:1531
+#: src/common/command.c:1542 src/common/command.c:1685
#, c-format
msgid "%s command handlers:\n"
msgstr "Commandes %s :\n"
-#: src/common/command.c:1397 src/common/command.c:1540
+#: src/common/command.c:1551 src/common/command.c:1694
#, c-format
msgid " Command /%s => %s(%s)\n"
msgstr " Commande /%s => %s(%s)\n"
-#: src/common/command.c:1457
+#: src/common/command.c:1611
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
@@ -2653,7 +2712,7 @@ msgstr ""
"Merci de reconstruire WeeChat avec l'option \"--enable-perl\" pour le "
"script ./configure\n"
-#: src/common/command.c:1600
+#: src/common/command.c:1754
msgid ""
"WeeChat was build without Python support.\n"
"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
@@ -2663,31 +2722,31 @@ msgstr ""
"Merci de reconstruire WeeChat avec l'option \"--enable-python\" pour le "
"script ./configure\n"
-#: src/common/command.c:1648
+#: src/common/command.c:1802
msgid "No server.\n"
msgstr "Pas de serveur.\n"
-#: src/common/command.c:1659
+#: src/common/command.c:1813
#, c-format
msgid "Server '%s' not found.\n"
msgstr "Serveur '%s' non trouvé.\n"
-#: src/common/command.c:1671
+#: src/common/command.c:1825
#, 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:1679
+#: src/common/command.c:1833
#, 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:1698
+#: src/common/command.c:1852
#, 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:1706
+#: src/common/command.c:1860
#, c-format
msgid ""
"%s you can not delete server \"%s\" because you are connected to. Try /"
@@ -2696,106 +2755,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:1722 src/common/command.c:1868
+#: src/common/command.c:1876 src/common/command.c:2022
msgid "Server"
msgstr "Serveur"
-#: src/common/command.c:1725
+#: src/common/command.c:1879
msgid "has been deleted\n"
msgstr "a été supprimé\n"
-#: src/common/command.c:1740
+#: src/common/command.c:1894
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr "%s paramètres manquants pour la commande \"%s\"\n"
-#: src/common/command.c:1750
+#: src/common/command.c:1904
#, 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:1779 src/common/command.c:1807
-#: src/common/command.c:1820 src/common/command.c:1846
+#: src/common/command.c:1933 src/common/command.c:1961
+#: src/common/command.c:1974 src/common/command.c:2000
#, 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:1792
+#: src/common/command.c:1946
#, 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:1833
+#: src/common/command.c:1987
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr "%s commande manquante pour le paramètre \"%s\"\n"
-#: src/common/command.c:1871
+#: src/common/command.c:2025
msgid "created\n"
msgstr "créé\n"
-#: src/common/command.c:1877
+#: src/common/command.c:2031
#, c-format
msgid "%s unable to create server\n"
msgstr "%s impossible de créer le serveur\n"
-#: src/common/command.c:1932
+#: src/common/command.c:2086
msgid "(unknown)"
msgstr "(inconnu)"
-#: src/common/command.c:1955
+#: src/common/command.c:2109
msgid "(password hidden) "
msgstr "(mot de passe caché) "
-#: src/common/command.c:2019
+#: src/common/command.c:2173
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr "%s serveur \"%s\" non trouvé\n"
-#: src/common/command.c:2050 src/common/command.c:2096
+#: src/common/command.c:2204 src/common/command.c:2250
#, c-format
msgid "%s config option \"%s\" not found\n"
msgstr "%s option de configuration \"%s\" non trouvée\n"
-#: src/common/command.c:2055 src/common/command.c:2088
+#: src/common/command.c:2209 src/common/command.c:2242
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr "%s valeur incorrecte pour l'option \"%s\"\n"
-#: src/common/command.c:2071
+#: src/common/command.c:2225
#, 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:2169
+#: src/common/command.c:2324
#, c-format
msgid "No config option found with \"%s\"\n"
msgstr "Aucune option de configuration trouvée avec \"%s\"\n"
-#: src/common/command.c:2172
+#: src/common/command.c:2327
msgid "No config option found\n"
msgstr "Aucune option de configuration trouvée\n"
-#: src/common/command.c:2178
+#: src/common/command.c:2333
#, 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:2181
+#: src/common/command.c:2336
msgid "config option(s) found\n"
msgstr "option(s) de configuration trouvée(s)\n"
-#: src/common/command.c:2201
+#: src/common/command.c:2356
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr "%s alias ou commande \"%s\" non trouvé\n"
-#: src/common/command.c:2211
+#: src/common/command.c:2366
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr "Alias \"%s\" supprimé\n"
-#: src/common/command.c:2231
+#: src/common/command.c:2386
msgid "Opened windows:\n"
msgstr "Fenêtres ouvertes:\n"
@@ -2938,57 +2997,62 @@ msgstr ""
"où 'j' est le nom de l'alias, et 'join' la commande associée.\n"
"\n"
-#: src/common/weechat.c:371
+#: src/common/weechat.c:344
+#, c-format
+msgid "%s default keys:\n"
+msgstr "Touches par défaut %s:\n"
+
+#: src/common/weechat.c:424
#, c-format
msgid "%s invalid syntax for IRC server ('%s'), ignored\n"
msgstr "%s syntaxe invalide pour le serveur IRC ('%s'), ignoré\n"
-#: src/common/weechat.c:384
+#: src/common/weechat.c:437
#, c-format
msgid "%s unable to create server ('%s'), ignored\n"
msgstr "%s impossible de créer le serveur ('%s'), ignoré\n"
-#: src/common/weechat.c:393
+#: src/common/weechat.c:446
#, c-format
msgid "%s unknown parameter '%s', ignored\n"
msgstr "%s paramètre inconnu '%s', ignoré\n"
-#: src/common/weechat.c:413
+#: src/common/weechat.c:466
#, c-format
msgid "%s cannot create directory \"%s\"\n"
msgstr "%s impossible de créer le répertoire \"%s\"\n"
-#: src/common/weechat.c:439
+#: src/common/weechat.c:492
#, c-format
msgid "%s unable to get HOME directory\n"
msgstr "%s impossible de lire le répertoire personnel\n"
-#: src/common/weechat.c:448
+#: src/common/weechat.c:501
#, c-format
msgid "%s not enough memory for home directory\n"
msgstr "%s pas assez de mémoire pour le répertoire personnel\n"
-#: src/common/weechat.c:458
+#: src/common/weechat.c:511
#, c-format
msgid "%s unable to create ~/.weechat directory\n"
msgstr "%s impossible de créer le répertoire ~/.weechat\n"
-#: src/common/weechat.c:510
+#: src/common/weechat.c:563
#, c-format
msgid "%s unable to create ~/.weechat/logs directory\n"
msgstr "%s impossible de créer le répertoire ~/.weechat/logs\n"
-#: src/common/weechat.c:553
+#: src/common/weechat.c:606
#, c-format
msgid "%s unable to create/append to log file (~/.weechat/%s)"
msgstr "%s impossible de créer/ajouter dans le fichier de log (~/.weechat/%s)"
-#: src/common/weechat.c:576
+#: src/common/weechat.c:629
#, c-format
msgid "%sWelcome to "
msgstr "%sBienvenue dans "
-#: src/common/weechat.c:589 src/common/weechat.c:598
+#: src/common/weechat.c:642 src/common/weechat.c:651
msgid "compiled on"
msgstr "compilé le"
@@ -3000,33 +3064,33 @@ msgstr "Erreur WeeChat:"
msgid "WeeChat Warning:"
msgstr "Avertissement WeeChat:"
-#: src/common/weeconfig.c:88 src/common/weeconfig.c:89
+#: src/common/weeconfig.c:90 src/common/weeconfig.c:91
msgid "set title for window (terminal for Curses GUI) with name & version"
msgstr ""
"définit le titre de la fenêtre (terminal pour l'interface Curses) avec le "
"nom et la version"
-#: src/common/weeconfig.c:92 src/common/weeconfig.c:93
+#: src/common/weeconfig.c:94 src/common/weeconfig.c:95
msgid "display WeeChat logo at startup"
msgstr "afficher le logo WeeChat au démarrage"
-#: src/common/weeconfig.c:96 src/common/weeconfig.c:97
+#: src/common/weeconfig.c:98 src/common/weeconfig.c:99
msgid "display WeeChat version at startup"
msgstr "afficher la version de WeeChat au démarrage"
-#: src/common/weeconfig.c:100
+#: src/common/weeconfig.c:102
msgid "WeeChat slogan"
msgstr "slogan WeeChat"
-#: src/common/weeconfig.c:101
+#: src/common/weeconfig.c:103
msgid "WeeChat slogan (if empty, slogan is not used)"
msgstr "slogan WeeChat (si vide, le slogan ne sera pas utilisé)"
-#: src/common/weeconfig.c:104
+#: src/common/weeconfig.c:106
msgid "charset for decoding messages from server"
msgstr "jeu de caractères pour décoder les messages du serveur"
-#: src/common/weeconfig.c:105
+#: src/common/weeconfig.c:107
msgid ""
"charset for decoding messages from server, examples: UTF-8, ISO-8859-1 (if "
"empty, messages are not converted)"
@@ -3034,11 +3098,11 @@ msgstr ""
"jeu de caractères pour décoder les messages du serveur, exemples: UTF-8, ISO-"
"8859-1 (si non renseigné, les messages ne sont pas convertis)"
-#: src/common/weeconfig.c:108
+#: src/common/weeconfig.c:110
msgid "charset for encoding messages sent to server"
msgstr "jeu de caractères pour encoder les messages envoyés au serveur"
-#: src/common/weeconfig.c:109
+#: src/common/weeconfig.c:111
msgid ""
"charset for encoding messages sent to server, examples: UFT-8, ISO-8859-1 "
"(if empty, local charset is used)"
@@ -3046,11 +3110,11 @@ msgstr ""
"jeu de caractères pour encoder les messages envoyés au serveur, exemples: "
"UFT-8, ISO-8859-1 (si non renseigné, le jeu de caractères local est utilisé)"
-#: src/common/weeconfig.c:112
+#: src/common/weeconfig.c:114
msgid "internal WeeChat charset (should be ISO)"
msgstr "jeu de caractères interne à WeeChat (devrait être ISO)"
-#: src/common/weeconfig.c:113
+#: src/common/weeconfig.c:115
msgid ""
"internal WeeChat charset, should be ISO-xxxx even if locale is UTF-8 (if "
"empty, local charset is used)"
@@ -3058,45 +3122,45 @@ msgstr ""
"jeu de caractères interne à WeeChat, devrait être ISO-xxxx même si la locale "
"est UTF-8 (si non renseigné, le jeu de caractères local est utilisé)"
-#: src/common/weeconfig.c:116 src/common/weeconfig.c:117
+#: src/common/weeconfig.c:118 src/common/weeconfig.c:119
msgid "timestamp for buffers"
msgstr "horodatage pour les tampons"
-#: src/common/weeconfig.c:120 src/common/weeconfig.c:121
+#: src/common/weeconfig.c:122 src/common/weeconfig.c:123
msgid "display nick names with different colors"
msgstr "afficher les utilisateurs avec différentes couleurs"
-#: src/common/weeconfig.c:124 src/common/weeconfig.c:125
+#: src/common/weeconfig.c:126 src/common/weeconfig.c:127
msgid "display actions with different colors"
msgstr "afficher les actions avec différentes couleurs"
-#: src/common/weeconfig.c:128 src/common/weeconfig.c:129
+#: src/common/weeconfig.c:130 src/common/weeconfig.c:131
msgid "remove colors from incoming messages"
msgstr "supprimer les couleurs dans les messages entrants"
-#: src/common/weeconfig.c:132
+#: src/common/weeconfig.c:134
msgid "display nicklist window"
msgstr "afficher la fenêtre des utilisateurs"
-#: src/common/weeconfig.c:133
+#: src/common/weeconfig.c:135
msgid "display nicklist window (for channel windows)"
msgstr "afficher la fenêtre des utilisateurs (pour les fenêtres de canaux)"
-#: src/common/weeconfig.c:136
+#: src/common/weeconfig.c:138
msgid "nicklist position"
msgstr "position de la fenêtre d'utilisateurs"
-#: src/common/weeconfig.c:137
+#: src/common/weeconfig.c:139
msgid "nicklist position (top, left, right (default), bottom)"
msgstr ""
"position de la fenêtre d'utilisateurs (haut (top), gauche (left), droite "
"(right, par défaut), bas (bottom))"
-#: src/common/weeconfig.c:140
+#: src/common/weeconfig.c:142
msgid "min size for nicklist"
msgstr "taille minimum pour la fenêtre d'utilisateurs"
-#: src/common/weeconfig.c:141
+#: src/common/weeconfig.c:143
msgid ""
"min size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no min size))"
@@ -3104,11 +3168,11 @@ msgstr ""
"taille minimum pour la fenêtre d'utilisateurs (largeur ou hauteur, selon "
"look_nicklist_position (0 = pas de taille minimum))"
-#: src/common/weeconfig.c:145
+#: src/common/weeconfig.c:147
msgid "max size for nicklist"
msgstr "taille maximum pour la fenêtre d'utilisateurs"
-#: src/common/weeconfig.c:146
+#: src/common/weeconfig.c:148
msgid ""
"max size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no max size; if min == max and > 0, then size is fixed))"
@@ -3117,39 +3181,43 @@ msgstr ""
"look_nicklist_position (0 = pas de taille maximum; si min == max et > 0, "
"alors la taille est fixe))"
-#: src/common/weeconfig.c:150 src/common/weeconfig.c:151
+#: src/common/weeconfig.c:152 src/common/weeconfig.c:153
msgid "text to display instead of nick when not connected"
msgstr ""
"texte à afficher en lieu et place du nom d'utilisateur lorsque la connexion "
"n'est pas active"
-#: src/common/weeconfig.c:154 src/common/weeconfig.c:155
+#: src/common/weeconfig.c:156 src/common/weeconfig.c:157
msgid "display nick mode ((half)op/voice) before each nick"
msgstr ""
"afficher le mode de l'utilisateur ((half)op/voice) devant chaque utilisateur"
-#: src/common/weeconfig.c:158 src/common/weeconfig.c:159
+#: src/common/weeconfig.c:160 src/common/weeconfig.c:161
msgid "display space if nick mode is not (half)op/voice"
msgstr "afficher un espace si le mode utilisateur n'est pas (half)op/voice"
-#: src/common/weeconfig.c:162 src/common/weeconfig.c:163
+#: src/common/weeconfig.c:164 src/common/weeconfig.c:165
msgid "the string inserted after nick completion"
msgstr "la chaîne affichée après la complétion des utilisateurs"
-#: src/common/weeconfig.c:166 src/common/weeconfig.c:167
+#: src/common/weeconfig.c:168 src/common/weeconfig.c:169
msgid "enable info bar"
msgstr "active la barre d'infos"
-#: src/common/weeconfig.c:170 src/common/weeconfig.c:171
+#: src/common/weeconfig.c:172 src/common/weeconfig.c:173
msgid "timestamp for time in infobar"
msgstr "horodatage pour les conversations sauvegardées"
-#: src/common/weeconfig.c:174
+#: src/common/weeconfig.c:176 src/common/weeconfig.c:177
+msgid "display seconds in infobar time"
+msgstr "afficher les secondes pour l'heure dans la barre d'infos"
+
+#: src/common/weeconfig.c:180
msgid "delay (in seconds) for highlight messages in infobar"
msgstr ""
"délai (en seconds) pour la notification des messages dans la barre d'infos"
-#: src/common/weeconfig.c:175
+#: src/common/weeconfig.c:181
msgid ""
"delay (in seconds) for highlight messages in infobar (0 = disable highlight "
"notifications in infobar)"
@@ -3157,260 +3225,264 @@ msgstr ""
"délai (en secondes) pour la notification des messages dans la barre d'infos "
"(0 = désactiver les notifications dans la barre d'infos)"
-#: src/common/weeconfig.c:233 src/common/weeconfig.c:234
+#: src/common/weeconfig.c:240 src/common/weeconfig.c:241
msgid "color for title bar"
msgstr "couleur pour la barre de titre"
-#: src/common/weeconfig.c:237 src/common/weeconfig.c:238
+#: src/common/weeconfig.c:244 src/common/weeconfig.c:245
msgid "background for title bar"
msgstr "couleur de fond pour la barre de titre"
-#: src/common/weeconfig.c:243 src/common/weeconfig.c:244
+#: src/common/weeconfig.c:250 src/common/weeconfig.c:251
msgid "color for chat text"
msgstr "couleur pour le texte de discussion"
-#: src/common/weeconfig.c:247
+#: src/common/weeconfig.c:254
msgid "color for time"
msgstr "couleur pour l'heure"
-#: src/common/weeconfig.c:248
+#: src/common/weeconfig.c:255
msgid "color for time in chat window"
msgstr "couleur pour l'heure dans la fenêtre de discussion"
-#: src/common/weeconfig.c:251
+#: src/common/weeconfig.c:258
msgid "color for time separator"
msgstr "couleur pour le séparateur de l'heure"
-#: src/common/weeconfig.c:252
+#: src/common/weeconfig.c:259
msgid "color for time separator (chat window)"
msgstr "couleur pour la séparation de l'heure (fenêtre de discussion)"
-#: src/common/weeconfig.c:255 src/common/weeconfig.c:256
+#: src/common/weeconfig.c:262 src/common/weeconfig.c:263
msgid "color for 1st and 3rd char of prefix"
msgstr "couleur pour le 1er et le 3ème caractère du préfixe"
-#: src/common/weeconfig.c:259 src/common/weeconfig.c:260
+#: src/common/weeconfig.c:266 src/common/weeconfig.c:267
msgid "color for middle char of prefix"
msgstr "couleur pour le caractère du milieu du préfixe"
-#: src/common/weeconfig.c:263
+#: src/common/weeconfig.c:270
msgid "color for nicks in actions"
msgstr "couleur pour les noms d'utilisateur dans les actions"
-#: src/common/weeconfig.c:264
+#: src/common/weeconfig.c:271
msgid "color for nicks in actions (chat window)"
msgstr ""
"couleur pour les noms d'utilisateurs dans les actions (fenêtre de discussion)"
-#: src/common/weeconfig.c:267
+#: src/common/weeconfig.c:274
msgid "color for hostnames"
msgstr "couleur pour les noms de machines"
-#: src/common/weeconfig.c:268
+#: src/common/weeconfig.c:275
msgid "color for hostnames (chat window)"
msgstr "couleur pour les noms de machines (fenêtre de discussion)"
-#: src/common/weeconfig.c:271
+#: src/common/weeconfig.c:278
msgid "color for channel names in actions"
msgstr "couleur pour les canaux dans les actions"
-#: src/common/weeconfig.c:272
+#: src/common/weeconfig.c:279
msgid "color for channel names in actions (chat window)"
msgstr "couleur pour les canaux dans les actions (fenêtre de discussion)"
-#: src/common/weeconfig.c:275
+#: src/common/weeconfig.c:282
msgid "color for dark separators"
msgstr "couleur pour les séparateurs sombres"
-#: src/common/weeconfig.c:276
+#: src/common/weeconfig.c:283
msgid "color for dark separators (chat window)"
msgstr "couleur pour les séparateurs sombres (fenêtre de discussion)"
-#: src/common/weeconfig.c:279
+#: src/common/weeconfig.c:286
msgid "color for highlighted nick"
msgstr "couleur pour le pseudo surligné"
-#: src/common/weeconfig.c:280
+#: src/common/weeconfig.c:287
msgid "color for highlighted nick (chat window)"
msgstr "couleur pour le pseudo surligné (fenêtre de discussion)"
-#: src/common/weeconfig.c:283
+#: src/common/weeconfig.c:290
msgid "background for chat"
msgstr "couleur de fond pour la discussion"
-#: src/common/weeconfig.c:284
+#: src/common/weeconfig.c:291
msgid "background for chat window"
msgstr "couleur de fond pour la fenêtre de discussion"
-#: src/common/weeconfig.c:289 src/common/weeconfig.c:290
+#: src/common/weeconfig.c:296 src/common/weeconfig.c:297
msgid "color for status bar"
msgstr "couleur pour la barre de statut"
-#: src/common/weeconfig.c:293 src/common/weeconfig.c:294
+#: src/common/weeconfig.c:300 src/common/weeconfig.c:301
msgid "color for status bar delimiters"
msgstr "couleur pour les délimiteurs de la barre de statut"
-#: src/common/weeconfig.c:297
+#: src/common/weeconfig.c:304
msgid "color for window with new messages"
msgstr "couleur pour une fenêtre avec de nouvelles infos"
-#: src/common/weeconfig.c:298
+#: src/common/weeconfig.c:305
msgid "color for window with new messages (status bar)"
msgstr "couleur pour une fenêtre avec de nouvelles infos (barre de statut)"
-#: src/common/weeconfig.c:301
+#: src/common/weeconfig.c:308
msgid "color for window with highlight"
msgstr "couleur pour une fenêtre avec un highlight"
-#: src/common/weeconfig.c:302
+#: src/common/weeconfig.c:309
msgid "color for window with highlight (status bar)"
msgstr "couleur pour une fenêtre avec un highlight (barre de statut)"
-#: src/common/weeconfig.c:305
+#: src/common/weeconfig.c:312
msgid "color for window with new data (not messages)"
msgstr "couleur pour une fenêtre avec des nouvelles données (pas des infos)"
-#: src/common/weeconfig.c:306
+#: src/common/weeconfig.c:313
msgid "color for window with new data (not messages) (status bar)"
msgstr ""
"couleur pour une fenêtre avec des nouvelles données (pas des infos) (barre "
"de statut)"
-#: src/common/weeconfig.c:309
+#: src/common/weeconfig.c:316
msgid "color for \"-MORE-\" text"
msgstr "couleur pour le texte \"-PLUS-\""
-#: src/common/weeconfig.c:310
+#: src/common/weeconfig.c:317
msgid "color for window with new data (status bar)"
msgstr "couleur pour une fenêtre avec des nouvelles données (barre de statut)"
-#: src/common/weeconfig.c:313 src/common/weeconfig.c:314
+#: src/common/weeconfig.c:320 src/common/weeconfig.c:321
msgid "background for status window"
msgstr "couleur de fond pour la fenêtre de statut"
-#: src/common/weeconfig.c:319 src/common/weeconfig.c:320
+#: src/common/weeconfig.c:326 src/common/weeconfig.c:327
msgid "color for info bar text"
msgstr "couleur pour la barre d'infos"
-#: src/common/weeconfig.c:323 src/common/weeconfig.c:324
+#: src/common/weeconfig.c:330 src/common/weeconfig.c:331
+msgid "color for infobar delimiters"
+msgstr "couleur pour les délimiteurs de la barre d'infos"
+
+#: src/common/weeconfig.c:334 src/common/weeconfig.c:335
msgid "color for info bar highlight notification"
msgstr "couleur pour la notification dans la barre d'infos"
-#: src/common/weeconfig.c:327 src/common/weeconfig.c:328
+#: src/common/weeconfig.c:338 src/common/weeconfig.c:339
msgid "background for info bar window"
msgstr "couleur de fond pour la fenêtre de barre d'infos"
-#: src/common/weeconfig.c:333 src/common/weeconfig.c:334
+#: src/common/weeconfig.c:344 src/common/weeconfig.c:345
msgid "color for input text"
msgstr "couleur pour le texte saisi"
-#: src/common/weeconfig.c:337 src/common/weeconfig.c:338
+#: src/common/weeconfig.c:348 src/common/weeconfig.c:349
msgid "color for input text (channel name)"
msgstr "couleur pour le texte saisi (nom du canal)"
-#: src/common/weeconfig.c:341 src/common/weeconfig.c:342
+#: src/common/weeconfig.c:352 src/common/weeconfig.c:353
msgid "color for input text (nick name)"
msgstr "couleur pour le texte saisi (pseudo)"
-#: src/common/weeconfig.c:345 src/common/weeconfig.c:346
+#: src/common/weeconfig.c:356 src/common/weeconfig.c:357
msgid "background for input window"
msgstr "couleur de fond pour la fenêtre de saisie"
-#: src/common/weeconfig.c:351 src/common/weeconfig.c:352
+#: src/common/weeconfig.c:362 src/common/weeconfig.c:363
msgid "color for nicknames"
msgstr "couleur pour les pseudos"
-#: src/common/weeconfig.c:355 src/common/weeconfig.c:356
+#: src/common/weeconfig.c:366 src/common/weeconfig.c:367
msgid "color for away nicknames"
msgstr "couleur pour les pseudos absents"
-#: src/common/weeconfig.c:359
+#: src/common/weeconfig.c:370
msgid "color for chan owner symbol"
msgstr "couleur pour le symbole du propriétaire du canal"
-#: src/common/weeconfig.c:360
+#: src/common/weeconfig.c:371
msgid "color for chan owner symbol (specific to unrealircd)"
msgstr ""
"couleur pour le symbole du propriétaire du canal (spécifique à unrealircd)"
-#: src/common/weeconfig.c:363
+#: src/common/weeconfig.c:374
msgid "color for chan admin symbol"
msgstr "couleur pour le symbole administrateur du canal"
-#: src/common/weeconfig.c:364
+#: src/common/weeconfig.c:375
msgid "color for chan admin symbol (specific to unrealircd)"
msgstr ""
"couleur pour le symbole administrateur du canal (spécifique à unrealircd)"
-#: src/common/weeconfig.c:367 src/common/weeconfig.c:368
+#: src/common/weeconfig.c:378 src/common/weeconfig.c:379
msgid "color for operator symbol"
msgstr "couleur pour le symbole opérateur"
-#: src/common/weeconfig.c:371 src/common/weeconfig.c:372
+#: src/common/weeconfig.c:382 src/common/weeconfig.c:383
msgid "color for half-operator symbol"
msgstr "couleur pour le symbole demi-opérateur"
-#: src/common/weeconfig.c:375 src/common/weeconfig.c:376
+#: src/common/weeconfig.c:386 src/common/weeconfig.c:387
msgid "color for voice symbol"
msgstr "couleur pour le symbole voix"
-#: src/common/weeconfig.c:379 src/common/weeconfig.c:380
+#: src/common/weeconfig.c:390 src/common/weeconfig.c:391
msgid "color for '+' when scrolling nicks"
msgstr "couleur pour les '+' lors du scroll sur les pseudos"
-#: src/common/weeconfig.c:383 src/common/weeconfig.c:384
+#: src/common/weeconfig.c:394 src/common/weeconfig.c:395
msgid "color for nick separator"
msgstr "couleur pour le séparateur de pseudo"
-#: src/common/weeconfig.c:387 src/common/weeconfig.c:388
+#: src/common/weeconfig.c:398 src/common/weeconfig.c:399
msgid "color for local nick"
msgstr "couleur pour le pseudo local"
-#: src/common/weeconfig.c:391 src/common/weeconfig.c:392
+#: src/common/weeconfig.c:402 src/common/weeconfig.c:403
msgid "color for other nick in private window"
msgstr "couleur pour l'autre pseudo dans la fenêtre privée"
-#: src/common/weeconfig.c:395 src/common/weeconfig.c:396
+#: src/common/weeconfig.c:406 src/common/weeconfig.c:407
msgid "background for nicknames"
msgstr "couleur de fond pour les pseudos"
-#: src/common/weeconfig.c:401
+#: src/common/weeconfig.c:412
msgid "color for selected DCC"
msgstr "couleur pour le DCC sélectionné"
-#: src/common/weeconfig.c:402
+#: src/common/weeconfig.c:413
msgid "color for selected DCC (chat window)"
msgstr "couleur pour le DCC sélectionné (fenêtre de discussion)"
-#: src/common/weeconfig.c:405 src/common/weeconfig.c:406
+#: src/common/weeconfig.c:416 src/common/weeconfig.c:417
msgid "color for \"waiting\" dcc status"
msgstr "couleur pour le statut dcc \"attente\""
-#: src/common/weeconfig.c:409 src/common/weeconfig.c:410
+#: src/common/weeconfig.c:420 src/common/weeconfig.c:421
msgid "color for \"connecting\" dcc status"
msgstr "couleur pour le statut dcc \"connexion\""
-#: src/common/weeconfig.c:413 src/common/weeconfig.c:414
+#: src/common/weeconfig.c:424 src/common/weeconfig.c:425
msgid "color for \"active\" dcc status"
msgstr "couleur pour le statut dcc \"actif\""
-#: src/common/weeconfig.c:417 src/common/weeconfig.c:418
+#: src/common/weeconfig.c:428 src/common/weeconfig.c:429
msgid "color for \"done\" dcc status"
msgstr "couleur pour le statut dcc \"terminé\""
-#: src/common/weeconfig.c:421 src/common/weeconfig.c:422
+#: src/common/weeconfig.c:432 src/common/weeconfig.c:433
msgid "color for \"failed\" dcc status"
msgstr "couleur pour le statut dcc \"échoué\""
-#: src/common/weeconfig.c:425 src/common/weeconfig.c:426
+#: src/common/weeconfig.c:436 src/common/weeconfig.c:437
msgid "color for \"aborted\" dcc status"
msgstr "couleur pour le statut dcc \"interrompu\""
-#: src/common/weeconfig.c:439
+#: src/common/weeconfig.c:450
msgid "max lines in history (per window)"
msgstr "nombre maxi de lignes dans l'historique (par fenêtre)"
-#: src/common/weeconfig.c:440
+#: src/common/weeconfig.c:451
msgid ""
"maximum number of lines in history for one server/channel/private window (0 "
"= unlimited)"
@@ -3418,339 +3490,339 @@ msgstr ""
"nombre maximum de lignes dans l'historique pour un serveur/fenêtre/fenêtre "
"privée (0 = sans limite)"
-#: src/common/weeconfig.c:444
+#: src/common/weeconfig.c:455
msgid "max user commands in history"
msgstr "nombre maxi de commandes utilisateur dans l'historique"
-#: src/common/weeconfig.c:445
+#: src/common/weeconfig.c:456
msgid "maximum number of user commands in history (0 = unlimited)"
msgstr ""
"nombre maximum de commandes utilisateur dans l'historique (0 = sans limite)"
-#: src/common/weeconfig.c:462 src/common/weeconfig.c:463
+#: src/common/weeconfig.c:473 src/common/weeconfig.c:474
msgid "automatically log server messages"
msgstr "enregistrer automatiquement les messages du serveur"
-#: src/common/weeconfig.c:466 src/common/weeconfig.c:467
+#: src/common/weeconfig.c:477 src/common/weeconfig.c:478
msgid "automatically log channel chats"
msgstr "enregistrer automatiquement les conversations des canaux"
-#: src/common/weeconfig.c:470 src/common/weeconfig.c:471
+#: src/common/weeconfig.c:481 src/common/weeconfig.c:482
msgid "automatically log private chats"
msgstr "enregistrer automatiquement les conversations privées"
-#: src/common/weeconfig.c:474 src/common/weeconfig.c:475
+#: src/common/weeconfig.c:485 src/common/weeconfig.c:486
msgid "log messages from plugins (scripts)"
msgstr "enregistrer les messages des plugins (scripts)"
-#: src/common/weeconfig.c:478
+#: src/common/weeconfig.c:489
msgid "path for log files"
msgstr "chemin pour les conversations sauvegardées"
-#: src/common/weeconfig.c:479
+#: src/common/weeconfig.c:490
msgid "path for WeeChat log files"
msgstr "chemin pour les conversations sauvegardées par WeeChat"
-#: src/common/weeconfig.c:482
+#: src/common/weeconfig.c:493
msgid "timestamp for log"
msgstr "horodatage pour les conversations sauvegardées"
-#: src/common/weeconfig.c:483
+#: src/common/weeconfig.c:494
msgid "timestamp for log (see man strftime for date/time specifiers)"
msgstr ""
"horodatage pour les conversations sauvegardées (voir man strftime pour le "
"format de date/heure)"
-#: src/common/weeconfig.c:486 src/common/weeconfig.c:487
+#: src/common/weeconfig.c:497 src/common/weeconfig.c:498
msgid "hide password displayed by nickserv"
msgstr "masquer le mot de passe affiché par nickserv"
-#: src/common/weeconfig.c:506
+#: src/common/weeconfig.c:517
msgid "display message to all channels when away"
msgstr "affiche un message sur tous les canaux pour l'absence"
-#: src/common/weeconfig.c:507
+#: src/common/weeconfig.c:518
msgid "display message to all channels when (un)marking as away"
msgstr "affiche un message sur tous les canaux pour l'absence/le retour"
-#: src/common/weeconfig.c:510 src/common/weeconfig.c:511
+#: src/common/weeconfig.c:521 src/common/weeconfig.c:522
msgid "default message when away"
msgstr "message par défaut pour l'absence"
-#: src/common/weeconfig.c:514 src/common/weeconfig.c:515
+#: src/common/weeconfig.c:525 src/common/weeconfig.c:526
msgid "default part message (leaving channel)"
msgstr "message par défaut pour le part (quitte un canal)"
-#: src/common/weeconfig.c:518
+#: src/common/weeconfig.c:529
msgid "default quit message"
msgstr "message de fin par défaut"
-#: src/common/weeconfig.c:519
+#: src/common/weeconfig.c:530
msgid ""
"default quit message ('%v' will be replaced by WeeChat version in string)"
msgstr ""
"message de fin par défaut ('%v' sera remplacé par la version de WeeChat dans "
"la chaîne)"
-#: src/common/weeconfig.c:522
+#: src/common/weeconfig.c:533
msgid "interval between two checks for away"
msgstr "intervalle entre deux vérifications des absences"
-#: src/common/weeconfig.c:523
+#: src/common/weeconfig.c:534
msgid "interval between two checks for away (in minutes, 0 = never check)"
msgstr ""
"intervalle entre deux vérifications des absences (en minutes, 0 = ne jemais "
"vérifier)"
-#: src/common/weeconfig.c:526
+#: src/common/weeconfig.c:537
msgid "interval between two checks for lag"
msgstr "intervalle entre deux mesures de lag"
-#: src/common/weeconfig.c:527
+#: src/common/weeconfig.c:538
msgid "interval between two checks for lag (in seconds)"
msgstr "intervalle entre deux mesures de lag (en secondes)"
-#: src/common/weeconfig.c:530
+#: src/common/weeconfig.c:541
msgid "minimum lag to show"
msgstr "lag minimum à afficher"
-#: src/common/weeconfig.c:531
+#: src/common/weeconfig.c:542
msgid "minimum lag to show (in seconds)"
msgstr "lag minimum à afficher (en secondes)"
-#: src/common/weeconfig.c:534
+#: src/common/weeconfig.c:545
msgid "disconnect after important lag"
msgstr "déconnexion après un lag important"
-#: src/common/weeconfig.c:535
+#: src/common/weeconfig.c:546
msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
"déconnexion après un lag important (en minutes, 0 = ne jamais se déconnecter)"
-#: src/common/weeconfig.c:538 src/common/weeconfig.c:539
+#: src/common/weeconfig.c:549 src/common/weeconfig.c:550
msgid "create a FIFO pipe for remote control"
msgstr "créer un tube FIFO pour le contrôle à distance"
-#: src/common/weeconfig.c:558
+#: src/common/weeconfig.c:569
msgid "automatically accept dcc files"
msgstr "accepte automatiquement les fichiers dcc"
-#: src/common/weeconfig.c:559
+#: src/common/weeconfig.c:570
msgid "automatically accept incoming dcc files"
msgstr "accepte automatiquement les fichiers dcc entrants"
-#: src/common/weeconfig.c:562
+#: src/common/weeconfig.c:573
msgid "automatically accept dcc chats"
msgstr "accepte automatiquement les demandes de discussion dcc"
-#: src/common/weeconfig.c:563
+#: src/common/weeconfig.c:574
msgid "automatically accept dcc chats (use carefully!)"
msgstr ""
"accepte automatiquement les demandes de discussion dcc (à utiliser avec "
"précaution !)"
-#: src/common/weeconfig.c:566
+#: src/common/weeconfig.c:577
msgid "timeout for dcc request"
msgstr "délai d'attente pour les requêtes dcc"
-#: src/common/weeconfig.c:567
+#: src/common/weeconfig.c:578
msgid "timeout for dcc request (in seconds)"
msgstr "délai d'attente pour les requêtes dcc (en secondes)"
-#: src/common/weeconfig.c:570
+#: src/common/weeconfig.c:581
msgid "block size for dcc packets"
msgstr "taille de bloc pour les paquets dcc"
-#: src/common/weeconfig.c:571
+#: src/common/weeconfig.c:582
msgid "block size for dcc packets in bytes (default: 65536)"
msgstr "taille de bloc pour les paquets dcc en octets (défaut: 65536)"
-#: src/common/weeconfig.c:574
+#: src/common/weeconfig.c:585
msgid "path for incoming files with dcc"
msgstr "chemin les fichiers reçus par dcc"
-#: src/common/weeconfig.c:575
+#: src/common/weeconfig.c:586
msgid "path for writing incoming files with dcc (default: user home)"
msgstr ""
"chemin pour écrire les fichiers reçus par dcc (par défaut: répertoire de "
"l'utilisateur)"
-#: src/common/weeconfig.c:578
+#: src/common/weeconfig.c:589
msgid "default path for sending files with dcc"
msgstr "chemin par défaut pour envoyer les fichiers par dcc"
-#: src/common/weeconfig.c:579
+#: src/common/weeconfig.c:590
msgid ""
"path for reading files when sending thru dcc (when no path is specified)"
msgstr ""
"chemin pour lire les fichiers lorsqu'ils sont envoyés par dcc (quand aucun "
"chemin n'est spécifié)"
-#: src/common/weeconfig.c:582 src/common/weeconfig.c:583
+#: src/common/weeconfig.c:593 src/common/weeconfig.c:594
msgid "convert spaces to underscores when sending files"
msgstr "convertir les espaces en underscores lors d'envoi de fichiers"
-#: src/common/weeconfig.c:586
+#: src/common/weeconfig.c:597
msgid "automatically rename dcc files if already exists"
msgstr "renomme automatiquement les fichiers dcc s'ils existent déjà"
-#: src/common/weeconfig.c:587
+#: src/common/weeconfig.c:598
msgid "rename incoming files if already exists (add '.1', '.2', ...)"
msgstr ""
"renommer les fichiers reçus s'ils existent déjà (ajoute '.1', '.2', ...)"
-#: src/common/weeconfig.c:590
+#: src/common/weeconfig.c:601
msgid "automatically resume aborted transfers"
msgstr "continuer automatiquement les transferts non terminés"
-#: src/common/weeconfig.c:591
+#: src/common/weeconfig.c:602
msgid ""
"automatically resume dcc transfer if connection with remote host is loosed"
msgstr ""
"continuer automatiquement les transferts dcc si la connexion avec la machine "
"distante a été perdue"
-#: src/common/weeconfig.c:610
+#: src/common/weeconfig.c:621
msgid "use proxy"
msgstr "utiliser un proxy"
-#: src/common/weeconfig.c:611
+#: src/common/weeconfig.c:622
msgid "use a proxy server to connect to irc server"
msgstr "utiliser un proxy pour se connecter au serveur irc"
-#: src/common/weeconfig.c:614
+#: src/common/weeconfig.c:625
msgid "proxy type"
msgstr "type de proxy"
-#: src/common/weeconfig.c:615
+#: src/common/weeconfig.c:626
msgid "proxy type (http (default), socks4, socks5)"
msgstr "type de proxy (http (défaut), socks4, socks5)"
-#: src/common/weeconfig.c:618
+#: src/common/weeconfig.c:629
msgid "use ipv6 proxy"
msgstr "utiliser un proxy ipv6"
-#: src/common/weeconfig.c:619
+#: src/common/weeconfig.c:630
msgid "connect to proxy in ipv6"
msgstr "se connecter au proxy en ipv6"
-#: src/common/weeconfig.c:622
+#: src/common/weeconfig.c:633
msgid "proxy address"
msgstr "adresse du proxy"
-#: src/common/weeconfig.c:623
+#: src/common/weeconfig.c:634
msgid "proxy server address (IP or hostname)"
msgstr "adresse du serveur proxy (IP ou nom)"
-#: src/common/weeconfig.c:626
+#: src/common/weeconfig.c:637
msgid "port for proxy"
msgstr "port pour le proxy"
-#: src/common/weeconfig.c:627
+#: src/common/weeconfig.c:638
msgid "port for connecting to proxy server"
msgstr "port pour se connecter au serveur proxy"
-#: src/common/weeconfig.c:630
+#: src/common/weeconfig.c:641
msgid "proxy username"
msgstr "nom d'utilisateur proxy"
-#: src/common/weeconfig.c:631
+#: src/common/weeconfig.c:642
msgid "username for proxy server"
msgstr "nom d'utilisateur pour le serveur proxy"
-#: src/common/weeconfig.c:634
+#: src/common/weeconfig.c:645
msgid "proxy password"
msgstr "mot de passe pour le proxy"
-#: src/common/weeconfig.c:635
+#: src/common/weeconfig.c:646
msgid "password for proxy server"
msgstr "mot de passe pour le serveur proxy"
-#: src/common/weeconfig.c:646
+#: src/common/weeconfig.c:657
msgid "server name"
msgstr "nom du serveur"
-#: src/common/weeconfig.c:647
+#: src/common/weeconfig.c:658
msgid "name associated to IRC server (for display only)"
msgstr "nom associé au serveur IRC (pour affichage seulement)"
-#: src/common/weeconfig.c:650
+#: src/common/weeconfig.c:661
msgid "automatically connect to server"
msgstr "connexion automatique au serveur"
-#: src/common/weeconfig.c:651
+#: src/common/weeconfig.c:662
msgid "automatically connect to server when WeeChat is starting"
msgstr "connexion automatique au serveur quand WeeChat démarre"
-#: src/common/weeconfig.c:654
+#: src/common/weeconfig.c:665
msgid "automatically reconnect to server"
msgstr "reconnexion automatique au serveur"
-#: src/common/weeconfig.c:655
+#: src/common/weeconfig.c:666
msgid "automatically reconnect to server when disconnected"
msgstr "reconnexion automatique au serveur après une déconnexion"
-#: src/common/weeconfig.c:658
+#: src/common/weeconfig.c:669
msgid "delay before trying again to reconnect"
msgstr "délai avant de tenter une reconnexion"
-#: src/common/weeconfig.c:659
+#: src/common/weeconfig.c:670
msgid "delay (in seconds) before trying again to reconnect to server"
msgstr "délai (en secondes) avant de tenter une reconnexion au serveur"
-#: src/common/weeconfig.c:662
+#: src/common/weeconfig.c:673
msgid "server address or hostname"
msgstr "adresse ou nom du serveur"
-#: src/common/weeconfig.c:663
+#: src/common/weeconfig.c:674
msgid "IP address or hostname of IRC server"
msgstr "adresse IP ou nom du serveur IRC"
-#: src/common/weeconfig.c:666
+#: src/common/weeconfig.c:677
msgid "port for IRC server"
msgstr "port pour le serveur IRC"
-#: src/common/weeconfig.c:667
+#: src/common/weeconfig.c:678
msgid "port for connecting to server"
msgstr "port pour se connecter au serveur"
-#: src/common/weeconfig.c:670 src/common/weeconfig.c:671
+#: src/common/weeconfig.c:681 src/common/weeconfig.c:682
msgid "use IPv6 protocol for server communication"
msgstr "utiliser le protocole IPv6 pour la communication avec le serveur"
-#: src/common/weeconfig.c:674 src/common/weeconfig.c:675
+#: src/common/weeconfig.c:685 src/common/weeconfig.c:686
msgid "use SSL for server communication"
msgstr "utiliser SSL pour la communication avec le serveur"
-#: src/common/weeconfig.c:678
+#: src/common/weeconfig.c:689
msgid "server password"
msgstr "mot de passe pour le serveur"
-#: src/common/weeconfig.c:679
+#: src/common/weeconfig.c:690
msgid "password for IRC server"
msgstr "mot de passe pour le serveur IRC"
-#: src/common/weeconfig.c:682
+#: src/common/weeconfig.c:693
msgid "nickname for server"
msgstr "pseudo pour le serveur"
-#: src/common/weeconfig.c:683
+#: src/common/weeconfig.c:694
msgid "nickname to use on IRC server"
msgstr "pseudo à utiliser sur le serveur IRC"
-#: src/common/weeconfig.c:686
+#: src/common/weeconfig.c:697
msgid "alternate nickname for server"
msgstr "pseudo alternatif pour le serveur"
-#: src/common/weeconfig.c:687
+#: src/common/weeconfig.c:698
msgid "alternate nickname to use on IRC server (if nickname is already used)"
msgstr "pseudo alternatif pour le serveur IRC (si le pseudo est déjà utilisé)"
-#: src/common/weeconfig.c:690
+#: src/common/weeconfig.c:701
msgid "2nd alternate nickname for server"
msgstr "2nd pseudo alternatif pour le serveur"
-#: src/common/weeconfig.c:691
+#: src/common/weeconfig.c:702
msgid ""
"2nd alternate nickname to use on IRC server (if alternate nickname is "
"already used)"
@@ -3758,31 +3830,31 @@ msgstr ""
"2nd pseudo alternatif pour le serveur IRC (si le pseudo alternatif est déjà "
"utilisé)"
-#: src/common/weeconfig.c:694
+#: src/common/weeconfig.c:705
msgid "user name for server"
msgstr "nom d'utilisateur pour le serveur"
-#: src/common/weeconfig.c:695
+#: src/common/weeconfig.c:706
msgid "user name to use on IRC server"
msgstr "nom d'utilisateur pour le serveur IRC"
-#: src/common/weeconfig.c:698
+#: src/common/weeconfig.c:709
msgid "real name for server"
msgstr "nom réel pour le serveur"
-#: src/common/weeconfig.c:699
+#: src/common/weeconfig.c:710
msgid "real name to use on IRC server"
msgstr "nom réel pour le serveur IRC"
-#: src/common/weeconfig.c:702 src/common/weeconfig.c:703
+#: src/common/weeconfig.c:713 src/common/weeconfig.c:714
msgid "first command to run when connected to server"
msgstr "commande à exécuter en premier lorsque connecté au serveur"
-#: src/common/weeconfig.c:706
+#: src/common/weeconfig.c:717
msgid "delay (in seconds) after command was executed"
msgstr "délai (en secondes) après exécution de la commande"
-#: src/common/weeconfig.c:707
+#: src/common/weeconfig.c:718
msgid ""
"delay (in seconds) after command was executed (example: give some time for "
"authentication)"
@@ -3790,25 +3862,25 @@ msgstr ""
"délai (en secondes) après exécution de la commande (exemple: donner du temps "
"pour l'authentification)"
-#: src/common/weeconfig.c:710
+#: src/common/weeconfig.c:721
msgid "list of channels to join when connected to server"
msgstr "liste des canaux à rejoindre lorsque connecté au serveur"
-#: src/common/weeconfig.c:711
+#: src/common/weeconfig.c:722
msgid "comma separated list of channels to join when connected to server"
msgstr ""
"liste des canaux (séparés par des virgules) à rejoindre lorsque connecté au "
"serveur"
-#: src/common/weeconfig.c:714 src/common/weeconfig.c:715
+#: src/common/weeconfig.c:725 src/common/weeconfig.c:726
msgid "automatically rejoin channels when kicked"
msgstr "rejoindre automatiquement les canaux quand mis dehors"
-#: src/common/weeconfig.c:718
+#: src/common/weeconfig.c:729
msgid "notify levels for channels of this server"
msgstr "niveaux de notification pour les canaux de ce serveur"
-#: src/common/weeconfig.c:719
+#: src/common/weeconfig.c:730
msgid ""
"comma separated list of notify levels for channels of this server (format: "
"#channel:1,..)"
@@ -3816,64 +3888,64 @@ msgstr ""
"liste des niveaux de notifications (séparés par des virgules) pour les "
"canaux de ce serveur (format: #canal:1,..)"
-#: src/common/weeconfig.c:1177
+#: src/common/weeconfig.c:1190
#, c-format
msgid "%s %s, line %d: new server, but previous was incomplete\n"
msgstr "%s %s, ligne %d: nouveau serveur, mais le précédent était incomplet\n"
-#: src/common/weeconfig.c:1186
+#: src/common/weeconfig.c:1199
#, c-format
msgid "%s %s, line %d: server '%s' already exists\n"
msgstr "%s %s, ligne %d: le serveur '%s' existe déjà\n"
-#: src/common/weeconfig.c:1201
+#: src/common/weeconfig.c:1214
#, c-format
msgid "%s %s, line %d: unable to create server\n"
msgstr "%s %s, ligne %d: impossible de créer le serveur\n"
-#: src/common/weeconfig.c:1240
+#: src/common/weeconfig.c:1254
#, c-format
msgid "%s unable to assign default int with string (\"%s\")\n"
msgstr ""
"%s impossible d'assigner la valeur entière par défaut avec la chaîne (\"%s"
"\")\n"
-#: src/common/weeconfig.c:1251
+#: src/common/weeconfig.c:1265
#, c-format
msgid "%s unable to assign default color (\"%s\")\n"
msgstr "%s impossible d'assigner la couleur par défaut (\"%s\")\n"
-#: src/common/weeconfig.c:1290
+#: src/common/weeconfig.c:1304
#, c-format
msgid "%s config file \"%s\" not found.\n"
msgstr "%s fichier de configuration \"%s\" non trouvé.\n"
-#: src/common/weeconfig.c:1322
+#: src/common/weeconfig.c:1336
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"]\"\n"
msgstr "%s %s, ligne %d: syntaxe invalide, il manque \"]\"\n"
-#: src/common/weeconfig.c:1339
+#: src/common/weeconfig.c:1353
#, c-format
msgid "%s %s, line %d: unknown section identifier (\"%s\")\n"
msgstr "%s %s, ligne %d: section inconnue (\"%s\")\n"
-#: src/common/weeconfig.c:1357
+#: src/common/weeconfig.c:1371
#, c-format
msgid "%s %s, line %d: invalid section for option, line is ignored\n"
msgstr "%s %s, ligne %d: section invalide pour l'option, ligne ignorée\n"
-#: src/common/weeconfig.c:1365
+#: src/common/weeconfig.c:1379
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"=\"\n"
msgstr "%s %s, ligne %d: syntaxe invalide, il manque \"=\"\n"
-#: src/common/weeconfig.c:1399
+#: src/common/weeconfig.c:1427
#, c-format
msgid "%s %s, line %d: invalid option \"%s\"\n"
msgstr "%s %s, ligne %d: option \"%s\" invalide\n"
-#: src/common/weeconfig.c:1410
+#: src/common/weeconfig.c:1438
#, c-format
msgid ""
"%s %s, line %d: invalid value foroption '%s'\n"
@@ -3882,7 +3954,7 @@ msgstr ""
"%s %s, ligne %d: valeur invalide pour l'option '%s'\n"
"Attendu: valeur booléenne: 'off' ou 'on'\n"
-#: src/common/weeconfig.c:1419
+#: src/common/weeconfig.c:1447
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
@@ -3891,7 +3963,7 @@ msgstr ""
"%s %s, ligne %d: valeur invalide pour l'option '%s'\n"
"Attendu: entier compris entre %d et %d\n"
-#: src/common/weeconfig.c:1430
+#: src/common/weeconfig.c:1458
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
@@ -3900,26 +3972,26 @@ msgstr ""
"%s %s, ligne %d: valeur invalide pour l'option '%s'\n"
"Attendu: une de ces chaînes: "
-#: src/common/weeconfig.c:1446
+#: src/common/weeconfig.c:1474
#, c-format
msgid "%s %s, line %d: invalid color name for option '%s'\n"
msgstr "%s %s, ligne %d: nom de couleur invalide pour l'option '%s'\n"
-#: src/common/weeconfig.c:1506 src/common/weeconfig.c:1677
+#: src/common/weeconfig.c:1536 src/common/weeconfig.c:1731
#, c-format
msgid "%s cannot create file \"%s\"\n"
msgstr "%s impossible de créer le fichier \"%s\"\n"
-#: src/common/weeconfig.c:1512
+#: src/common/weeconfig.c:1542
#, c-format
msgid "%s: creating default config file...\n"
msgstr "%s: création du fichier de configuration par défaut...\n"
-#: src/common/weeconfig.c:1513
+#: src/common/weeconfig.c:1543
msgid "Creating default config file\n"
msgstr "Création du fichier de configuration par défaut\n"
-#: src/common/weeconfig.c:1516 src/common/weeconfig.c:1686
+#: src/common/weeconfig.c:1546 src/common/weeconfig.c:1740
#, c-format
msgid ""
"#\n"
@@ -3928,6 +4000,15 @@ msgstr ""
"#\n"
"# %s: fichier de configuration, créé par %s v%s le %s#\n"
-#: src/common/weeconfig.c:1683
+#: src/common/weeconfig.c:1737
msgid "Saving config to disk\n"
msgstr "Sauvegarde de la configuration sur disque\n"
+
+#~ msgid "%d:[not connected] "
+#~ msgstr "%d:[non connecté] "
+
+#~ msgid "(F) %s\n"
+#~ msgstr "(F) %s\n"
+
+#~ msgid "(C) %s\n"
+#~ msgstr "(C) %s\n"
diff --git a/weechat/po/weechat.pot b/weechat/po/weechat.pot
index 670b11f24..e6d8e8350 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-07-02 18:30+0200\n"
+"POT-Creation-Date: 2005-07-09 17:25+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"
@@ -20,7 +20,7 @@ msgstr ""
msgid "%s cannot allocate new nick\n"
msgstr ""
-#: src/irc/irc-server.c:180 src/common/weeconfig.c:1625
+#: src/irc/irc-server.c:180 src/common/weeconfig.c:1677
msgid "Unable to get user's name"
msgstr ""
@@ -1194,7 +1194,7 @@ msgstr ""
msgid "whois (secure connection)"
msgstr ""
-#: src/irc/irc-display.c:156 src/common/command.c:842
+#: src/irc/irc-display.c:156 src/common/command.c:848
msgid "Server: "
msgstr ""
@@ -1235,43 +1235,43 @@ msgstr ""
#: src/irc/irc-send.c:232 src/irc/irc-send.c:260 src/irc/irc-send.c:426
#: src/irc/irc-send.c:452 src/irc/irc-send.c:478 src/irc/irc-send.c:519
-#: src/irc/irc-send.c:555 src/irc/irc-send.c:619 src/irc/irc-send.c:676
-#: src/irc/irc-send.c:1018 src/irc/irc-send.c:1116 src/irc/irc-send.c:1595
-#: src/irc/irc-send.c:1702
+#: src/irc/irc-send.c:555 src/irc/irc-send.c:622 src/irc/irc-send.c:679
+#: src/irc/irc-send.c:1021 src/irc/irc-send.c:1119 src/irc/irc-send.c:1598
+#: src/irc/irc-send.c:1705
#, c-format
msgid "%s \"%s\" command can only be executed in a channel window\n"
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:1621
-#: src/common/command.c:1167 src/common/command.c:1451
-#: src/common/command.c:1594
+#: src/irc/irc-send.c:999 src/irc/irc-send.c:1092 src/irc/irc-send.c:1624
+#: src/common/command.c:1189 src/common/command.c:1455
+#: src/common/command.c:1605 src/common/command.c:1748
#, c-format
msgid "%s wrong argument count for \"%s\" command\n"
msgstr ""
-#: src/irc/irc-send.c:398 src/irc/irc-send.c:604 src/irc/irc-send.c:661
+#: src/irc/irc-send.c:398 src/irc/irc-send.c:607 src/irc/irc-send.c:664
#, c-format
msgid "%s wrong arguments for \"%s\" command\n"
msgstr ""
-#: src/irc/irc-send.c:804 src/irc/irc-send.c:871 src/irc/irc-send.c:1164
-#: src/irc/irc-send.c:1178 src/irc/irc-send.c:1522
+#: src/irc/irc-send.c:807 src/irc/irc-send.c:874 src/irc/irc-send.c:1167
+#: src/irc/irc-send.c:1181 src/irc/irc-send.c:1525
#, c-format
msgid "%s \"%s\" command can not be executed on a server window\n"
msgstr ""
-#: src/irc/irc-send.c:889 src/irc/irc-send.c:914 src/irc/irc-recv.c:322
+#: src/irc/irc-send.c:892 src/irc/irc-send.c:917 src/irc/irc-recv.c:322
#, c-format
msgid "%s nick \"%s\" not found for \"%s\" command\n"
msgstr ""
-#: src/irc/irc-send.c:966 src/irc/irc-send.c:1274 src/irc/irc-recv.c:1505
+#: src/irc/irc-send.c:969 src/irc/irc-send.c:1277 src/irc/irc-recv.c:1505
#, c-format
msgid "%s cannot create new private window \"%s\"\n"
msgstr ""
-#: src/irc/irc-send.c:1674
+#: src/irc/irc-send.c:1677
#, c-format
msgid "%s, compiled on %s %s\n"
msgstr ""
@@ -1961,66 +1961,65 @@ msgstr ""
msgid "%s unable to add handler for \"%s\" message (not enough memory)\n"
msgstr ""
-#: src/gui/curses/gui-input.c:788
+#: src/gui/curses/gui-input.c:298
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr ""
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "bytes"
msgstr ""
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Kb"
msgstr ""
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Mb"
msgstr ""
-#: src/gui/curses/gui-display.c:686
+#: src/gui/curses/gui-display.c:684
msgid "Gb"
msgstr ""
-#: src/gui/curses/gui-display.c:1122
+#: src/gui/curses/gui-display.c:1116
msgid "(away)"
msgstr ""
-#: src/gui/curses/gui-display.c:1235
-#, c-format
-msgid "%d:[not connected] "
+#: src/gui/curses/gui-display.c:1233
+msgid "[not connected]"
msgstr ""
-#: src/gui/curses/gui-display.c:1252
+#: src/gui/curses/gui-display.c:1249
msgid "Act: "
msgstr ""
-#: src/gui/curses/gui-display.c:1301
+#: src/gui/curses/gui-display.c:1298
#, c-format
msgid "Lag: %.1f"
msgstr ""
-#: src/gui/curses/gui-display.c:1322
+#: src/gui/curses/gui-display.c:1319
msgid "-MORE-"
msgstr ""
-#: src/gui/curses/gui-display.c:1509
+#: src/gui/curses/gui-display.c:1559
msgid " [A] Accept"
msgstr ""
-#: src/gui/curses/gui-display.c:1510 src/gui/curses/gui-display.c:1514
+#: src/gui/curses/gui-display.c:1560 src/gui/curses/gui-display.c:1564
msgid " [C] Cancel"
msgstr ""
-#: src/gui/curses/gui-display.c:1519
+#: src/gui/curses/gui-display.c:1569
msgid " [R] Remove"
msgstr ""
-#: src/gui/curses/gui-display.c:1523
+#: src/gui/curses/gui-display.c:1573
msgid " [P] Purge old DCC"
msgstr ""
-#: src/gui/curses/gui-display.c:1524
+#: src/gui/curses/gui-display.c:1574
msgid " [Q] Close DCC view"
msgstr ""
@@ -2028,15 +2027,15 @@ msgstr ""
msgid "server"
msgstr ""
-#: src/gui/gui-common.c:330
+#: src/gui/gui-common.c:333
msgid "Not enough memory for infobar message\n"
msgstr ""
-#: src/gui/gui-common.c:505
+#: src/gui/gui-common.c:508
msgid "Not enough memory for new line\n"
msgstr ""
-#: src/gui/gui-common.c:548
+#: src/gui/gui-common.c:551
msgid "Not enough memory for new message\n"
msgstr ""
@@ -2133,34 +2132,52 @@ msgid "command: name of a WeeChat or IRC command"
msgstr ""
#: src/common/command.c:75
+msgid "bind/unbind keys"
+msgstr ""
+
+#: src/common/command.c:76
+msgid "[key function/command] [unbind key] [functions] [reset -yes]"
+msgstr ""
+
+#: src/common/command.c:77
+msgid ""
+"key: bind this key to an internal function or a command (beginning by \"/"
+"\")\n"
+"unbind: unbind a key (if \"all\", default bindings are restored)\n"
+"functions: list internal functions for key bindings\n"
+"reset: restore bindings to the default values and delete ALL personal "
+"binding (use carefully!)"
+msgstr ""
+
+#: src/common/command.c:82
msgid "list/load/unload Perl scripts"
msgstr ""
-#: src/common/command.c:76 src/common/command.c:81
+#: src/common/command.c:83 src/common/command.c:88
msgid "[load filename] | [autoload] | [reload] | [unload]"
msgstr ""
-#: src/common/command.c:77
+#: src/common/command.c:84
msgid ""
"filename: Perl script (file) to load\n"
"Without argument, /perl command lists all loaded Perl scripts."
msgstr ""
-#: src/common/command.c:80
+#: src/common/command.c:87
msgid "list/load/unload Python scripts"
msgstr ""
-#: src/common/command.c:82
+#: src/common/command.c:89
msgid ""
"filename: Python script (file) to load\n"
"Without argument, /python command lists all loaded Python scripts."
msgstr ""
-#: src/common/command.c:85
+#: src/common/command.c:92
msgid "list, add or remove servers"
msgstr ""
-#: src/common/command.c:86
+#: src/common/command.c:93
msgid ""
"[servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-"
"pwd password] [-nicks nick1 [nick2 [nick3]]] [-username username] [-realname "
@@ -2168,7 +2185,7 @@ msgid ""
"servername]"
msgstr ""
-#: src/common/command.c:91
+#: src/common/command.c:98
msgid ""
"servername: server name, for internal & display use\n"
"hostname: name or IP address of server\n"
@@ -2183,53 +2200,53 @@ msgid ""
"realname: real name of user"
msgstr ""
-#: src/common/command.c:103
+#: src/common/command.c:110
msgid "save config to disk"
msgstr ""
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "[file]"
msgstr ""
-#: src/common/command.c:104
+#: src/common/command.c:111
msgid "file: filename for writing config"
msgstr ""
-#: src/common/command.c:106
+#: src/common/command.c:113
msgid "set config parameters"
msgstr ""
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid "[option[=value]]"
msgstr ""
-#: src/common/command.c:107
+#: src/common/command.c:114
msgid ""
"option: name of an option\n"
"value: value for option"
msgstr ""
-#: src/common/command.c:109
+#: src/common/command.c:116
msgid "remove an alias"
msgstr ""
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name"
msgstr ""
-#: src/common/command.c:110
+#: src/common/command.c:117
msgid "alias_name: name of alias to remove"
msgstr ""
-#: src/common/command.c:112
+#: src/common/command.c:119
msgid "manage windows"
msgstr ""
-#: src/common/command.c:113
+#: src/common/command.c:120
msgid "[list | splith | splitv | [merge [down | up | left | right | all]]]"
msgstr ""
-#: src/common/command.c:115
+#: src/common/command.c:121
msgid ""
"list: list opened windows (no parameter implies this list)\n"
"splith: split current window horizontally\n"
@@ -2237,373 +2254,405 @@ msgid ""
"merge: merge window with another"
msgstr ""
-#: src/common/command.c:261
+#: src/common/command.c:267
#, c-format
msgid "%s alias or command \"%s\" already exists!\n"
msgstr ""
-#: src/common/command.c:271
+#: src/common/command.c:277
#, c-format
msgid "%s alias cannot run another alias!\n"
msgstr ""
-#: src/common/command.c:278
+#: src/common/command.c:284
#, c-format
msgid "%s target command \"%s\" does not exist!\n"
msgstr ""
-#: src/common/command.c:486
+#: src/common/command.c:492
#, c-format
msgid "%s wrong argument count for %s command \"%s\" (expected: %d arg%s)\n"
msgstr ""
-#: src/common/command.c:498
+#: src/common/command.c:504
#, c-format
msgid ""
"%s wrong argument count for %s command \"%s\" (expected: between %d and %d "
"arg%s)\n"
msgstr ""
-#: src/common/command.c:520 src/common/command.c:590
+#: src/common/command.c:526 src/common/command.c:596
#, c-format
msgid "%s command \"%s\" failed\n"
msgstr ""
-#: src/common/command.c:548
+#: src/common/command.c:554
#, c-format
msgid "%s wrong argument count for IRC command \"%s\" (expected: %d arg%s)\n"
msgstr ""
-#: src/common/command.c:560
+#: src/common/command.c:566
#, c-format
msgid ""
"%s wrong argument count for IRC command \"%s\" (expected: between %d and %d "
"arg%s)\n"
msgstr ""
-#: src/common/command.c:575
+#: src/common/command.c:581
#, c-format
msgid "%s command \"%s\" needs a server connection!\n"
msgstr ""
-#: src/common/command.c:639
+#: src/common/command.c:645
#, c-format
msgid "%s unknown command \"%s\" (type /help for help)\n"
msgstr ""
-#: src/common/command.c:720
+#: src/common/command.c:726
#, c-format
msgid "%s cannot find nick for sending message\n"
msgstr ""
-#: src/common/command.c:742
+#: src/common/command.c:748
#, c-format
msgid "%s unable to call handler for message (not enough memory)\n"
msgstr ""
-#: src/common/command.c:750
+#: src/common/command.c:756
msgid "This window is not a channel!\n"
msgstr ""
-#: src/common/command.c:778 src/common/command.c:802 src/common/command.c:906
+#: src/common/command.c:784 src/common/command.c:808 src/common/command.c:913
#, c-format
msgid "%s missing arguments for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:787
+#: src/common/command.c:793
#, c-format
msgid "Alias \"%s\" => \"%s\" created\n"
msgstr ""
-#: src/common/command.c:793
+#: src/common/command.c:799
#, c-format
msgid "Failed to create alias \"%s\" => \"%s\" (not enough memory)\n"
msgstr ""
-#: src/common/command.c:813
+#: src/common/command.c:819
msgid "List of aliases:\n"
msgstr ""
-#: src/common/command.c:825
+#: src/common/command.c:831
msgid "No alias defined.\n"
msgstr ""
-#: src/common/command.c:848
+#: src/common/command.c:854
msgid "Channel: "
msgstr ""
-#: src/common/command.c:851 src/common/command.c:861
+#: src/common/command.c:857 src/common/command.c:867
msgid " (server: "
msgstr ""
-#: src/common/command.c:858
+#: src/common/command.c:864
msgid "Private with: "
msgstr ""
-#: src/common/command.c:886
+#: src/common/command.c:893
msgid "Opened buffers:\n"
msgstr ""
-#: src/common/command.c:929 src/common/command.c:1069
+#: src/common/command.c:936
#, c-format
msgid "%s incorrect buffer number\n"
msgstr ""
-#: src/common/command.c:943
+#: src/common/command.c:950
#, c-format
msgid "%s can not close the single buffer\n"
msgstr ""
-#: src/common/command.c:953
+#: src/common/command.c:960
#, c-format
msgid "%s can not close server buffer while channels are opened\n"
msgstr ""
-#: src/common/command.c:992
+#: src/common/command.c:999
msgid "Notify levels: "
msgstr ""
-#: src/common/command.c:1020 src/common/command.c:1042
+#: src/common/command.c:1027 src/common/command.c:1049
#, c-format
msgid "%s incorrect notify level (must be between %d and %d)\n"
msgstr ""
-#: src/common/command.c:1029
+#: src/common/command.c:1036
#, c-format
msgid "%s incorrect buffer for notify (must be channel or private)\n"
msgstr ""
-#: src/common/command.c:1060
-#, c-format
-msgid "%s buffer \"%s\" not found for \"%s\" command\n"
-msgstr ""
-
-#: src/common/command.c:1094
+#: src/common/command.c:1116
#, c-format
msgid "unknown parameter \"%s\" for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1124
+#: src/common/command.c:1146
#, c-format
msgid "%s already connected to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1132
+#: src/common/command.c:1154
#, c-format
msgid "%s currently connecting to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1150 src/common/command.c:1225
+#: src/common/command.c:1172 src/common/command.c:1247
#, c-format
msgid "%s server not found\n"
msgstr ""
-#: src/common/command.c:1180 src/common/command.c:1444
-#: src/common/command.c:1587 src/common/command.c:2283
-#: src/common/command.c:2295
+#: src/common/command.c:1202 src/common/command.c:1598
+#: src/common/command.c:1741 src/common/command.c:2438
+#: src/common/command.c:2454
#, c-format
msgid "%s unknown option for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1209
+#: src/common/command.c:1231
#, c-format
msgid "%s not connected to server \"%s\"!\n"
msgstr ""
-#: src/common/command.c:1217
+#: src/common/command.c:1239
msgid "Auto-reconnection is cancelled\n"
msgstr ""
-#: src/common/command.c:1243 src/common/weechat.c:273
+#: src/common/command.c:1265 src/common/weechat.c:273
#, c-format
msgid "%s internal commands:\n"
msgstr ""
-#: src/common/command.c:1252 src/common/weechat.c:293
+#: src/common/command.c:1274 src/common/weechat.c:293
#, c-format
msgid "IRC commands:\n"
msgstr ""
-#: src/common/command.c:1319
+#: src/common/command.c:1341
#, c-format
msgid "No help available, \"%s\" is an unknown command\n"
msgstr ""
-#: src/common/command.c:1343 src/common/command.c:1486
+#: src/common/command.c:1359
+msgid "New key binding:\n"
+msgstr ""
+
+#: src/common/command.c:1392
+msgid "Key bindings:\n"
+msgstr ""
+
+#: src/common/command.c:1404
+#, c-format
+msgid "Key \"%s\" unbinded\n"
+msgstr ""
+
+#: src/common/command.c:1409
+#, c-format
+msgid "%s unable to unbind key \"%s\"\n"
+msgstr ""
+
+#: src/common/command.c:1417 src/common/weechat.c:324
+#, c-format
+msgid "Internal key functions:\n"
+msgstr ""
+
+#: src/common/command.c:1435
+msgid "Default key bindings restored\n"
+msgstr ""
+
+#: src/common/command.c:1441
+#, c-format
+msgid "%s \"-yes\" argument is required for keys reset (securuty reason)\n"
+msgstr ""
+
+#: src/common/command.c:1470
+#, c-format
+msgid "%s unable to bind key \"%s\"\n"
+msgstr ""
+
+#: src/common/command.c:1497 src/common/command.c:1640
#, c-format
msgid "Registered %s scripts:\n"
msgstr ""
-#: src/common/command.c:1360 src/common/command.c:1383
-#: src/common/command.c:1406 src/common/command.c:1503
-#: src/common/command.c:1526 src/common/command.c:1549
+#: src/common/command.c:1514 src/common/command.c:1537
+#: src/common/command.c:1560 src/common/command.c:1657
+#: src/common/command.c:1680 src/common/command.c:1703
msgid " (none)\n"
msgstr ""
-#: src/common/command.c:1365 src/common/command.c:1508
+#: src/common/command.c:1519 src/common/command.c:1662
#, c-format
msgid "%s message handlers:\n"
msgstr ""
-#: src/common/command.c:1374 src/common/command.c:1517
+#: src/common/command.c:1528 src/common/command.c:1671
#, c-format
msgid " IRC(%s) => %s(%s)\n"
msgstr ""
-#: src/common/command.c:1388 src/common/command.c:1531
+#: src/common/command.c:1542 src/common/command.c:1685
#, c-format
msgid "%s command handlers:\n"
msgstr ""
-#: src/common/command.c:1397 src/common/command.c:1540
+#: src/common/command.c:1551 src/common/command.c:1694
#, c-format
msgid " Command /%s => %s(%s)\n"
msgstr ""
-#: src/common/command.c:1457
+#: src/common/command.c:1611
msgid ""
"WeeChat was build without Perl support.\n"
"Please rebuild WeeChat with \"--enable-perl\" option for ./configure script\n"
msgstr ""
-#: src/common/command.c:1600
+#: src/common/command.c:1754
msgid ""
"WeeChat was build without Python support.\n"
"Please rebuild WeeChat with \"--enable-python\" option for ./configure "
"script\n"
msgstr ""
-#: src/common/command.c:1648
+#: src/common/command.c:1802
msgid "No server.\n"
msgstr ""
-#: src/common/command.c:1659
+#: src/common/command.c:1813
#, c-format
msgid "Server '%s' not found.\n"
msgstr ""
-#: src/common/command.c:1671
+#: src/common/command.c:1825
#, c-format
msgid "%s missing servername for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1679
+#: src/common/command.c:1833
#, c-format
msgid "%s too much arguments for \"%s\" command, ignoring arguments\n"
msgstr ""
-#: src/common/command.c:1698
+#: src/common/command.c:1852
#, c-format
msgid "%s server \"%s\" not found for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1706
+#: src/common/command.c:1860
#, 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:1722 src/common/command.c:1868
+#: src/common/command.c:1876 src/common/command.c:2022
msgid "Server"
msgstr ""
-#: src/common/command.c:1725
+#: src/common/command.c:1879
msgid "has been deleted\n"
msgstr ""
-#: src/common/command.c:1740
+#: src/common/command.c:1894
#, c-format
msgid "%s missing parameters for \"%s\" command\n"
msgstr ""
-#: src/common/command.c:1750
+#: src/common/command.c:1904
#, c-format
msgid "%s server \"%s\" already exists, can't create it!\n"
msgstr ""
-#: src/common/command.c:1779 src/common/command.c:1807
-#: src/common/command.c:1820 src/common/command.c:1846
+#: src/common/command.c:1933 src/common/command.c:1961
+#: src/common/command.c:1974 src/common/command.c:2000
#, c-format
msgid "%s missing password for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1792
+#: src/common/command.c:1946
#, c-format
msgid "%s missing nick(s) for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1833
+#: src/common/command.c:1987
#, c-format
msgid "%s missing command for \"%s\" parameter\n"
msgstr ""
-#: src/common/command.c:1871
+#: src/common/command.c:2025
msgid "created\n"
msgstr ""
-#: src/common/command.c:1877
+#: src/common/command.c:2031
#, c-format
msgid "%s unable to create server\n"
msgstr ""
-#: src/common/command.c:1932
+#: src/common/command.c:2086
msgid "(unknown)"
msgstr ""
-#: src/common/command.c:1955
+#: src/common/command.c:2109
msgid "(password hidden) "
msgstr ""
-#: src/common/command.c:2019
+#: src/common/command.c:2173
#, c-format
msgid "%s server \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:2050 src/common/command.c:2096
+#: src/common/command.c:2204 src/common/command.c:2250
#, c-format
msgid "%s config option \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:2055 src/common/command.c:2088
+#: src/common/command.c:2209 src/common/command.c:2242
#, c-format
msgid "%s incorrect value for option \"%s\"\n"
msgstr ""
-#: src/common/command.c:2071
+#: src/common/command.c:2225
#, c-format
msgid "%s option \"%s\" can not be changed while WeeChat is running\n"
msgstr ""
-#: src/common/command.c:2169
+#: src/common/command.c:2324
#, c-format
msgid "No config option found with \"%s\"\n"
msgstr ""
-#: src/common/command.c:2172
+#: src/common/command.c:2327
msgid "No config option found\n"
msgstr ""
-#: src/common/command.c:2178
+#: src/common/command.c:2333
#, c-format
msgid "config option(s) found with \"%s\"\n"
msgstr ""
-#: src/common/command.c:2181
+#: src/common/command.c:2336
msgid "config option(s) found\n"
msgstr ""
-#: src/common/command.c:2201
+#: src/common/command.c:2356
#, c-format
msgid "%s alias or command \"%s\" not found\n"
msgstr ""
-#: src/common/command.c:2211
+#: src/common/command.c:2366
#, c-format
msgid "Alias \"%s\" removed\n"
msgstr ""
-#: src/common/command.c:2231
+#: src/common/command.c:2386
msgid "Opened windows:\n"
msgstr ""
@@ -2738,57 +2787,62 @@ msgid ""
"\n"
msgstr ""
-#: src/common/weechat.c:371
+#: src/common/weechat.c:344
+#, c-format
+msgid "%s default keys:\n"
+msgstr ""
+
+#: src/common/weechat.c:424
#, c-format
msgid "%s invalid syntax for IRC server ('%s'), ignored\n"
msgstr ""
-#: src/common/weechat.c:384
+#: src/common/weechat.c:437
#, c-format
msgid "%s unable to create server ('%s'), ignored\n"
msgstr ""
-#: src/common/weechat.c:393
+#: src/common/weechat.c:446
#, c-format
msgid "%s unknown parameter '%s', ignored\n"
msgstr ""
-#: src/common/weechat.c:413
+#: src/common/weechat.c:466
#, c-format
msgid "%s cannot create directory \"%s\"\n"
msgstr ""
-#: src/common/weechat.c:439
+#: src/common/weechat.c:492
#, c-format
msgid "%s unable to get HOME directory\n"
msgstr ""
-#: src/common/weechat.c:448
+#: src/common/weechat.c:501
#, c-format
msgid "%s not enough memory for home directory\n"
msgstr ""
-#: src/common/weechat.c:458
+#: src/common/weechat.c:511
#, c-format
msgid "%s unable to create ~/.weechat directory\n"
msgstr ""
-#: src/common/weechat.c:510
+#: src/common/weechat.c:563
#, c-format
msgid "%s unable to create ~/.weechat/logs directory\n"
msgstr ""
-#: src/common/weechat.c:553
+#: src/common/weechat.c:606
#, c-format
msgid "%s unable to create/append to log file (~/.weechat/%s)"
msgstr ""
-#: src/common/weechat.c:576
+#: src/common/weechat.c:629
#, c-format
msgid "%sWelcome to "
msgstr ""
-#: src/common/weechat.c:589 src/common/weechat.c:598
+#: src/common/weechat.c:642 src/common/weechat.c:651
msgid "compiled on"
msgstr ""
@@ -2800,871 +2854,879 @@ msgstr ""
msgid "WeeChat Warning:"
msgstr ""
-#: src/common/weeconfig.c:88 src/common/weeconfig.c:89
+#: src/common/weeconfig.c:90 src/common/weeconfig.c:91
msgid "set title for window (terminal for Curses GUI) with name & version"
msgstr ""
-#: src/common/weeconfig.c:92 src/common/weeconfig.c:93
+#: src/common/weeconfig.c:94 src/common/weeconfig.c:95
msgid "display WeeChat logo at startup"
msgstr ""
-#: src/common/weeconfig.c:96 src/common/weeconfig.c:97
+#: src/common/weeconfig.c:98 src/common/weeconfig.c:99
msgid "display WeeChat version at startup"
msgstr ""
-#: src/common/weeconfig.c:100
+#: src/common/weeconfig.c:102
msgid "WeeChat slogan"
msgstr ""
-#: src/common/weeconfig.c:101
+#: src/common/weeconfig.c:103
msgid "WeeChat slogan (if empty, slogan is not used)"
msgstr ""
-#: src/common/weeconfig.c:104
+#: src/common/weeconfig.c:106
msgid "charset for decoding messages from server"
msgstr ""
-#: src/common/weeconfig.c:105
+#: src/common/weeconfig.c:107
msgid ""
"charset for decoding messages from server, examples: UTF-8, ISO-8859-1 (if "
"empty, messages are not converted)"
msgstr ""
-#: src/common/weeconfig.c:108
+#: src/common/weeconfig.c:110
msgid "charset for encoding messages sent to server"
msgstr ""
-#: src/common/weeconfig.c:109
+#: src/common/weeconfig.c:111
msgid ""
"charset for encoding messages sent to server, examples: UFT-8, ISO-8859-1 "
"(if empty, local charset is used)"
msgstr ""
-#: src/common/weeconfig.c:112
+#: src/common/weeconfig.c:114
msgid "internal WeeChat charset (should be ISO)"
msgstr ""
-#: src/common/weeconfig.c:113
+#: src/common/weeconfig.c:115
msgid ""
"internal WeeChat charset, should be ISO-xxxx even if locale is UTF-8 (if "
"empty, local charset is used)"
msgstr ""
-#: src/common/weeconfig.c:116 src/common/weeconfig.c:117
+#: src/common/weeconfig.c:118 src/common/weeconfig.c:119
msgid "timestamp for buffers"
msgstr ""
-#: src/common/weeconfig.c:120 src/common/weeconfig.c:121
+#: src/common/weeconfig.c:122 src/common/weeconfig.c:123
msgid "display nick names with different colors"
msgstr ""
-#: src/common/weeconfig.c:124 src/common/weeconfig.c:125
+#: src/common/weeconfig.c:126 src/common/weeconfig.c:127
msgid "display actions with different colors"
msgstr ""
-#: src/common/weeconfig.c:128 src/common/weeconfig.c:129
+#: src/common/weeconfig.c:130 src/common/weeconfig.c:131
msgid "remove colors from incoming messages"
msgstr ""
-#: src/common/weeconfig.c:132
+#: src/common/weeconfig.c:134
msgid "display nicklist window"
msgstr ""
-#: src/common/weeconfig.c:133
+#: src/common/weeconfig.c:135
msgid "display nicklist window (for channel windows)"
msgstr ""
-#: src/common/weeconfig.c:136
+#: src/common/weeconfig.c:138
msgid "nicklist position"
msgstr ""
-#: src/common/weeconfig.c:137
+#: src/common/weeconfig.c:139
msgid "nicklist position (top, left, right (default), bottom)"
msgstr ""
-#: src/common/weeconfig.c:140
+#: src/common/weeconfig.c:142
msgid "min size for nicklist"
msgstr ""
-#: src/common/weeconfig.c:141
+#: src/common/weeconfig.c:143
msgid ""
"min size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no min size))"
msgstr ""
-#: src/common/weeconfig.c:145
+#: src/common/weeconfig.c:147
msgid "max size for nicklist"
msgstr ""
-#: src/common/weeconfig.c:146
+#: src/common/weeconfig.c:148
msgid ""
"max size for nicklist (width or height, depending on look_nicklist_position "
"(0 = no max size; if min == max and > 0, then size is fixed))"
msgstr ""
-#: src/common/weeconfig.c:150 src/common/weeconfig.c:151
+#: src/common/weeconfig.c:152 src/common/weeconfig.c:153
msgid "text to display instead of nick when not connected"
msgstr ""
-#: src/common/weeconfig.c:154 src/common/weeconfig.c:155
+#: src/common/weeconfig.c:156 src/common/weeconfig.c:157
msgid "display nick mode ((half)op/voice) before each nick"
msgstr ""
-#: src/common/weeconfig.c:158 src/common/weeconfig.c:159
+#: src/common/weeconfig.c:160 src/common/weeconfig.c:161
msgid "display space if nick mode is not (half)op/voice"
msgstr ""
-#: src/common/weeconfig.c:162 src/common/weeconfig.c:163
+#: src/common/weeconfig.c:164 src/common/weeconfig.c:165
msgid "the string inserted after nick completion"
msgstr ""
-#: src/common/weeconfig.c:166 src/common/weeconfig.c:167
+#: src/common/weeconfig.c:168 src/common/weeconfig.c:169
msgid "enable info bar"
msgstr ""
-#: src/common/weeconfig.c:170 src/common/weeconfig.c:171
+#: src/common/weeconfig.c:172 src/common/weeconfig.c:173
msgid "timestamp for time in infobar"
msgstr ""
-#: src/common/weeconfig.c:174
+#: src/common/weeconfig.c:176 src/common/weeconfig.c:177
+msgid "display seconds in infobar time"
+msgstr ""
+
+#: src/common/weeconfig.c:180
msgid "delay (in seconds) for highlight messages in infobar"
msgstr ""
-#: src/common/weeconfig.c:175
+#: src/common/weeconfig.c:181
msgid ""
"delay (in seconds) for highlight messages in infobar (0 = disable highlight "
"notifications in infobar)"
msgstr ""
-#: src/common/weeconfig.c:233 src/common/weeconfig.c:234
+#: src/common/weeconfig.c:240 src/common/weeconfig.c:241
msgid "color for title bar"
msgstr ""
-#: src/common/weeconfig.c:237 src/common/weeconfig.c:238
+#: src/common/weeconfig.c:244 src/common/weeconfig.c:245
msgid "background for title bar"
msgstr ""
-#: src/common/weeconfig.c:243 src/common/weeconfig.c:244
+#: src/common/weeconfig.c:250 src/common/weeconfig.c:251
msgid "color for chat text"
msgstr ""
-#: src/common/weeconfig.c:247
+#: src/common/weeconfig.c:254
msgid "color for time"
msgstr ""
-#: src/common/weeconfig.c:248
+#: src/common/weeconfig.c:255
msgid "color for time in chat window"
msgstr ""
-#: src/common/weeconfig.c:251
+#: src/common/weeconfig.c:258
msgid "color for time separator"
msgstr ""
-#: src/common/weeconfig.c:252
+#: src/common/weeconfig.c:259
msgid "color for time separator (chat window)"
msgstr ""
-#: src/common/weeconfig.c:255 src/common/weeconfig.c:256
+#: src/common/weeconfig.c:262 src/common/weeconfig.c:263
msgid "color for 1st and 3rd char of prefix"
msgstr ""
-#: src/common/weeconfig.c:259 src/common/weeconfig.c:260
+#: src/common/weeconfig.c:266 src/common/weeconfig.c:267
msgid "color for middle char of prefix"
msgstr ""
-#: src/common/weeconfig.c:263
+#: src/common/weeconfig.c:270
msgid "color for nicks in actions"
msgstr ""
-#: src/common/weeconfig.c:264
+#: src/common/weeconfig.c:271
msgid "color for nicks in actions (chat window)"
msgstr ""
-#: src/common/weeconfig.c:267
+#: src/common/weeconfig.c:274
msgid "color for hostnames"
msgstr ""
-#: src/common/weeconfig.c:268
+#: src/common/weeconfig.c:275
msgid "color for hostnames (chat window)"
msgstr ""
-#: src/common/weeconfig.c:271
+#: src/common/weeconfig.c:278
msgid "color for channel names in actions"
msgstr ""
-#: src/common/weeconfig.c:272
+#: src/common/weeconfig.c:279
msgid "color for channel names in actions (chat window)"
msgstr ""
-#: src/common/weeconfig.c:275
+#: src/common/weeconfig.c:282
msgid "color for dark separators"
msgstr ""
-#: src/common/weeconfig.c:276
+#: src/common/weeconfig.c:283
msgid "color for dark separators (chat window)"
msgstr ""
-#: src/common/weeconfig.c:279
+#: src/common/weeconfig.c:286
msgid "color for highlighted nick"
msgstr ""
-#: src/common/weeconfig.c:280
+#: src/common/weeconfig.c:287
msgid "color for highlighted nick (chat window)"
msgstr ""
-#: src/common/weeconfig.c:283
+#: src/common/weeconfig.c:290
msgid "background for chat"
msgstr ""
-#: src/common/weeconfig.c:284
+#: src/common/weeconfig.c:291
msgid "background for chat window"
msgstr ""
-#: src/common/weeconfig.c:289 src/common/weeconfig.c:290
+#: src/common/weeconfig.c:296 src/common/weeconfig.c:297
msgid "color for status bar"
msgstr ""
-#: src/common/weeconfig.c:293 src/common/weeconfig.c:294
+#: src/common/weeconfig.c:300 src/common/weeconfig.c:301
msgid "color for status bar delimiters"
msgstr ""
-#: src/common/weeconfig.c:297
+#: src/common/weeconfig.c:304
msgid "color for window with new messages"
msgstr ""
-#: src/common/weeconfig.c:298
+#: src/common/weeconfig.c:305
msgid "color for window with new messages (status bar)"
msgstr ""
-#: src/common/weeconfig.c:301
+#: src/common/weeconfig.c:308
msgid "color for window with highlight"
msgstr ""
-#: src/common/weeconfig.c:302
+#: src/common/weeconfig.c:309
msgid "color for window with highlight (status bar)"
msgstr ""
-#: src/common/weeconfig.c:305
+#: src/common/weeconfig.c:312
msgid "color for window with new data (not messages)"
msgstr ""
-#: src/common/weeconfig.c:306
+#: src/common/weeconfig.c:313
msgid "color for window with new data (not messages) (status bar)"
msgstr ""
-#: src/common/weeconfig.c:309
+#: src/common/weeconfig.c:316
msgid "color for \"-MORE-\" text"
msgstr ""
-#: src/common/weeconfig.c:310
+#: src/common/weeconfig.c:317
msgid "color for window with new data (status bar)"
msgstr ""
-#: src/common/weeconfig.c:313 src/common/weeconfig.c:314
+#: src/common/weeconfig.c:320 src/common/weeconfig.c:321
msgid "background for status window"
msgstr ""
-#: src/common/weeconfig.c:319 src/common/weeconfig.c:320
+#: src/common/weeconfig.c:326 src/common/weeconfig.c:327
msgid "color for info bar text"
msgstr ""
-#: src/common/weeconfig.c:323 src/common/weeconfig.c:324
+#: src/common/weeconfig.c:330 src/common/weeconfig.c:331
+msgid "color for infobar delimiters"
+msgstr ""
+
+#: src/common/weeconfig.c:334 src/common/weeconfig.c:335
msgid "color for info bar highlight notification"
msgstr ""
-#: src/common/weeconfig.c:327 src/common/weeconfig.c:328
+#: src/common/weeconfig.c:338 src/common/weeconfig.c:339
msgid "background for info bar window"
msgstr ""
-#: src/common/weeconfig.c:333 src/common/weeconfig.c:334
+#: src/common/weeconfig.c:344 src/common/weeconfig.c:345
msgid "color for input text"
msgstr ""
-#: src/common/weeconfig.c:337 src/common/weeconfig.c:338
+#: src/common/weeconfig.c:348 src/common/weeconfig.c:349
msgid "color for input text (channel name)"
msgstr ""
-#: src/common/weeconfig.c:341 src/common/weeconfig.c:342
+#: src/common/weeconfig.c:352 src/common/weeconfig.c:353
msgid "color for input text (nick name)"
msgstr ""
-#: src/common/weeconfig.c:345 src/common/weeconfig.c:346
+#: src/common/weeconfig.c:356 src/common/weeconfig.c:357
msgid "background for input window"
msgstr ""
-#: src/common/weeconfig.c:351 src/common/weeconfig.c:352
+#: src/common/weeconfig.c:362 src/common/weeconfig.c:363
msgid "color for nicknames"
msgstr ""
-#: src/common/weeconfig.c:355 src/common/weeconfig.c:356
+#: src/common/weeconfig.c:366 src/common/weeconfig.c:367
msgid "color for away nicknames"
msgstr ""
-#: src/common/weeconfig.c:359
+#: src/common/weeconfig.c:370
msgid "color for chan owner symbol"
msgstr ""
-#: src/common/weeconfig.c:360
+#: src/common/weeconfig.c:371
msgid "color for chan owner symbol (specific to unrealircd)"
msgstr ""
-#: src/common/weeconfig.c:363
+#: src/common/weeconfig.c:374
msgid "color for chan admin symbol"
msgstr ""
-#: src/common/weeconfig.c:364
+#: src/common/weeconfig.c:375
msgid "color for chan admin symbol (specific to unrealircd)"
msgstr ""
-#: src/common/weeconfig.c:367 src/common/weeconfig.c:368
+#: src/common/weeconfig.c:378 src/common/weeconfig.c:379
msgid "color for operator symbol"
msgstr ""
-#: src/common/weeconfig.c:371 src/common/weeconfig.c:372
+#: src/common/weeconfig.c:382 src/common/weeconfig.c:383
msgid "color for half-operator symbol"
msgstr ""
-#: src/common/weeconfig.c:375 src/common/weeconfig.c:376
+#: src/common/weeconfig.c:386 src/common/weeconfig.c:387
msgid "color for voice symbol"
msgstr ""
-#: src/common/weeconfig.c:379 src/common/weeconfig.c:380
+#: src/common/weeconfig.c:390 src/common/weeconfig.c:391
msgid "color for '+' when scrolling nicks"
msgstr ""
-#: src/common/weeconfig.c:383 src/common/weeconfig.c:384
+#: src/common/weeconfig.c:394 src/common/weeconfig.c:395
msgid "color for nick separator"
msgstr ""
-#: src/common/weeconfig.c:387 src/common/weeconfig.c:388
+#: src/common/weeconfig.c:398 src/common/weeconfig.c:399
msgid "color for local nick"
msgstr ""
-#: src/common/weeconfig.c:391 src/common/weeconfig.c:392
+#: src/common/weeconfig.c:402 src/common/weeconfig.c:403
msgid "color for other nick in private window"
msgstr ""
-#: src/common/weeconfig.c:395 src/common/weeconfig.c:396
+#: src/common/weeconfig.c:406 src/common/weeconfig.c:407
msgid "background for nicknames"
msgstr ""
-#: src/common/weeconfig.c:401
+#: src/common/weeconfig.c:412
msgid "color for selected DCC"
msgstr ""
-#: src/common/weeconfig.c:402
+#: src/common/weeconfig.c:413
msgid "color for selected DCC (chat window)"
msgstr ""
-#: src/common/weeconfig.c:405 src/common/weeconfig.c:406
+#: src/common/weeconfig.c:416 src/common/weeconfig.c:417
msgid "color for \"waiting\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:409 src/common/weeconfig.c:410
+#: src/common/weeconfig.c:420 src/common/weeconfig.c:421
msgid "color for \"connecting\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:413 src/common/weeconfig.c:414
+#: src/common/weeconfig.c:424 src/common/weeconfig.c:425
msgid "color for \"active\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:417 src/common/weeconfig.c:418
+#: src/common/weeconfig.c:428 src/common/weeconfig.c:429
msgid "color for \"done\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:421 src/common/weeconfig.c:422
+#: src/common/weeconfig.c:432 src/common/weeconfig.c:433
msgid "color for \"failed\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:425 src/common/weeconfig.c:426
+#: src/common/weeconfig.c:436 src/common/weeconfig.c:437
msgid "color for \"aborted\" dcc status"
msgstr ""
-#: src/common/weeconfig.c:439
+#: src/common/weeconfig.c:450
msgid "max lines in history (per window)"
msgstr ""
-#: src/common/weeconfig.c:440
+#: src/common/weeconfig.c:451
msgid ""
"maximum number of lines in history for one server/channel/private window (0 "
"= unlimited)"
msgstr ""
-#: src/common/weeconfig.c:444
+#: src/common/weeconfig.c:455
msgid "max user commands in history"
msgstr ""
-#: src/common/weeconfig.c:445
+#: src/common/weeconfig.c:456
msgid "maximum number of user commands in history (0 = unlimited)"
msgstr ""
-#: src/common/weeconfig.c:462 src/common/weeconfig.c:463
+#: src/common/weeconfig.c:473 src/common/weeconfig.c:474
msgid "automatically log server messages"
msgstr ""
-#: src/common/weeconfig.c:466 src/common/weeconfig.c:467
+#: src/common/weeconfig.c:477 src/common/weeconfig.c:478
msgid "automatically log channel chats"
msgstr ""
-#: src/common/weeconfig.c:470 src/common/weeconfig.c:471
+#: src/common/weeconfig.c:481 src/common/weeconfig.c:482
msgid "automatically log private chats"
msgstr ""
-#: src/common/weeconfig.c:474 src/common/weeconfig.c:475
+#: src/common/weeconfig.c:485 src/common/weeconfig.c:486
msgid "log messages from plugins (scripts)"
msgstr ""
-#: src/common/weeconfig.c:478
+#: src/common/weeconfig.c:489
msgid "path for log files"
msgstr ""
-#: src/common/weeconfig.c:479
+#: src/common/weeconfig.c:490
msgid "path for WeeChat log files"
msgstr ""
-#: src/common/weeconfig.c:482
+#: src/common/weeconfig.c:493
msgid "timestamp for log"
msgstr ""
-#: src/common/weeconfig.c:483
+#: src/common/weeconfig.c:494
msgid "timestamp for log (see man strftime for date/time specifiers)"
msgstr ""
-#: src/common/weeconfig.c:486 src/common/weeconfig.c:487
+#: src/common/weeconfig.c:497 src/common/weeconfig.c:498
msgid "hide password displayed by nickserv"
msgstr ""
-#: src/common/weeconfig.c:506
+#: src/common/weeconfig.c:517
msgid "display message to all channels when away"
msgstr ""
-#: src/common/weeconfig.c:507
+#: src/common/weeconfig.c:518
msgid "display message to all channels when (un)marking as away"
msgstr ""
-#: src/common/weeconfig.c:510 src/common/weeconfig.c:511
+#: src/common/weeconfig.c:521 src/common/weeconfig.c:522
msgid "default message when away"
msgstr ""
-#: src/common/weeconfig.c:514 src/common/weeconfig.c:515
+#: src/common/weeconfig.c:525 src/common/weeconfig.c:526
msgid "default part message (leaving channel)"
msgstr ""
-#: src/common/weeconfig.c:518
+#: src/common/weeconfig.c:529
msgid "default quit message"
msgstr ""
-#: src/common/weeconfig.c:519
+#: src/common/weeconfig.c:530
msgid ""
"default quit message ('%v' will be replaced by WeeChat version in string)"
msgstr ""
-#: src/common/weeconfig.c:522
+#: src/common/weeconfig.c:533
msgid "interval between two checks for away"
msgstr ""
-#: src/common/weeconfig.c:523
+#: src/common/weeconfig.c:534
msgid "interval between two checks for away (in minutes, 0 = never check)"
msgstr ""
-#: src/common/weeconfig.c:526
+#: src/common/weeconfig.c:537
msgid "interval between two checks for lag"
msgstr ""
-#: src/common/weeconfig.c:527
+#: src/common/weeconfig.c:538
msgid "interval between two checks for lag (in seconds)"
msgstr ""
-#: src/common/weeconfig.c:530
+#: src/common/weeconfig.c:541
msgid "minimum lag to show"
msgstr ""
-#: src/common/weeconfig.c:531
+#: src/common/weeconfig.c:542
msgid "minimum lag to show (in seconds)"
msgstr ""
-#: src/common/weeconfig.c:534
+#: src/common/weeconfig.c:545
msgid "disconnect after important lag"
msgstr ""
-#: src/common/weeconfig.c:535
+#: src/common/weeconfig.c:546
msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
-#: src/common/weeconfig.c:538 src/common/weeconfig.c:539
+#: src/common/weeconfig.c:549 src/common/weeconfig.c:550
msgid "create a FIFO pipe for remote control"
msgstr ""
-#: src/common/weeconfig.c:558
+#: src/common/weeconfig.c:569
msgid "automatically accept dcc files"
msgstr ""
-#: src/common/weeconfig.c:559
+#: src/common/weeconfig.c:570
msgid "automatically accept incoming dcc files"
msgstr ""
-#: src/common/weeconfig.c:562
+#: src/common/weeconfig.c:573
msgid "automatically accept dcc chats"
msgstr ""
-#: src/common/weeconfig.c:563
+#: src/common/weeconfig.c:574
msgid "automatically accept dcc chats (use carefully!)"
msgstr ""
-#: src/common/weeconfig.c:566
+#: src/common/weeconfig.c:577
msgid "timeout for dcc request"
msgstr ""
-#: src/common/weeconfig.c:567
+#: src/common/weeconfig.c:578
msgid "timeout for dcc request (in seconds)"
msgstr ""
-#: src/common/weeconfig.c:570
+#: src/common/weeconfig.c:581
msgid "block size for dcc packets"
msgstr ""
-#: src/common/weeconfig.c:571
+#: src/common/weeconfig.c:582
msgid "block size for dcc packets in bytes (default: 65536)"
msgstr ""
-#: src/common/weeconfig.c:574
+#: src/common/weeconfig.c:585
msgid "path for incoming files with dcc"
msgstr ""
-#: src/common/weeconfig.c:575
+#: src/common/weeconfig.c:586
msgid "path for writing incoming files with dcc (default: user home)"
msgstr ""
-#: src/common/weeconfig.c:578
+#: src/common/weeconfig.c:589
msgid "default path for sending files with dcc"
msgstr ""
-#: src/common/weeconfig.c:579
+#: src/common/weeconfig.c:590
msgid ""
"path for reading files when sending thru dcc (when no path is specified)"
msgstr ""
-#: src/common/weeconfig.c:582 src/common/weeconfig.c:583
+#: src/common/weeconfig.c:593 src/common/weeconfig.c:594
msgid "convert spaces to underscores when sending files"
msgstr ""
-#: src/common/weeconfig.c:586
+#: src/common/weeconfig.c:597
msgid "automatically rename dcc files if already exists"
msgstr ""
-#: src/common/weeconfig.c:587
+#: src/common/weeconfig.c:598
msgid "rename incoming files if already exists (add '.1', '.2', ...)"
msgstr ""
-#: src/common/weeconfig.c:590
+#: src/common/weeconfig.c:601
msgid "automatically resume aborted transfers"
msgstr ""
-#: src/common/weeconfig.c:591
+#: src/common/weeconfig.c:602
msgid ""
"automatically resume dcc transfer if connection with remote host is loosed"
msgstr ""
-#: src/common/weeconfig.c:610
+#: src/common/weeconfig.c:621
msgid "use proxy"
msgstr ""
-#: src/common/weeconfig.c:611
+#: src/common/weeconfig.c:622
msgid "use a proxy server to connect to irc server"
msgstr ""
-#: src/common/weeconfig.c:614
+#: src/common/weeconfig.c:625
msgid "proxy type"
msgstr ""
-#: src/common/weeconfig.c:615
+#: src/common/weeconfig.c:626
msgid "proxy type (http (default), socks4, socks5)"
msgstr ""
-#: src/common/weeconfig.c:618
+#: src/common/weeconfig.c:629
msgid "use ipv6 proxy"
msgstr ""
-#: src/common/weeconfig.c:619
+#: src/common/weeconfig.c:630
msgid "connect to proxy in ipv6"
msgstr ""
-#: src/common/weeconfig.c:622
+#: src/common/weeconfig.c:633
msgid "proxy address"
msgstr ""
-#: src/common/weeconfig.c:623
+#: src/common/weeconfig.c:634
msgid "proxy server address (IP or hostname)"
msgstr ""
-#: src/common/weeconfig.c:626
+#: src/common/weeconfig.c:637
msgid "port for proxy"
msgstr ""
-#: src/common/weeconfig.c:627
+#: src/common/weeconfig.c:638
msgid "port for connecting to proxy server"
msgstr ""
-#: src/common/weeconfig.c:630
+#: src/common/weeconfig.c:641
msgid "proxy username"
msgstr ""
-#: src/common/weeconfig.c:631
+#: src/common/weeconfig.c:642
msgid "username for proxy server"
msgstr ""
-#: src/common/weeconfig.c:634
+#: src/common/weeconfig.c:645
msgid "proxy password"
msgstr ""
-#: src/common/weeconfig.c:635
+#: src/common/weeconfig.c:646
msgid "password for proxy server"
msgstr ""
-#: src/common/weeconfig.c:646
+#: src/common/weeconfig.c:657
msgid "server name"
msgstr ""
-#: src/common/weeconfig.c:647
+#: src/common/weeconfig.c:658
msgid "name associated to IRC server (for display only)"
msgstr ""
-#: src/common/weeconfig.c:650
+#: src/common/weeconfig.c:661
msgid "automatically connect to server"
msgstr ""
-#: src/common/weeconfig.c:651
+#: src/common/weeconfig.c:662
msgid "automatically connect to server when WeeChat is starting"
msgstr ""
-#: src/common/weeconfig.c:654
+#: src/common/weeconfig.c:665
msgid "automatically reconnect to server"
msgstr ""
-#: src/common/weeconfig.c:655
+#: src/common/weeconfig.c:666
msgid "automatically reconnect to server when disconnected"
msgstr ""
-#: src/common/weeconfig.c:658
+#: src/common/weeconfig.c:669
msgid "delay before trying again to reconnect"
msgstr ""
-#: src/common/weeconfig.c:659
+#: src/common/weeconfig.c:670
msgid "delay (in seconds) before trying again to reconnect to server"
msgstr ""
-#: src/common/weeconfig.c:662
+#: src/common/weeconfig.c:673
msgid "server address or hostname"
msgstr ""
-#: src/common/weeconfig.c:663
+#: src/common/weeconfig.c:674
msgid "IP address or hostname of IRC server"
msgstr ""
-#: src/common/weeconfig.c:666
+#: src/common/weeconfig.c:677
msgid "port for IRC server"
msgstr ""
-#: src/common/weeconfig.c:667
+#: src/common/weeconfig.c:678
msgid "port for connecting to server"
msgstr ""
-#: src/common/weeconfig.c:670 src/common/weeconfig.c:671
+#: src/common/weeconfig.c:681 src/common/weeconfig.c:682
msgid "use IPv6 protocol for server communication"
msgstr ""
-#: src/common/weeconfig.c:674 src/common/weeconfig.c:675
+#: src/common/weeconfig.c:685 src/common/weeconfig.c:686
msgid "use SSL for server communication"
msgstr ""
-#: src/common/weeconfig.c:678
+#: src/common/weeconfig.c:689
msgid "server password"
msgstr ""
-#: src/common/weeconfig.c:679
+#: src/common/weeconfig.c:690
msgid "password for IRC server"
msgstr ""
-#: src/common/weeconfig.c:682
+#: src/common/weeconfig.c:693
msgid "nickname for server"
msgstr ""
-#: src/common/weeconfig.c:683
+#: src/common/weeconfig.c:694
msgid "nickname to use on IRC server"
msgstr ""
-#: src/common/weeconfig.c:686
+#: src/common/weeconfig.c:697
msgid "alternate nickname for server"
msgstr ""
-#: src/common/weeconfig.c:687
+#: src/common/weeconfig.c:698
msgid "alternate nickname to use on IRC server (if nickname is already used)"
msgstr ""
-#: src/common/weeconfig.c:690
+#: src/common/weeconfig.c:701
msgid "2nd alternate nickname for server"
msgstr ""
-#: src/common/weeconfig.c:691
+#: src/common/weeconfig.c:702
msgid ""
"2nd alternate nickname to use on IRC server (if alternate nickname is "
"already used)"
msgstr ""
-#: src/common/weeconfig.c:694
+#: src/common/weeconfig.c:705
msgid "user name for server"
msgstr ""
-#: src/common/weeconfig.c:695
+#: src/common/weeconfig.c:706
msgid "user name to use on IRC server"
msgstr ""
-#: src/common/weeconfig.c:698
+#: src/common/weeconfig.c:709
msgid "real name for server"
msgstr ""
-#: src/common/weeconfig.c:699
+#: src/common/weeconfig.c:710
msgid "real name to use on IRC server"
msgstr ""
-#: src/common/weeconfig.c:702 src/common/weeconfig.c:703
+#: src/common/weeconfig.c:713 src/common/weeconfig.c:714
msgid "first command to run when connected to server"
msgstr ""
-#: src/common/weeconfig.c:706
+#: src/common/weeconfig.c:717
msgid "delay (in seconds) after command was executed"
msgstr ""
-#: src/common/weeconfig.c:707
+#: src/common/weeconfig.c:718
msgid ""
"delay (in seconds) after command was executed (example: give some time for "
"authentication)"
msgstr ""
-#: src/common/weeconfig.c:710
+#: src/common/weeconfig.c:721
msgid "list of channels to join when connected to server"
msgstr ""
-#: src/common/weeconfig.c:711
+#: src/common/weeconfig.c:722
msgid "comma separated list of channels to join when connected to server"
msgstr ""
-#: src/common/weeconfig.c:714 src/common/weeconfig.c:715
+#: src/common/weeconfig.c:725 src/common/weeconfig.c:726
msgid "automatically rejoin channels when kicked"
msgstr ""
-#: src/common/weeconfig.c:718
+#: src/common/weeconfig.c:729
msgid "notify levels for channels of this server"
msgstr ""
-#: src/common/weeconfig.c:719
+#: src/common/weeconfig.c:730
msgid ""
"comma separated list of notify levels for channels of this server (format: "
"#channel:1,..)"
msgstr ""
-#: src/common/weeconfig.c:1177
+#: src/common/weeconfig.c:1190
#, c-format
msgid "%s %s, line %d: new server, but previous was incomplete\n"
msgstr ""
-#: src/common/weeconfig.c:1186
+#: src/common/weeconfig.c:1199
#, c-format
msgid "%s %s, line %d: server '%s' already exists\n"
msgstr ""
-#: src/common/weeconfig.c:1201
+#: src/common/weeconfig.c:1214
#, c-format
msgid "%s %s, line %d: unable to create server\n"
msgstr ""
-#: src/common/weeconfig.c:1240
+#: src/common/weeconfig.c:1254
#, c-format
msgid "%s unable to assign default int with string (\"%s\")\n"
msgstr ""
-#: src/common/weeconfig.c:1251
+#: src/common/weeconfig.c:1265
#, c-format
msgid "%s unable to assign default color (\"%s\")\n"
msgstr ""
-#: src/common/weeconfig.c:1290
+#: src/common/weeconfig.c:1304
#, c-format
msgid "%s config file \"%s\" not found.\n"
msgstr ""
-#: src/common/weeconfig.c:1322
+#: src/common/weeconfig.c:1336
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"]\"\n"
msgstr ""
-#: src/common/weeconfig.c:1339
+#: src/common/weeconfig.c:1353
#, c-format
msgid "%s %s, line %d: unknown section identifier (\"%s\")\n"
msgstr ""
-#: src/common/weeconfig.c:1357
+#: src/common/weeconfig.c:1371
#, c-format
msgid "%s %s, line %d: invalid section for option, line is ignored\n"
msgstr ""
-#: src/common/weeconfig.c:1365
+#: src/common/weeconfig.c:1379
#, c-format
msgid "%s %s, line %d: invalid syntax, missing \"=\"\n"
msgstr ""
-#: src/common/weeconfig.c:1399
+#: src/common/weeconfig.c:1427
#, c-format
msgid "%s %s, line %d: invalid option \"%s\"\n"
msgstr ""
-#: src/common/weeconfig.c:1410
+#: src/common/weeconfig.c:1438
#, c-format
msgid ""
"%s %s, line %d: invalid value foroption '%s'\n"
"Expected: boolean value: 'off' or 'on'\n"
msgstr ""
-#: src/common/weeconfig.c:1419
+#: src/common/weeconfig.c:1447
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
"Expected: integer between %d and %d\n"
msgstr ""
-#: src/common/weeconfig.c:1430
+#: src/common/weeconfig.c:1458
#, c-format
msgid ""
"%s %s, line %d: invalid value for option '%s'\n"
"Expected: one of these strings: "
msgstr ""
-#: src/common/weeconfig.c:1446
+#: src/common/weeconfig.c:1474
#, c-format
msgid "%s %s, line %d: invalid color name for option '%s'\n"
msgstr ""
-#: src/common/weeconfig.c:1506 src/common/weeconfig.c:1677
+#: src/common/weeconfig.c:1536 src/common/weeconfig.c:1731
#, c-format
msgid "%s cannot create file \"%s\"\n"
msgstr ""
-#: src/common/weeconfig.c:1512
+#: src/common/weeconfig.c:1542
#, c-format
msgid "%s: creating default config file...\n"
msgstr ""
-#: src/common/weeconfig.c:1513
+#: src/common/weeconfig.c:1543
msgid "Creating default config file\n"
msgstr ""
-#: src/common/weeconfig.c:1516 src/common/weeconfig.c:1686
+#: src/common/weeconfig.c:1546 src/common/weeconfig.c:1740
#, c-format
msgid ""
"#\n"
"# %s configuration file, created by %s v%s on %s#\n"
msgstr ""
-#: src/common/weeconfig.c:1683
+#: src/common/weeconfig.c:1737
msgid "Saving config to disk\n"
msgstr ""
diff --git a/weechat/src/common/command.c b/weechat/src/common/command.c
index a8b97a134..977568fee 100644
--- a/weechat/src/common/command.c
+++ b/weechat/src/common/command.c
@@ -47,11 +47,11 @@ t_weechat_command weechat_commands[] =
{ "buffer", N_("manage buffers"),
N_("[action | number]"),
N_("action: action to do:\n"
- " move: move buffer in the list (may be relative, for example -1)\n"
- " close: close buffer (for channel: same as /part without part message)\n"
- " list: list opened buffers (no parameter implies this list)\n"
- " notify: set notify level for buffer (0=never, 1=highlight, 2=1+msg, 3=2+join/part)\n"
- "number: jump to buffer by number"),
+ " move: move buffer in the list (may be relative, for example -1)\n"
+ " close: close buffer (for channel: same as /part without part message)\n"
+ " list: list opened buffers (no parameter implies this list)\n"
+ " notify: set notify level for buffer (0=never, 1=highlight, 2=1+msg, 3=2+join/part)\n"
+ "number: jump to buffer by number"),
0, MAX_ARGS, weechat_cmd_buffer, NULL },
{ "clear", N_("clear window(s)"),
N_("[-all]"),
@@ -72,33 +72,40 @@ t_weechat_command weechat_commands[] =
{ "help", N_("display help about commands"),
N_("[command]"), N_("command: name of a WeeChat or IRC command"),
0, 1, weechat_cmd_help, NULL },
+ { "key", N_("bind/unbind keys"),
+ N_("[key function/command] [unbind key] [functions] [reset -yes]"),
+ N_("key: bind this key to an internal function or a command (beginning by \"/\")\n"
+ "unbind: unbind a key (if \"all\", default bindings are restored)\n"
+ "functions: list internal functions for key bindings\n"
+ "reset: restore bindings to the default values and delete ALL personal binding (use carefully!)"),
+ 0, MAX_ARGS, NULL, weechat_cmd_key },
{ "perl", N_("list/load/unload Perl scripts"),
N_("[load filename] | [autoload] | [reload] | [unload]"),
N_("filename: Perl script (file) to load\n"
- "Without argument, /perl command lists all loaded Perl scripts."),
+ "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] | [reload] | [unload]"),
N_("filename: Python script (file) to load\n"
- "Without argument, /python command lists all loaded Python scripts."),
+ "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] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 "
- "[nick2 [nick3]]] [-username username] [-realname realname] "
- "[-command command] [-autojoin channel[,channel]] ] | "
- "[del servername]"),
+ "[servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 "
+ "[nick2 [nick3]]] [-username username] [-realname realname] "
+ "[-command command] [-autojoin channel[,channel]] ] | "
+ "[del servername]"),
N_("servername: server name, for internal & display use\n"
- "hostname: name or IP address of server\n"
- "port: port for server (integer)\n"
- "ipv6: use IPv6 protocol\n"
- "ssl: use SSL protocol\n"
- "password: password for server\n"
- "nick1: first nick for server\n"
- "nick2: alternate nick for server\n"
- "nick3: second alternate nick for server\n"
- "username: user name\n"
- "realname: real name of user"),
+ "hostname: name or IP address of server\n"
+ "port: port for server (integer)\n"
+ "ipv6: use IPv6 protocol\n"
+ "ssl: use SSL protocol\n"
+ "password: password for server\n"
+ "nick1: first nick for server\n"
+ "nick2: alternate nick for server\n"
+ "nick3: second alternate nick for server\n"
+ "username: user name\n"
+ "realname: real name of user"),
0, MAX_ARGS, weechat_cmd_server, NULL },
{ "save", N_("save config to disk"),
N_("[file]"), N_("file: filename for writing config"),
@@ -111,11 +118,10 @@ t_weechat_command weechat_commands[] =
1, 1, NULL, weechat_cmd_unalias },
{ "window", N_("manage windows"),
N_("[list | splith | splitv | [merge [down | up | left | right | all]]]"),
- N_(
- "list: list opened windows (no parameter implies this list)\n"
- "splith: split current window horizontally\n"
- "splitv: split current window vertically\n"
- "merge: merge window with another"),
+ N_("list: list opened windows (no parameter implies this list)\n"
+ "splith: split current window horizontally\n"
+ "splitv: split current window vertically\n"
+ "merge: merge window with another"),
0, 2, weechat_cmd_window, NULL },
{ NULL, NULL, NULL, NULL, 0, 0, NULL, NULL }
};
@@ -877,6 +883,7 @@ weechat_cmd_buffer (int argc, char **argv)
t_irc_channel *ptr_channel;
long number;
char *error;
+ int target_buffer;
if ((argc == 0) || ((argc == 1) && (strcasecmp (argv[0], "list") == 0)))
{
@@ -1049,26 +1056,41 @@ weechat_cmd_buffer (int argc, char **argv)
{
/* jump to buffer by number */
- error = NULL;
- number = strtol (argv[0], &error, 10);
- if ((error) && (error[0] == '\0'))
+ if (argv[0][0] == '-')
{
- if (!gui_switch_to_buffer_by_number (gui_current_window, (int) number))
+ /* relative jump '-' */
+ error = NULL;
+ number = strtol (argv[0] + 1, &error, 10);
+ if ((error) && (error[0] == '\0'))
{
- irc_display_prefix (NULL, PREFIX_ERROR);
- gui_printf (NULL,
- _("%s buffer \"%s\" not found for \"%s\" command\n"),
- WEECHAT_ERROR, argv[0], "buffer");
- return -1;
+ target_buffer = gui_current_window->buffer->number - (int) number;
+ if (target_buffer < 1)
+ target_buffer = (last_gui_buffer) ? last_gui_buffer->number + target_buffer : 1;
+ gui_switch_to_buffer_by_number (gui_current_window,
+ target_buffer);
+ }
+ }
+ else if (argv[0][0] == '+')
+ {
+ /* relative jump '+' */
+ error = NULL;
+ number = strtol (argv[0] + 1, &error, 10);
+ if ((error) && (error[0] == '\0'))
+ {
+ target_buffer = gui_current_window->buffer->number + (int) number;
+ if (last_gui_buffer && target_buffer > last_gui_buffer->number)
+ target_buffer -= last_gui_buffer->number;
+ gui_switch_to_buffer_by_number (gui_current_window,
+ target_buffer);
}
}
else
{
- /* invalid number */
- irc_display_prefix (NULL, PREFIX_ERROR);
- gui_printf (NULL, _("%s incorrect buffer number\n"),
- WEECHAT_ERROR);
- return -1;
+ /* absolute jump by number */
+ error = NULL;
+ number = strtol (argv[0], &error, 10);
+ if ((error) && (error[0] == '\0'))
+ gui_switch_to_buffer_by_number (gui_current_window, (int) number);
}
}
@@ -1323,6 +1345,138 @@ weechat_cmd_help (int argc, char **argv)
}
/*
+ * weechat_cmd_key_display: display a key binding
+ */
+
+void
+weechat_cmd_key_display (t_gui_key *key, int new_key)
+{
+ char *expanded_name;
+
+ expanded_name = gui_key_get_expanded_name (key->key);
+ if (new_key)
+ {
+ gui_printf (NULL, _("New key binding:\n"));
+ gui_printf (NULL, " %s", (expanded_name) ? expanded_name : key->key);
+ }
+ else
+ gui_printf (NULL, " %20s", (expanded_name) ? expanded_name : key->key);
+ gui_printf_color (NULL, COLOR_WIN_CHAT_DARK, " => ");
+ gui_printf (NULL, "%s\n",
+ (key->function) ?
+ gui_key_function_search_by_ptr (key->function) : key->command);
+ if (expanded_name)
+ free (expanded_name);
+}
+
+/*
+ * weechat_cmd_key: bind/unbind keys
+ */
+
+int
+weechat_cmd_key (char *arguments)
+{
+ char *pos;
+ int i;
+ t_gui_key *ptr_key;
+
+ if (arguments)
+ {
+ while (arguments[0] == ' ')
+ arguments++;
+ }
+
+ if (!arguments || (arguments[0] == '\0'))
+ {
+ gui_printf (NULL, "\n");
+ gui_printf (NULL, _("Key bindings:\n"));
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ weechat_cmd_key_display (ptr_key, 0);
+ }
+ }
+ else if (strncasecmp (arguments, "unbind ", 7) == 0)
+ {
+ arguments += 7;
+ while (arguments[0] == ' ')
+ arguments++;
+ if (gui_key_unbind (arguments))
+ gui_printf (NULL, _("Key \"%s\" unbinded\n"), arguments);
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s unable to unbind key \"%s\"\n"),
+ WEECHAT_ERROR, arguments);
+ return -1;
+ }
+ }
+ else if (strcasecmp (arguments, "functions") == 0)
+ {
+ gui_printf (NULL, "\n");
+ gui_printf (NULL, _("Internal key functions:\n"));
+ i = 0;
+ while (gui_key_functions[i].function_name)
+ {
+ gui_printf (NULL, " %s\n",
+ gui_key_functions[i].function_name);
+ i++;
+ }
+ }
+ else if (strncasecmp (arguments, "reset", 5) == 0)
+ {
+ arguments += 5;
+ while (arguments[0] == ' ')
+ arguments++;
+ if (strcmp (arguments, "-yes") == 0)
+ {
+ gui_key_free_all ();
+ gui_key_init ();
+ gui_printf (NULL, _("Default key bindings restored\n"));
+ }
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s \"-yes\" argument is required for keys reset (securuty reason)\n"),
+ WEECHAT_ERROR);
+ return -1;
+ }
+ }
+ else
+ {
+ while (arguments[0] == ' ')
+ arguments++;
+ pos = strchr (arguments, ' ');
+ if (!pos)
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s wrong argument count for \"%s\" command\n"),
+ WEECHAT_ERROR, "key");
+ return -1;
+ }
+ pos[0] = '\0';
+ pos++;
+ while (pos[0] == ' ')
+ pos++;
+ ptr_key = gui_key_bind (arguments, pos);
+ if (ptr_key)
+ weechat_cmd_key_display (ptr_key, 1);
+ else
+ {
+ irc_display_prefix (NULL, PREFIX_ERROR);
+ gui_printf (NULL,
+ _("%s unable to bind key \"%s\"\n"),
+ WEECHAT_ERROR, arguments);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+/*
* weechat_cmd_perl: list/load/unload Perl scripts
*/
@@ -1892,11 +2046,11 @@ weechat_cmd_server (int argc, char **argv)
}
/*
- * weechat_set_cmd_display_option: display config option
+ * weechat_cmd_set_display_option: display config option
*/
void
-weechat_set_cmd_display_option (t_config_option *option, char *prefix, void *value)
+weechat_cmd_set_display_option (t_config_option *option, char *prefix, void *value)
{
char *color_name, *pos_nickserv, *pos_pwd, *value2;
@@ -2039,7 +2193,7 @@ weechat_cmd_set (char *arguments)
{
ptr_option_value = config_get_server_option_ptr (ptr_server,
weechat_options[CONFIG_SECTION_SERVER][i].option_name);
- weechat_set_cmd_display_option (&weechat_options[CONFIG_SECTION_SERVER][i],
+ weechat_cmd_set_display_option (&weechat_options[CONFIG_SECTION_SERVER][i],
ptr_server->name,
ptr_option_value);
}
@@ -2080,7 +2234,7 @@ weechat_cmd_set (char *arguments)
gui_printf_color (NULL, COLOR_WIN_CHAT_CHANNEL,
"%s", config_get_section (ptr_option));
gui_printf_color (NULL, COLOR_WIN_CHAT_DARK, "]\n");
- weechat_set_cmd_display_option (ptr_option, NULL, NULL);
+ weechat_cmd_set_display_option (ptr_option, NULL, NULL);
}
else
{
@@ -2104,7 +2258,8 @@ weechat_cmd_set (char *arguments)
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
section_displayed = 0;
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
@@ -2122,7 +2277,7 @@ weechat_cmd_set (char *arguments)
gui_printf_color (NULL, COLOR_WIN_CHAT_DARK, "]\n");
section_displayed = 1;
}
- weechat_set_cmd_display_option (&weechat_options[i][j], NULL, NULL);
+ weechat_cmd_set_display_option (&weechat_options[i][j], NULL, NULL);
number_found++;
}
}
@@ -2155,7 +2310,7 @@ weechat_cmd_set (char *arguments)
weechat_options[CONFIG_SECTION_SERVER][i].option_name);
if (ptr_option_value)
{
- weechat_set_cmd_display_option (&weechat_options[CONFIG_SECTION_SERVER][i],
+ weechat_cmd_set_display_option (&weechat_options[CONFIG_SECTION_SERVER][i],
ptr_server->name,
ptr_option_value);
number_found++;
@@ -2288,6 +2443,10 @@ weechat_cmd_window (int argc, char **argv)
else
gui_window_merge_auto (gui_current_window);
}
+ else if (strcasecmp (argv[0], "-1") == 0)
+ gui_switch_to_previous_window ();
+ else if (strcasecmp (argv[0], "+1") == 0)
+ gui_switch_to_next_window ();
else
{
irc_display_prefix (NULL, PREFIX_ERROR);
diff --git a/weechat/src/common/command.h b/weechat/src/common/command.h
index aac5701fb..f839f4ab2 100644
--- a/weechat/src/common/command.h
+++ b/weechat/src/common/command.h
@@ -69,6 +69,7 @@ extern int weechat_cmd_connect (int, char **);
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_key (char *);
extern int weechat_cmd_perl (int, char **);
extern int weechat_cmd_python (int, char **);
extern int weechat_cmd_save (int, char **);
diff --git a/weechat/src/common/completion.c b/weechat/src/common/completion.c
index 477f42ffc..ef3838b51 100644
--- a/weechat/src/common/completion.c
+++ b/weechat/src/common/completion.c
@@ -201,6 +201,23 @@ completion_build_list (t_completion *completion, void *channel)
}
return;
}
+ if ((strcasecmp (completion->base_command, "key") == 0)
+ && (completion->base_command_arg == 1))
+ {
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "bind");
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "unbind");
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "functions");
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ "reset");
+ return;
+ }
if (((strcasecmp (completion->base_command, "perl") == 0)
|| (strcasecmp (completion->base_command, "python") == 0))
&& (completion->base_command_arg == 1))
@@ -225,7 +242,8 @@ completion_build_list (t_completion *completion, void *channel)
{
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
diff --git a/weechat/src/common/weechat.c b/weechat/src/common/weechat.c
index 1a8db3385..0eb311d25 100644
--- a/weechat/src/common/weechat.c
+++ b/weechat/src/common/weechat.c
@@ -314,6 +314,47 @@ void wee_display_commands (int weechat_cmd, int irc_cmd)
}
/*
+ * wee_display_key_functions: display WeeChat key functions
+ */
+
+void wee_display_key_functions ()
+{
+ int i;
+
+ printf (_("Internal key functions:\n"));
+ printf ("\n");
+ i = 0;
+ while (gui_key_functions[i].function_name)
+ {
+ printf (" %s\n",
+ gui_key_functions[i].function_name);
+ i++;
+ }
+}
+
+/*
+ * wee_display_keys: display WeeChat default keys
+ */
+
+void wee_display_keys ()
+{
+ t_gui_key *ptr_key;
+ char *expanded_name;
+
+ printf (_("%s default keys:\n"), PACKAGE_NAME);
+ printf ("\n");
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ expanded_name = gui_key_get_expanded_name (ptr_key->key);
+ printf (" %20s => %s\n",
+ (expanded_name) ? expanded_name : ptr_key->key,
+ (ptr_key->function) ? gui_key_function_search_by_ptr (ptr_key->function) : ptr_key->command);
+ if (expanded_name)
+ free (expanded_name);
+ }
+}
+
+/*
* wee_parse_args: parse command line args
*/
@@ -333,6 +374,12 @@ wee_parse_args (int argc, char *argv[])
wee_display_config_options ();
wee_shutdown (EXIT_SUCCESS);
}
+ else if ((strcmp (argv[i], "-f") == 0)
+ || (strcmp (argv[i], "--key-functions") == 0))
+ {
+ wee_display_key_functions ();
+ wee_shutdown (EXIT_SUCCESS);
+ }
else if ((strcmp (argv[i], "-h") == 0)
|| (strcmp (argv[i], "--help") == 0))
{
@@ -340,12 +387,18 @@ wee_parse_args (int argc, char *argv[])
printf ("%s", WEE_USAGE2);
wee_shutdown (EXIT_SUCCESS);
}
- if ((strcmp (argv[i], "-i") == 0)
+ else if ((strcmp (argv[i], "-i") == 0)
|| (strcmp (argv[i], "--irc-commands") == 0))
{
wee_display_commands (0, 1);
wee_shutdown (EXIT_SUCCESS);
}
+ else if ((strcmp (argv[i], "-k") == 0)
+ || (strcmp (argv[i], "--keys") == 0))
+ {
+ wee_display_keys ();
+ wee_shutdown (EXIT_SUCCESS);
+ }
else if ((strcmp (argv[i], "-l") == 0)
|| (strcmp (argv[i], "--license") == 0))
{
@@ -358,7 +411,7 @@ wee_parse_args (int argc, char *argv[])
printf (PACKAGE_VERSION "\n");
wee_shutdown (EXIT_SUCCESS);
}
- if ((strcmp (argv[i], "-w") == 0)
+ else if ((strcmp (argv[i], "-w") == 0)
|| (strcmp (argv[i], "--weechat-commands") == 0))
{
wee_display_commands (1, 0);
@@ -771,6 +824,7 @@ main (int argc, char *argv[])
signal (SIGSEGV, my_sigsegv); /* crash dump when SIGSEGV is received */
gui_pre_init (&argc, &argv); /* pre-initiliaze interface */
wee_init_vars (); /* initialize some variables */
+ gui_key_init (); /* init keyboard (default key bindings) */
wee_parse_args (argc, argv); /* parse command line args */
wee_create_home_dirs (); /* create WeeChat directories */
wee_init_log (); /* init log file */
diff --git a/weechat/src/common/weechat.h b/weechat/src/common/weechat.h
index ead962144..569ba7728 100644
--- a/weechat/src/common/weechat.h
+++ b/weechat/src/common/weechat.h
@@ -90,8 +90,10 @@
#define WEE_USAGE2 \
" -c, --config display config file options\n" \
- " -h, --help this help screen\n" \
+ " -f, --key-functions display WeeChat internal functions for keys\n" \
+ " -h, --help this help\n" \
" -i, --irc-commands display IRC commands\n" \
+ " -k, --keys display WeeChat default keys\n" \
" -l, --license display WeeChat license\n" \
" -v, --version display WeeChat version\n" \
" -w, --weechat-commands display WeeChat commands\n\n"
diff --git a/weechat/src/common/weeconfig.c b/weechat/src/common/weeconfig.c
index d35afe62a..dbbe51c8f 100644
--- a/weechat/src/common/weeconfig.c
+++ b/weechat/src/common/weeconfig.c
@@ -53,6 +53,7 @@ t_config_section config_sections[CONFIG_NUMBER_SECTIONS] =
{ CONFIG_SECTION_IRC, "irc" },
{ CONFIG_SECTION_DCC, "dcc" },
{ CONFIG_SECTION_PROXY, "proxy" },
+ { CONFIG_SECTION_KEYS, "keys" },
{ CONFIG_SECTION_ALIAS, "alias" },
{ CONFIG_SECTION_SERVER, "server" }
};
@@ -82,6 +83,7 @@ char *cfg_look_no_nickname;
char *cfg_look_completor;
int cfg_look_infobar;
char *cfg_look_infobar_timestamp;
+int cfg_look_infobar_seconds;
int cfg_look_infobar_delay_highlight;
t_config_option weechat_options_look[] =
@@ -170,7 +172,11 @@ t_config_option weechat_options_look[] =
{ "look_infobar_timestamp", N_("timestamp for time in infobar"),
N_("timestamp for time in infobar"),
OPTION_TYPE_STRING, 0, 0, 0,
- "%B, %A %d %Y - %H:%M", NULL, NULL, &cfg_look_infobar_timestamp, config_change_buffer_content },
+ "%B, %A %d %Y", NULL, NULL, &cfg_look_infobar_timestamp, config_change_buffer_content },
+ { "look_infobar_seconds", N_("display seconds in infobar time"),
+ N_("display seconds in infobar time"),
+ OPTION_TYPE_BOOLEAN, BOOL_FALSE, BOOL_TRUE, BOOL_TRUE,
+ NULL, NULL, &cfg_look_infobar_seconds, NULL, config_change_buffer_content },
{ "look_infobar_delay_highlight", N_("delay (in seconds) for highlight messages in infobar"),
N_("delay (in seconds) for highlight messages in infobar "
"(0 = disable highlight notifications in infobar)"),
@@ -202,6 +208,7 @@ int cfg_col_status_data_other;
int cfg_col_status_more;
int cfg_col_status_bg;
int cfg_col_infobar;
+int cfg_col_infobar_delimiters;
int cfg_col_infobar_highlight;
int cfg_col_infobar_bg;
int cfg_col_input;
@@ -320,6 +327,10 @@ t_config_option weechat_options_colors[] =
N_("color for info bar text"),
OPTION_TYPE_COLOR, 0, 0, 0,
"black", NULL, &cfg_col_infobar, NULL, &config_change_color },
+ { "col_infobar_delimiters", N_("color for infobar delimiters"),
+ N_("color for infobar delimiters"),
+ OPTION_TYPE_COLOR, 0, 0, 0,
+ "blue", NULL, &cfg_col_infobar_delimiters, NULL, &config_change_color },
{ "col_infobar_highlight", N_("color for info bar highlight notification"),
N_("color for info bar highlight notification"),
OPTION_TYPE_COLOR, 0, 0, 0,
@@ -727,7 +738,7 @@ t_config_option weechat_options_server[] =
t_config_option *weechat_options[CONFIG_NUMBER_SECTIONS] =
{ weechat_options_look, weechat_options_colors, weechat_options_history,
weechat_options_log, weechat_options_irc, weechat_options_dcc,
- weechat_options_proxy, NULL, weechat_options_server
+ weechat_options_proxy, NULL, NULL, weechat_options_server
};
@@ -763,7 +774,8 @@ config_get_section (t_config_option *ptr_option)
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
@@ -1057,7 +1069,8 @@ config_option_search (char *option_name)
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
@@ -1220,7 +1233,8 @@ config_default_values ()
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
@@ -1375,8 +1389,22 @@ config_read ()
if (pos2 != NULL)
pos2[0] = '\0';
- if (section == CONFIG_SECTION_ALIAS)
+ if (section == CONFIG_SECTION_KEYS)
{
+ if (pos[0])
+ {
+ /* bind key (overwrite any binding with same key) */
+ gui_key_bind (line, pos);
+ }
+ else
+ {
+ /* unbin key if no value given */
+ gui_key_unbind (line);
+ }
+ }
+ else if (section == CONFIG_SECTION_ALIAS)
+ {
+ /* create new alias */
if (alias_new (line, pos))
weelist_add (&index_commands, &last_index_command, line);
}
@@ -1493,6 +1521,8 @@ config_create_default ()
time_t current_time;
struct passwd *my_passwd;
char *realname, *pos;
+ t_gui_key *ptr_key;
+ char *expanded_name, *function_name;
filename_length = strlen (weechat_home) + 64;
filename =
@@ -1520,7 +1550,8 @@ config_create_default ()
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
fprintf (file, "\n[%s]\n", config_sections[i].section_name);
for (j = 0; weechat_options[i][j].option_name; j++)
@@ -1550,6 +1581,27 @@ config_create_default ()
}
}
+ /* default key bindings */
+ fprintf (file, "\n[keys]\n");
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ expanded_name = gui_key_get_expanded_name (ptr_key->key);
+ if (ptr_key->function)
+ {
+ function_name = gui_key_function_search_by_ptr (ptr_key->function);
+ if (function_name)
+ fprintf (file, "%s=%s\n",
+ (expanded_name) ? expanded_name : ptr_key->key,
+ function_name);
+ }
+ else
+ fprintf (file, "%s=%s\n",
+ (expanded_name) ? expanded_name : ptr_key->key,
+ ptr_key->command);
+ if (expanded_name)
+ free (expanded_name);
+ }
+
/* default aliases */
/* TODO: remove comments when missing commands will be ok */
fprintf (file, "\n[alias]\n");
@@ -1560,20 +1612,20 @@ config_create_default ()
fprintf (file, "C=clear\n");
fprintf (file, "CL=clear\n");
fprintf (file, "CLOSE=buffer close\n");
- fprintf (file, "# CHAT=dcc chat\n");
+ fprintf (file, "CHAT=dcc chat\n");
fprintf (file, "# GET=dcc get\n");
fprintf (file, "# IG=ignore\n");
fprintf (file, "J=join\n");
fprintf (file, "K=kick\n");
- fprintf (file, "# KB=kickban\n");
+ fprintf (file, "KB=kickban\n");
fprintf (file, "# KN=knockout\n");
fprintf (file, "LEAVE=part\n");
fprintf (file, "M=msg\n");
- fprintf (file, "# MUB=unban *\n");
+ fprintf (file, "MUB=unban *\n");
fprintf (file, "N=names\n");
fprintf (file, "Q=query\n");
fprintf (file, "T=topic\n");
- fprintf (file, "# UB=unban\n");
+ fprintf (file, "UB=unban\n");
fprintf (file, "# UNIG=unignore\n");
fprintf (file, "W=who\n");
fprintf (file, "WC=part\n");
@@ -1658,6 +1710,8 @@ config_write (char *config_name)
time_t current_time;
t_irc_server *ptr_server;
t_weechat_alias *ptr_alias;
+ t_gui_key *ptr_key;
+ char *expanded_name, *function_name;
if (config_name)
filename = strdup (config_name);
@@ -1690,7 +1744,8 @@ config_write (char *config_name)
for (i = 0; i < CONFIG_NUMBER_SECTIONS; i++)
{
- if ((i != CONFIG_SECTION_ALIAS) && (i != CONFIG_SECTION_SERVER))
+ if ((i != CONFIG_SECTION_KEYS) && (i != CONFIG_SECTION_ALIAS)
+ && (i != CONFIG_SECTION_SERVER))
{
fprintf (file, "\n[%s]\n", config_sections[i].section_name);
for (j = 0; weechat_options[i][j].option_name; j++)
@@ -1737,6 +1792,27 @@ config_write (char *config_name)
}
}
+ /* keys section */
+ fprintf (file, "\n[keys]\n");
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ expanded_name = gui_key_get_expanded_name (ptr_key->key);
+ if (ptr_key->function)
+ {
+ function_name = gui_key_function_search_by_ptr (ptr_key->function);
+ if (function_name)
+ fprintf (file, "%s=%s\n",
+ (expanded_name) ? expanded_name : ptr_key->key,
+ function_name);
+ }
+ else
+ fprintf (file, "%s=%s\n",
+ (expanded_name) ? expanded_name : ptr_key->key,
+ ptr_key->command);
+ if (expanded_name)
+ free (expanded_name);
+ }
+
/* alias section */
fprintf (file, "\n[alias]\n");
for (ptr_alias = weechat_alias; ptr_alias;
diff --git a/weechat/src/common/weeconfig.h b/weechat/src/common/weeconfig.h
index 9d25aea60..5a8c98684 100644
--- a/weechat/src/common/weeconfig.h
+++ b/weechat/src/common/weeconfig.h
@@ -33,9 +33,10 @@
#define CONFIG_SECTION_IRC 4
#define CONFIG_SECTION_DCC 5
#define CONFIG_SECTION_PROXY 6
-#define CONFIG_SECTION_ALIAS 7
-#define CONFIG_SECTION_SERVER 8
-#define CONFIG_NUMBER_SECTIONS 9
+#define CONFIG_SECTION_KEYS 7
+#define CONFIG_SECTION_ALIAS 8
+#define CONFIG_SECTION_SERVER 9
+#define CONFIG_NUMBER_SECTIONS 10
#define OPTION_TYPE_BOOLEAN 1 /* values: on/off */
#define OPTION_TYPE_INT 2 /* values: from min to max */
@@ -97,6 +98,7 @@ extern char *cfg_look_no_nickname;
extern char *cfg_look_completor;
extern int cfg_look_infobar;
extern char *cfg_look_infobar_timestamp;
+extern int cfg_look_infobar_seconds;
extern int cfg_look_infobar_delay_highlight;
extern int cfg_col_title;
@@ -120,6 +122,7 @@ extern int cfg_col_status_data_other;
extern int cfg_col_status_more;
extern int cfg_col_status_bg;
extern int cfg_col_infobar;
+extern int cfg_col_infobar_delimiters;
extern int cfg_col_infobar_highlight;
extern int cfg_col_infobar_bg;
extern int cfg_col_input;
diff --git a/weechat/src/gui/Makefile.am b/weechat/src/gui/Makefile.am
index 383493cc4..76367847a 100644
--- a/weechat/src/gui/Makefile.am
+++ b/weechat/src/gui/Makefile.am
@@ -20,6 +20,7 @@ INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\"
noinst_LIBRARIES = lib_weechat_gui_common.a
lib_weechat_gui_common_a_SOURCES = gui-common.c \
+ gui-keyboard.c \
gui.h
if GUI_NCURSES
diff --git a/weechat/src/gui/curses/Makefile.am b/weechat/src/gui/curses/Makefile.am
index 01eaaa35d..4bef0cdc9 100644
--- a/weechat/src/gui/curses/Makefile.am
+++ b/weechat/src/gui/curses/Makefile.am
@@ -19,7 +19,7 @@ INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\"
bin_PROGRAMS = weechat-curses
-weechat_curses_LDADD = ../lib_weechat_gui_common.a \
+weechat_curses_LDADD = ../gui-common.o ../gui-keyboard.o \
../../common/lib_weechat_main.a \
../../irc/lib_weechat_irc.a \
$(NCURSES_LIBS) \
@@ -27,4 +27,4 @@ weechat_curses_LDADD = ../lib_weechat_gui_common.a \
$(GNUTLS_LIBS)
weechat_curses_SOURCES = gui-display.c \
- gui-input.c
+ gui-input.c
diff --git a/weechat/src/gui/curses/gui-display.c b/weechat/src/gui/curses/gui-display.c
index a9873c601..6bfef6c0c 100644
--- a/weechat/src/gui/curses/gui-display.c
+++ b/weechat/src/gui/curses/gui-display.c
@@ -318,7 +318,7 @@ gui_draw_window_separator (t_gui_window *window)
window->win_x - 1);
gui_window_set_color (window->win_separator, COLOR_WIN_TITLE);
wborder (window->win_separator, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
- wrefresh (window->win_separator);
+ wnoutrefresh (window->win_separator);
refresh ();
}
}
@@ -341,15 +341,9 @@ gui_draw_buffer_title (t_gui_buffer *buffer, int erase)
if (ptr_win->buffer == buffer)
{
if (erase)
- gui_curses_window_clear (ptr_win->win_title);
+ gui_curses_window_clear (ptr_win->win_title);
- if (has_colors ())
- {
- gui_window_set_color (ptr_win->win_title, COLOR_WIN_TITLE);
- wborder (ptr_win->win_title, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
- wrefresh (ptr_win->win_title);
- refresh ();
- }
+ gui_window_set_color (ptr_win->win_title, COLOR_WIN_TITLE);
snprintf (format, 32, "%%-%ds", ptr_win->win_width);
if (CHANNEL(buffer))
{
@@ -362,6 +356,8 @@ gui_draw_buffer_title (t_gui_buffer *buffer, int erase)
mvwprintw (ptr_win->win_title, 0, 0, format, buf);
free (buf);
}
+ else
+ mvwprintw (ptr_win->win_title, 0, 0, format, " ");
}
else
{
@@ -372,8 +368,10 @@ gui_draw_buffer_title (t_gui_buffer *buffer, int erase)
PACKAGE_STRING " " WEECHAT_COPYRIGHT_DATE " - "
WEECHAT_WEBSITE);
}
+ else
+ mvwprintw (ptr_win->win_title, 0, 0, format, " ");
}
- wrefresh (ptr_win->win_title);
+ wnoutrefresh (ptr_win->win_title);
refresh ();
}
}
@@ -860,7 +858,7 @@ gui_draw_buffer_chat (t_gui_buffer *buffer, int erase)
ptr_win->win_chat_cursor_y = ptr_win->win_chat_height - 1;
}
}
- wrefresh (ptr_win->win_chat);
+ wnoutrefresh (ptr_win->win_chat);
refresh ();
}
}
@@ -1058,7 +1056,7 @@ gui_draw_buffer_nick (t_gui_buffer *buffer, int erase)
}
}
}
- wrefresh (ptr_win->win_nick);
+ wnoutrefresh (ptr_win->win_nick);
refresh ();
}
}
@@ -1087,12 +1085,8 @@ gui_draw_buffer_status (t_gui_buffer *buffer, int erase)
if (erase)
gui_curses_window_clear (ptr_win->win_status);
- if (has_colors ())
- {
- gui_window_set_color (ptr_win->win_status, COLOR_WIN_STATUS);
- wborder (ptr_win->win_status, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
- wrefresh (ptr_win->win_status);
- }
+ gui_window_set_color (ptr_win->win_status, COLOR_WIN_STATUS);
+ wborder (ptr_win->win_status, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
wmove (ptr_win->win_status, 0, 0);
/* display number of buffers */
@@ -1224,17 +1218,20 @@ gui_draw_buffer_status (t_gui_buffer *buffer, int erase)
if (!SERVER(ptr_win->buffer))
{
gui_window_set_color (ptr_win->win_status, COLOR_WIN_STATUS);
+ wprintw (ptr_win->win_status, "%d",
+ ptr_win->buffer->number);
+ gui_window_set_color (ptr_win->win_status, COLOR_WIN_STATUS_DELIMITERS);
+ wprintw (ptr_win->win_status, ":");
+ gui_window_set_color (ptr_win->win_status, COLOR_WIN_STATUS);
if (ptr_win->buffer->dcc)
- wprintw (ptr_win->win_status, "%d:<DCC> ",
- ptr_win->buffer->number);
+ wprintw (ptr_win->win_status, "<DCC> ");
else
{
string = weechat_convert_encoding (cfg_look_charset_decode,
(cfg_look_charset_internal && cfg_look_charset_internal[0]) ?
cfg_look_charset_internal : local_charset,
- _("%d:[not connected] "));
- wprintw (ptr_win->win_status, string,
- ptr_win->buffer->number);
+ _("[not connected]"));
+ wprintw (ptr_win->win_status, "%s " , string);
free (string);
}
}
@@ -1344,12 +1341,49 @@ gui_draw_buffer_status (t_gui_buffer *buffer, int erase)
}
free (string);
- wrefresh (ptr_win->win_status);
+ wnoutrefresh (ptr_win->win_status);
refresh ();
}
}
/*
+ * gui_draw_buffer_infobar_time: draw time in infobar window
+ */
+
+void
+gui_draw_buffer_infobar_time (t_gui_buffer *buffer)
+{
+ t_gui_window *ptr_win;
+ time_t time_seconds;
+ struct tm *local_time;
+
+ /* make gcc happy */
+ (void) buffer;
+
+ if (!gui_ok)
+ return;
+
+ for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
+ {
+ time_seconds = time (NULL);
+ local_time = localtime (&time_seconds);
+ if (local_time)
+ {
+ gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR);
+ mvwprintw (ptr_win->win_infobar,
+ 0, 1,
+ "%02d:%02d",
+ local_time->tm_hour, local_time->tm_min);
+ if (cfg_look_infobar_seconds)
+ wprintw (ptr_win->win_infobar,
+ ":%02d",
+ local_time->tm_sec);
+ }
+ wnoutrefresh (ptr_win->win_infobar);
+ }
+}
+
+/*
* gui_draw_buffer_infobar: draw infobar window for a buffer
*/
@@ -1376,7 +1410,7 @@ gui_draw_buffer_infobar (t_gui_buffer *buffer, int erase)
{
gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR);
wborder (ptr_win->win_infobar, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
- wrefresh (ptr_win->win_infobar);
+ wnoutrefresh (ptr_win->win_infobar);
}
wmove (ptr_win->win_infobar, 0, 0);
@@ -1385,16 +1419,31 @@ gui_draw_buffer_infobar (t_gui_buffer *buffer, int erase)
if (local_time)
{
strftime (text_time, 1024, cfg_look_infobar_timestamp, local_time);
+ gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR_DELIMITERS);
+ wprintw (ptr_win->win_infobar, "[");
+ gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR);
+ wprintw (ptr_win->win_infobar,
+ "%02d:%02d",
+ local_time->tm_hour, local_time->tm_min);
+ if (cfg_look_infobar_seconds)
+ wprintw (ptr_win->win_infobar,
+ ":%02d",
+ local_time->tm_sec);
+ gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR_DELIMITERS);
+ wprintw (ptr_win->win_infobar, "]");
gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR);
- wprintw (ptr_win->win_infobar, "%s", text_time);
+ wprintw (ptr_win->win_infobar,
+ " %s", text_time);
}
if (gui_infobar)
{
+ gui_window_set_color (ptr_win->win_infobar, COLOR_WIN_INFOBAR_DELIMITERS);
+ wprintw (ptr_win->win_infobar, " | ");
gui_window_set_color (ptr_win->win_infobar, gui_infobar->color);
- wprintw (ptr_win->win_infobar, " | %s", gui_infobar->text);
+ wprintw (ptr_win->win_infobar, "%s", gui_infobar->text);
}
- wrefresh (ptr_win->win_infobar);
+ wnoutrefresh (ptr_win->win_infobar);
refresh ();
}
}
@@ -1445,7 +1494,7 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
{
gui_window_set_color (ptr_win->win_input, COLOR_WIN_INPUT);
wborder (ptr_win->win_input, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
- wrefresh (ptr_win->win_input);
+ wnoutrefresh (ptr_win->win_input);
}
if (buffer->input_buffer_size == 0)
@@ -1488,11 +1537,12 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
SERVER(buffer)->nick,
"");
wclrtoeol (ptr_win->win_input);
+ ptr_win->win_input_x = strlen (CHANNEL(buffer)->name) +
+ strlen (SERVER(buffer)->nick) + 3 +
+ (buffer->input_buffer_pos - buffer->input_buffer_1st_display);
if (ptr_win == gui_current_window)
move (ptr_win->win_y + ptr_win->win_height - 1,
- ptr_win->win_x + strlen (CHANNEL(buffer)->name) +
- strlen (SERVER(buffer)->nick) + 3 +
- (buffer->input_buffer_pos - buffer->input_buffer_1st_display));
+ ptr_win->win_x + ptr_win->win_input_x);
}
else
{
@@ -1523,6 +1573,7 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
wprintw (ptr_win->win_input, _(" [P] Purge old DCC"));
wprintw (ptr_win->win_input, _(" [Q] Close DCC view"));
wclrtoeol (ptr_win->win_input);
+ ptr_win->win_input_x = 0;
if (ptr_win == gui_current_window)
move (ptr_win->win_y + ptr_win->win_height - 1,
ptr_win->win_x);
@@ -1543,14 +1594,15 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
ptr_nickname,
"");
wclrtoeol (ptr_win->win_input);
+ ptr_win->win_input_x = strlen (ptr_nickname) + 2 +
+ (buffer->input_buffer_pos - buffer->input_buffer_1st_display);
if (ptr_win == gui_current_window)
move (ptr_win->win_y + ptr_win->win_height - 1,
- ptr_win->win_x + strlen (ptr_nickname) + 2 +
- (buffer->input_buffer_pos - buffer->input_buffer_1st_display));
+ ptr_win->win_x + ptr_win->win_input_x);
}
}
- wrefresh (ptr_win->win_input);
+ wnoutrefresh (ptr_win->win_input);
refresh ();
}
}
@@ -1728,215 +1780,143 @@ gui_switch_to_dcc_buffer ()
}
/*
- * gui_switch_to_previous_buffer: switch to previous buffer
- */
-
-void
-gui_switch_to_previous_buffer (t_gui_window *window)
-{
- if (!gui_ok)
- return;
-
- /* if only one buffer then return */
- if (gui_buffers == last_gui_buffer)
- return;
-
- if (window->buffer->prev_buffer)
- gui_switch_to_buffer (window, window->buffer->prev_buffer);
- else
- gui_switch_to_buffer (window, last_gui_buffer);
-
- gui_redraw_buffer (window->buffer);
-}
-
-/*
- * gui_switch_to_next_buffer: switch to next buffer
- */
-
-void
-gui_switch_to_next_buffer (t_gui_window *window)
-{
- if (!gui_ok)
- return;
-
- /* if only one buffer then return */
- if (gui_buffers == last_gui_buffer)
- return;
-
- if (window->buffer->next_buffer)
- gui_switch_to_buffer (window, window->buffer->next_buffer);
- else
- gui_switch_to_buffer (window, gui_buffers);
-
- gui_redraw_buffer (window->buffer);
-}
-
-/*
- * gui_switch_to_previous_window: switch to previous window
- */
-
-void
-gui_switch_to_previous_window (t_gui_window *window)
-{
- if (!gui_ok)
- return;
-
- /* if only one window then return */
- if (gui_windows == last_gui_window)
- return;
-
- gui_current_window = (window->prev_window) ? window->prev_window : last_gui_window;
- gui_switch_to_buffer (gui_current_window, gui_current_window->buffer);
- gui_redraw_buffer (gui_current_window->buffer);
-}
-
-/*
- * gui_switch_to_next_window: switch to next window
+ * gui_input_page_up: display previous page on buffer
*/
void
-gui_switch_to_next_window (t_gui_window *window)
+gui_input_page_up ()
{
if (!gui_ok)
return;
- /* if only one window then return */
- if (gui_windows == last_gui_window)
- return;
-
- gui_current_window = (window->next_window) ? window->next_window : gui_windows;
- gui_switch_to_buffer (gui_current_window, gui_current_window->buffer);
- gui_redraw_buffer (gui_current_window->buffer);
-}
-
-/*
- * gui_move_page_up: display previous page on buffer
- */
-
-void
-gui_move_page_up (t_gui_window *window)
-{
- if (!gui_ok)
- return;
-
- if (!window->first_line_displayed)
+ if (!gui_current_window->first_line_displayed)
{
- window->sub_lines += window->win_chat_height - 1;
- gui_draw_buffer_chat (window->buffer, 0);
- gui_draw_buffer_status (window->buffer, 0);
+ gui_current_window->sub_lines +=
+ gui_current_window->win_chat_height - 1;
+ gui_draw_buffer_chat (gui_current_window->buffer, 0);
+ gui_draw_buffer_status (gui_current_window->buffer, 0);
}
}
/*
- * gui_move_page_down: display next page on buffer
+ * gui_input_page_down: display next page on buffer
*/
void
-gui_move_page_down (t_gui_window *window)
+gui_input_page_down ()
{
if (!gui_ok)
return;
- if (window->sub_lines > 0)
+ if (gui_current_window->sub_lines > 0)
{
- window->sub_lines -= window->win_chat_height - 1;
- if (window->sub_lines < 0)
- window->sub_lines = 0;
- gui_draw_buffer_chat (window->buffer, 0);
- gui_draw_buffer_status (window->buffer, 0);
+ gui_current_window->sub_lines -=
+ gui_current_window->win_chat_height - 1;
+ if (gui_current_window->sub_lines < 0)
+ gui_current_window->sub_lines = 0;
+ gui_draw_buffer_chat (gui_current_window->buffer, 0);
+ gui_draw_buffer_status (gui_current_window->buffer, 0);
}
}
/*
- * gui_nick_move_beginning: go to beginning of nicklist
+ * gui_input_nick_beginning: go to beginning of nicklist
*/
void
-gui_nick_move_beginning (t_gui_window *window)
+gui_input_nick_beginning ()
{
if (!gui_ok)
return;
- if (gui_buffer_has_nicklist (window->buffer))
+ if (gui_buffer_has_nicklist (gui_current_window->buffer))
{
- if (window->win_nick_start > 0)
+ if (gui_current_window->win_nick_start > 0)
{
- window->win_nick_start = 0;
- gui_draw_buffer_nick (window->buffer, 1);
+ gui_current_window->win_nick_start = 0;
+ gui_draw_buffer_nick (gui_current_window->buffer, 1);
}
}
}
/*
- * gui_nick_move_end: go to the end of nicklist
+ * gui_input_nick_end: go to the end of nicklist
*/
void
-gui_nick_move_end (t_gui_window *window)
+gui_input_nick_end ()
{
int new_start;
if (!gui_ok)
return;
- if (gui_buffer_has_nicklist (window->buffer))
+ if (gui_buffer_has_nicklist (gui_current_window->buffer))
{
- new_start = CHANNEL(window->buffer)->nicks_count - window->win_nick_height;
+ new_start =
+ CHANNEL(gui_current_window->buffer)->nicks_count -
+ gui_current_window->win_nick_height;
if (new_start < 0)
new_start = 0;
else if (new_start >= 1)
new_start++;
- if (new_start != window->win_nick_start)
+ if (new_start != gui_current_window->win_nick_start)
{
- window->win_nick_start = new_start;
- gui_draw_buffer_nick (window->buffer, 1);
+ gui_current_window->win_nick_start = new_start;
+ gui_draw_buffer_nick (gui_current_window->buffer, 1);
}
}
}
/*
- * gui_nick_move_page_up: scroll one page up in nicklist
+ * gui_input_nick_page_up: scroll one page up in nicklist
*/
void
-gui_nick_move_page_up (t_gui_window *window)
+gui_input_nick_page_up ()
{
if (!gui_ok)
return;
- if (gui_buffer_has_nicklist (window->buffer))
+ if (gui_buffer_has_nicklist (gui_current_window->buffer))
{
- if (window->win_nick_start > 0)
+ if (gui_current_window->win_nick_start > 0)
{
- window->win_nick_start -= (window->win_nick_height - 1);
- if (window->win_nick_start <= 1)
- window->win_nick_start = 0;
- gui_draw_buffer_nick (window->buffer, 1);
+ gui_current_window->win_nick_start -=
+ (gui_current_window->win_nick_height - 1);
+ if (gui_current_window->win_nick_start <= 1)
+ gui_current_window->win_nick_start = 0;
+ gui_draw_buffer_nick (gui_current_window->buffer, 1);
}
}
}
/*
- * gui_nick_move_page_down: scroll one page down in nicklist
+ * gui_input_nick_page_down: scroll one page down in nicklist
*/
void
-gui_nick_move_page_down (t_gui_window *window)
+gui_input_nick_page_down ()
{
if (!gui_ok)
return;
- if (gui_buffer_has_nicklist (window->buffer))
+ if (gui_buffer_has_nicklist (gui_current_window->buffer))
{
- if ((CHANNEL(window->buffer)->nicks_count > window->win_nick_height)
- && (window->win_nick_start + window->win_nick_height - 1 < CHANNEL(window->buffer)->nicks_count))
+ if ((CHANNEL(gui_current_window->buffer)->nicks_count >
+ gui_current_window->win_nick_height)
+ && (gui_current_window->win_nick_start +
+ gui_current_window->win_nick_height - 1
+ < CHANNEL(gui_current_window->buffer)->nicks_count))
{
- if (window->win_nick_start == 0)
- window->win_nick_start += (window->win_nick_height - 1);
+ if (gui_current_window->win_nick_start == 0)
+ gui_current_window->win_nick_start +=
+ (gui_current_window->win_nick_height - 1);
else
- window->win_nick_start += (window->win_nick_height - 2);
- gui_draw_buffer_nick (window->buffer, 1);
+ gui_current_window->win_nick_start +=
+ (gui_current_window->win_nick_height - 2);
+ gui_draw_buffer_nick (gui_current_window->buffer, 1);
}
}
}
@@ -2306,6 +2286,8 @@ gui_init_colors ()
cfg_col_status_more, cfg_col_status_bg);
init_pair (COLOR_WIN_INFOBAR,
cfg_col_infobar, cfg_col_infobar_bg);
+ init_pair (COLOR_WIN_INFOBAR_DELIMITERS,
+ cfg_col_infobar_delimiters, cfg_col_infobar_bg);
init_pair (COLOR_WIN_INFOBAR_HIGHLIGHT,
cfg_col_infobar_highlight, cfg_col_infobar_bg);
init_pair (COLOR_WIN_INPUT,
@@ -2378,6 +2360,7 @@ gui_init_colors ()
color_attr[COLOR_WIN_STATUS_DATA_OTHER - 1] = (cfg_col_status_data_other >= 0) ? cfg_col_status_data_other & A_BOLD : 0;
color_attr[COLOR_WIN_STATUS_MORE - 1] = (cfg_col_status_more >= 0) ? cfg_col_status_more & A_BOLD : 0;
color_attr[COLOR_WIN_INFOBAR - 1] = (cfg_col_infobar >= 0) ? cfg_col_infobar & A_BOLD : 0;
+ color_attr[COLOR_WIN_INFOBAR_DELIMITERS - 1] = (cfg_col_infobar_delimiters >= 0) ? cfg_col_infobar_delimiters & A_BOLD : 0;
color_attr[COLOR_WIN_INFOBAR_HIGHLIGHT - 1] = (cfg_col_infobar_highlight >= 0) ? cfg_col_infobar_highlight & A_BOLD : 0;
color_attr[COLOR_WIN_INPUT - 1] = (cfg_col_input >= 0) ? cfg_col_input & A_BOLD : 0;
color_attr[COLOR_WIN_INPUT_CHANNEL - 1] = (cfg_col_input_channel >= 0) ? cfg_col_input_channel & A_BOLD : 0;
@@ -2427,15 +2410,16 @@ gui_init ()
initscr ();
curs_set (1);
- keypad (stdscr, TRUE);
noecho ();
nodelay (stdscr, TRUE);
gui_init_colors ();
-
+
gui_infobar = NULL;
gui_ok = ((COLS > 5) && (LINES > 5));
+
+ refresh ();
/* create new window/buffer */
if (gui_window_new (0, 0, COLS, LINES))
diff --git a/weechat/src/gui/curses/gui-input.c b/weechat/src/gui/curses/gui-input.c
index 89793d4ee..85eda8858 100644
--- a/weechat/src/gui/curses/gui-input.c
+++ b/weechat/src/gui/curses/gui-input.c
@@ -41,649 +41,151 @@
#include "../../common/fifo.h"
#include "../../irc/irc.h"
-#define KEY_ESCAPE 27
/*
- * gui_read_keyb: read keyboard line
+ * gui_input_default_key_bindings: create default key bindings
*/
void
-gui_read_keyb ()
+gui_input_default_key_bindings ()
{
- int key, i;
- t_gui_buffer *ptr_buffer;
- t_irc_server *ptr_server;
- t_irc_dcc *ptr_dcc, *ptr_dcc_next;
- char new_char[3], *decoded_string;
- t_irc_dcc *dcc_selected;
+ int i;
+ char key_str[32], command[32];
+
+ /* keys binded with internal functions */
+ gui_key_bind ( /* RC */ "ctrl-M", "return");
+ gui_key_bind ( /* RC */ "ctrl-J", "return");
+ gui_key_bind ( /* tab */ "ctrl-I", "tab");
+ gui_key_bind ( /* basckp */ "ctrl-H", "backspace");
+ gui_key_bind ( /* basckp */ "ctrl-?", "backspace");
+ gui_key_bind ( /* del */ "meta2-3~", "delete");
+ gui_key_bind ( /* ^K */ "ctrl-K", "delete_end_line");
+ gui_key_bind ( /* ^U */ "ctrl-U", "delete_beginning_line");
+ gui_key_bind ( /* ^W */ "ctrl-W", "delete_previous_word");
+ gui_key_bind ( /* home */ "meta2-1~", "home");
+ gui_key_bind ( /* home */ "meta2-H", "home");
+ gui_key_bind ( /* home */ "meta2-7~", "home");
+ gui_key_bind ( /* ^A */ "ctrl-A", "home");
+ gui_key_bind ( /* end */ "meta2-4~", "end");
+ gui_key_bind ( /* end */ "meta2-F", "end");
+ gui_key_bind ( /* end */ "meta2-8~", "end");
+ gui_key_bind ( /* ^E */ "ctrl-E", "end");
+ gui_key_bind ( /* left */ "meta2-D", "left");
+ gui_key_bind ( /* right */ "meta2-C", "right");
+ gui_key_bind ( /* up */ "meta2-A", "up");
+ gui_key_bind ( /* down */ "meta2-B", "down");
+ gui_key_bind ( /* pgup */ "meta2-5~", "page_up");
+ gui_key_bind ( /* pgdn */ "meta2-6~", "page_down");
+ gui_key_bind ( /* F10 */ "meta2-21~", "infobar_clear");
+ gui_key_bind ( /* F11 */ "meta2-23~", "nick_page_up");
+ gui_key_bind ( /* F12 */ "meta2-24~", "nick_page_down");
+ gui_key_bind ( /* m-F11 */ "meta-meta2-1~", "nick_beginning");
+ gui_key_bind ( /* m-F12 */ "meta-meta2-4~", "nick_end");
+ gui_key_bind ( /* ^L */ "ctrl-L", "refresh");
+ gui_key_bind ( /* m-a */ "meta-a", "jump_smart");
+ gui_key_bind ( /* m-b */ "meta-b", "previous_word");
+ gui_key_bind ( /* ^left */ "meta-Od", "previous_word");
+ gui_key_bind ( /* m-d */ "meta-d", "delete_next_word");
+ gui_key_bind ( /* m-f */ "meta-f", "next_word");
+ gui_key_bind ( /* ^right */ "meta-Oc", "next_word");
+ gui_key_bind ( /* m-h */ "meta-h", "hotlist_clear");
+ gui_key_bind ( /* m-j,m-d */ "meta-jmeta-d", "jump_dcc");
+ gui_key_bind ( /* m-r */ "meta-r", "delete_line");
+ gui_key_bind ( /* m-s */ "meta-s", "jump_server");
+ gui_key_bind ( /* m-x */ "meta-x", "jump_next_server");
+
+ /* keys binded with commands */
+ gui_key_bind ( /* m-left */ "meta-meta2-D", "/buffer -1");
+ gui_key_bind ( /* F5 */ "meta2-15~", "/buffer -1");
+ gui_key_bind ( /* m-right */ "meta-meta2-C", "/buffer +1");
+ gui_key_bind ( /* F6 */ "meta2-17~", "/buffer +1");
+ gui_key_bind ( /* F7 */ "meta2-18~", "/window -1");
+ gui_key_bind ( /* F8 */ "meta2-19~", "/window +1");
+ gui_key_bind ( /* m-0 */ "meta-0", "/buffer 10");
+ gui_key_bind ( /* m-1 */ "meta-1", "/buffer 1");
+ gui_key_bind ( /* m-2 */ "meta-2", "/buffer 2");
+ gui_key_bind ( /* m-3 */ "meta-3", "/buffer 3");
+ gui_key_bind ( /* m-4 */ "meta-4", "/buffer 4");
+ gui_key_bind ( /* m-5 */ "meta-5", "/buffer 5");
+ gui_key_bind ( /* m-6 */ "meta-6", "/buffer 6");
+ gui_key_bind ( /* m-7 */ "meta-7", "/buffer 7");
+ gui_key_bind ( /* m-8 */ "meta-8", "/buffer 8");
+ gui_key_bind ( /* m-9 */ "meta-9", "/buffer 9");
+
+ /* bind meta-j + {01..99} to switch to buffers # > 10 */
+ for (i = 1; i < 100; i++)
+ {
+ sprintf (key_str, "meta-j%02d", i);
+ sprintf (command, "/buffer %d", i);
+ gui_key_bind (key_str, command);
+ }
+}
+
+/*
+ * gui_input_read: read keyboard chars
+ */
- key = getch ();
- if (key != ERR)
+void
+gui_input_read ()
+{
+ int key, i;
+ char key_str[32];
+
+ i = 0;
+ /* do not loop too much here (for example when big paste was made),
+ to read also socket & co */
+ while (i < 8)
{
- switch (key)
+ key = getch ();
+
+ if (key == ERR)
+ break;
+
+ if (key == KEY_RESIZE)
{
- /* resize event */
- case KEY_RESIZE:
- gui_curses_resize_handler ();
- break;
- /* inactive function keys */
- case KEY_F(1):
- case KEY_F(2):
- case KEY_F(3):
- case KEY_F(4):
- case KEY_F(9):
- break;
- /* previous buffer in window */
- case KEY_F(5):
- gui_switch_to_previous_buffer (gui_current_window);
- break;
- /* next buffer in window */
- case KEY_F(6):
- gui_switch_to_next_buffer (gui_current_window);
- break;
- /* previous window */
- case KEY_F(7):
- gui_switch_to_previous_window (gui_current_window);
- break;
- /* next window */
- case KEY_F(8):
- gui_switch_to_next_window (gui_current_window);
- break;
- /* remove last infobar message */
- case KEY_F(10):
- gui_infobar_remove ();
- gui_draw_buffer_infobar (gui_current_window->buffer, 1);
- break;
- case KEY_F(11):
- gui_nick_move_page_up (gui_current_window);
- break;
- case KEY_F(12):
- gui_nick_move_page_down (gui_current_window);
- break;
- /* cursor up */
- case KEY_UP:
- if (gui_current_window->buffer->dcc)
- {
- if (dcc_list)
- {
- if (gui_current_window->dcc_selected
- && ((t_irc_dcc *)(gui_current_window->dcc_selected))->prev_dcc)
- {
- if (gui_current_window->dcc_selected ==
- gui_current_window->dcc_first)
- gui_current_window->dcc_first =
- ((t_irc_dcc *)(gui_current_window->dcc_first))->prev_dcc;
- gui_current_window->dcc_selected =
- ((t_irc_dcc *)(gui_current_window->dcc_selected))->prev_dcc;
- gui_draw_buffer_chat (gui_current_window->buffer, 1);
- gui_draw_buffer_input (gui_current_window->buffer, 1);
- }
- }
- }
- else
- {
- if (gui_current_window->buffer->ptr_history)
- {
- gui_current_window->buffer->ptr_history =
- gui_current_window->buffer->ptr_history->next_history;
- if (!gui_current_window->buffer->ptr_history)
- gui_current_window->buffer->ptr_history =
- gui_current_window->buffer->history;
- }
- else
- gui_current_window->buffer->ptr_history =
- gui_current_window->buffer->history;
- if (gui_current_window->buffer->ptr_history)
- {
- gui_current_window->buffer->input_buffer_size =
- strlen (gui_current_window->buffer->ptr_history->text);
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->input_buffer_pos =
- gui_current_window->buffer->input_buffer_size;
- strcpy (gui_current_window->buffer->input_buffer,
- gui_current_window->buffer->ptr_history->text);
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* cursor down */
- case KEY_DOWN:
- if (gui_current_window->buffer->dcc)
- {
- if (dcc_list)
- {
- if (!gui_current_window->dcc_selected
- || ((t_irc_dcc *)(gui_current_window->dcc_selected))->next_dcc)
- {
- if (gui_current_window->dcc_last_displayed
- && (gui_current_window->dcc_selected ==
- gui_current_window->dcc_last_displayed))
- {
- if (gui_current_window->dcc_first)
- gui_current_window->dcc_first =
- ((t_irc_dcc *)(gui_current_window->dcc_first))->next_dcc;
- else
- gui_current_window->dcc_first =
- dcc_list->next_dcc;
- }
- if (gui_current_window->dcc_selected)
- gui_current_window->dcc_selected =
- ((t_irc_dcc *)(gui_current_window->dcc_selected))->next_dcc;
- else
- gui_current_window->dcc_selected =
- dcc_list->next_dcc;
- gui_draw_buffer_chat (gui_current_window->buffer, 1);
- gui_draw_buffer_input (gui_current_window->buffer, 1);
- }
- }
- }
- else
- {
- if (gui_current_window->buffer->ptr_history)
- {
- gui_current_window->buffer->ptr_history =
- gui_current_window->buffer->ptr_history->prev_history;
- if (gui_current_window->buffer->ptr_history)
- gui_current_window->buffer->input_buffer_size =
- strlen (gui_current_window->buffer->ptr_history->text);
- else
- gui_current_window->buffer->input_buffer_size = 0;
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->input_buffer_pos =
- gui_current_window->buffer->input_buffer_size;
- if (gui_current_window->buffer->ptr_history)
- strcpy (gui_current_window->buffer->input_buffer,
- gui_current_window->buffer->ptr_history->text);
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* cursor left */
- case KEY_LEFT:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos > 0)
- {
- gui_current_window->buffer->input_buffer_pos--;
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* cursor right */
- case KEY_RIGHT:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos <
- gui_current_window->buffer->input_buffer_size)
- {
- gui_current_window->buffer->input_buffer_pos++;
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* home key or Control + A */
- case KEY_HOME:
- case 0x01:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos > 0)
- {
- gui_current_window->buffer->input_buffer_pos = 0;
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* end key or Control + E */
- case KEY_END:
- case 0x05:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos <
- gui_current_window->buffer->input_buffer_size)
- {
- gui_current_window->buffer->input_buffer_pos =
- gui_current_window->buffer->input_buffer_size;
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* page up */
- case KEY_PPAGE:
- if (!gui_current_window->buffer->dcc)
- gui_move_page_up (gui_current_window);
- break;
- /* page down */
- case KEY_NPAGE:
- if (!gui_current_window->buffer->dcc)
- gui_move_page_down (gui_current_window);
- break;
- /* erase before cursor and move cursor to the left */
- case 127:
- case KEY_BACKSPACE:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos > 0)
- {
- i = gui_current_window->buffer->input_buffer_pos-1;
- while (gui_current_window->buffer->input_buffer[i])
- {
- gui_current_window->buffer->input_buffer[i] =
- gui_current_window->buffer->input_buffer[i+1];
- i++;
- }
- gui_current_window->buffer->input_buffer_size--;
- gui_current_window->buffer->input_buffer_pos--;
- gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->completion.position = -1;
- }
- }
- break;
- /* Control + Backspace or Control + W */
- case 0x08:
- case 0x17:
- if (!gui_current_window->buffer->dcc)
- gui_delete_previous_word (gui_current_window->buffer);
- break;
- /* Control + L */
- case 0x0C:
- gui_curses_resize_handler ();
- break;
- /* erase char under cursor */
- case KEY_DC:
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_pos <
- gui_current_window->buffer->input_buffer_size)
- {
- i = gui_current_window->buffer->input_buffer_pos;
- while (gui_current_window->buffer->input_buffer[i])
- {
- gui_current_window->buffer->input_buffer[i] =
- gui_current_window->buffer->input_buffer[i+1];
- i++;
- }
- gui_current_window->buffer->input_buffer_size--;
- gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->completion.position = -1;
- }
- }
- break;
- /* Tab : completion */
- case '\t':
- if (!gui_current_window->buffer->dcc)
- {
- completion_search (&(gui_current_window->buffer->completion),
- CHANNEL(gui_current_window->buffer),
- gui_current_window->buffer->input_buffer,
- gui_current_window->buffer->input_buffer_size,
- gui_current_window->buffer->input_buffer_pos);
-
- if (gui_current_window->buffer->completion.word_found)
- {
- /* replace word with new completed word into input buffer */
- if (gui_current_window->buffer->completion.diff_size > 0)
- {
- gui_current_window->buffer->input_buffer_size +=
- gui_current_window->buffer->completion.diff_size;
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
- for (i = gui_current_window->buffer->input_buffer_size - 1;
- i >= gui_current_window->buffer->completion.position_replace +
- (int)strlen (gui_current_window->buffer->completion.word_found); i--)
- gui_current_window->buffer->input_buffer[i] =
- gui_current_window->buffer->input_buffer[i -
- gui_current_window->buffer->completion.diff_size];
- }
- else
- {
- for (i = gui_current_window->buffer->completion.position_replace +
- strlen (gui_current_window->buffer->completion.word_found);
- i < gui_current_window->buffer->input_buffer_size; i++)
- gui_current_window->buffer->input_buffer[i] =
- gui_current_window->buffer->input_buffer[i -
- gui_current_window->buffer->completion.diff_size];
- gui_current_window->buffer->input_buffer_size +=
- gui_current_window->buffer->completion.diff_size;
- gui_optimize_input_buffer_size (gui_current_window->buffer);
- gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
- }
-
- strncpy (gui_current_window->buffer->input_buffer + gui_current_window->buffer->completion.position_replace,
- gui_current_window->buffer->completion.word_found,
- strlen (gui_current_window->buffer->completion.word_found));
- gui_current_window->buffer->input_buffer_pos =
- gui_current_window->buffer->completion.position_replace +
- strlen (gui_current_window->buffer->completion.word_found);
-
- /* position is < 0 this means only one word was found to complete,
- so reinit to stop completion */
- if (gui_current_window->buffer->completion.position >= 0)
- gui_current_window->buffer->completion.position =
- gui_current_window->buffer->input_buffer_pos;
-
- /* add space or completor to the end of completion, if needed */
- if ((gui_current_window->buffer->completion.context == COMPLETION_COMMAND)
- || (gui_current_window->buffer->completion.context == COMPLETION_COMMAND_ARG))
- {
- if (gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] != ' ')
- gui_buffer_insert_string (gui_current_window->buffer,
- " ",
- gui_current_window->buffer->input_buffer_pos);
- if (gui_current_window->buffer->completion.position >= 0)
- gui_current_window->buffer->completion.position++;
- gui_current_window->buffer->input_buffer_pos++;
- }
- else
- {
- /* add nick completor if position 0 and completing nick */
- if ((gui_current_window->buffer->completion.base_word_pos == 0)
- && (gui_current_window->buffer->completion.context == COMPLETION_NICK))
- {
- if (strncmp (gui_current_window->buffer->input_buffer + gui_current_window->buffer->input_buffer_pos,
- cfg_look_completor, strlen (cfg_look_completor)) != 0)
- gui_buffer_insert_string (gui_current_window->buffer,
- cfg_look_completor,
- gui_current_window->buffer->input_buffer_pos);
- if (gui_current_window->buffer->completion.position >= 0)
- gui_current_window->buffer->completion.position += strlen (cfg_look_completor);
- gui_current_window->buffer->input_buffer_pos += strlen (cfg_look_completor);
- if (gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] != ' ')
- gui_buffer_insert_string (gui_current_window->buffer,
- " ",
- gui_current_window->buffer->input_buffer_pos);
- if (gui_current_window->buffer->completion.position >= 0)
- gui_current_window->buffer->completion.position++;
- gui_current_window->buffer->input_buffer_pos++;
- }
- }
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- }
- }
- break;
- /* escape code (for control-key) */
- case KEY_ESCAPE:
- if ((key = getch()) != ERR)
- {
- /*gui_printf (gui_current_window->buffer,
- "[Debug] key pressed = %d, hex = %02X, octal = %o\n", key, key, key);*/
- switch (key)
- {
- /* Alt + left arrow */
- case KEY_LEFT:
- gui_switch_to_previous_buffer (gui_current_window);
- break;
- /* Alt + right arrow */
- case KEY_RIGHT:
- gui_switch_to_next_buffer (gui_current_window);
- break;
- /* Alt + home */
- case KEY_HOME:
- gui_nick_move_beginning (gui_current_window);
- break;
- /* Alt + end */
- case KEY_END:
- gui_nick_move_end (gui_current_window);
- break;
- /* Alt + page up */
- case KEY_PPAGE:
- gui_nick_move_page_up (gui_current_window);
- break;
- /* Alt + page down */
- case KEY_NPAGE:
- gui_nick_move_page_down (gui_current_window);
- break;
- case 79:
- /* TODO: replace 79 by constant name! */
- if ((key = getch()) != ERR)
- {
- switch (key)
- {
- /* Control + Right */
- case 99:
- if (!gui_current_window->buffer->dcc)
- gui_move_next_word (gui_current_window->buffer);
- break;
- /* Control + Left */
- case 100:
- if (!gui_current_window->buffer->dcc)
- gui_move_previous_word (gui_current_window->buffer);
- break;
- }
- }
- break;
- /* Alt-number: jump to window by number */
- case 48: /* Alt-0 */
- case 49: /* Alt-1 */
- case 50: /* Alt-2 */
- case 51: /* Alt-3 */
- case 52: /* Alt-4 */
- case 53: /* Alt-5 */
- case 54: /* Alt-6 */
- case 55: /* Alt-7 */
- case 56: /* Alt-8 */
- case 57: /* Alt-9 */
- gui_switch_to_buffer_by_number (gui_current_window, (key == 48) ? 10 : key - 48);
- break;
- /* Alt-A: jump to buffer with activity */
- case 'a':
- case 'A':
- if (hotlist)
- {
- if (!hotlist_initial_buffer)
- hotlist_initial_buffer = gui_current_window->buffer;
- gui_switch_to_buffer (gui_current_window, hotlist->buffer);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- else
- {
- if (hotlist_initial_buffer)
- {
- gui_switch_to_buffer (gui_current_window, hotlist_initial_buffer);
- gui_redraw_buffer (gui_current_window->buffer);
- hotlist_initial_buffer = NULL;
- }
- }
- break;
- /* Alt-D: jump to DCC buffer */
- case 'd':
- case 'D':
- if (gui_current_window->buffer->dcc)
- {
- if (buffer_before_dcc)
- {
- gui_switch_to_buffer (gui_current_window,
- buffer_before_dcc);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- }
- else
- {
- buffer_before_dcc = gui_current_window->buffer;
- gui_switch_to_dcc_buffer ();
- }
- break;
- /* Alt-R: clear hotlist */
- case 'r':
- case 'R':
- if (hotlist)
- {
- hotlist_free_all ();
- gui_redraw_buffer (gui_current_window->buffer);
- }
- hotlist_initial_buffer = gui_current_window->buffer;
- break;
- /* Alt-S: jump to server buffer */
- case 's':
- case 'S':
- if (!gui_current_window->buffer->dcc)
- {
- if (SERVER(gui_current_window->buffer)->buffer !=
- gui_current_window->buffer)
- {
- gui_switch_to_buffer (gui_current_window,
- SERVER(gui_current_window->buffer)->buffer);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- }
- break;
- /* Alt-X: jump to first channel/private of next server */
- case 'x':
- case 'X':
- if (!gui_current_window->buffer->dcc)
- {
- ptr_server = SERVER(gui_current_window->buffer)->next_server;
- if (!ptr_server)
- ptr_server = irc_servers;
- while (ptr_server != SERVER(gui_current_window->buffer))
- {
- if (ptr_server->buffer)
- break;
- ptr_server = (ptr_server->next_server) ?
- ptr_server->next_server : irc_servers;
- }
- if (ptr_server != SERVER(gui_current_window->buffer))
- {
- ptr_buffer = (ptr_server->channels) ?
- ptr_server->channels->buffer : ptr_server->buffer;
- gui_switch_to_buffer (gui_current_window, ptr_buffer);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- }
- break;
- }
- }
- break;
- /* send command/message */
- case '\n':
- if (!gui_current_window->buffer->dcc)
- {
- if (gui_current_window->buffer->input_buffer_size > 0)
- {
- gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
- history_add (gui_current_window->buffer, gui_current_window->buffer->input_buffer);
- gui_current_window->buffer->input_buffer_size = 0;
- gui_current_window->buffer->input_buffer_pos = 0;
- gui_current_window->buffer->input_buffer_1st_display = 0;
- gui_current_window->buffer->completion.position = -1;
- gui_current_window->buffer->ptr_history = NULL;
- ptr_buffer = gui_current_window->buffer;
- user_command (SERVER(gui_current_window->buffer),
- gui_current_window->buffer,
- gui_current_window->buffer->input_buffer);
- if (ptr_buffer == gui_current_window->buffer)
- {
- ptr_buffer->input_buffer[0] = '\0';
- gui_draw_buffer_input (ptr_buffer, 0);
- }
- }
- }
- break;
- /* other key => add to input buffer */
- default:
- if (gui_current_window->buffer->dcc)
- {
- dcc_selected = (gui_current_window->dcc_selected) ?
- (t_irc_dcc *) gui_current_window->dcc_selected : dcc_list;
- switch (key)
- {
- /* accept DCC */
- case 'a':
- case 'A':
- if (dcc_selected
- && (DCC_IS_RECV(dcc_selected->status))
- && (dcc_selected->status == DCC_WAITING))
- {
- dcc_accept (dcc_selected);
- }
- break;
- /* cancel DCC */
- case 'c':
- case 'C':
- if (dcc_selected
- && (!DCC_ENDED(dcc_selected->status)))
- {
- dcc_close (dcc_selected, DCC_ABORTED);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- break;
- /* purge old DCC */
- case 'p':
- case 'P':
- gui_current_window->dcc_selected = NULL;
- ptr_dcc = dcc_list;
- while (ptr_dcc)
- {
- ptr_dcc_next = ptr_dcc->next_dcc;
- if (DCC_ENDED(ptr_dcc->status))
- dcc_free (ptr_dcc);
- ptr_dcc = ptr_dcc_next;
- }
- gui_redraw_buffer (gui_current_window->buffer);
- break;
- /* close DCC window */
- case 'q':
- case 'Q':
- if (buffer_before_dcc)
- {
- gui_buffer_free (gui_current_window->buffer, 1);
- gui_switch_to_buffer (gui_current_window,
- buffer_before_dcc);
- }
- else
- gui_buffer_free (gui_current_window->buffer, 1);
- gui_redraw_buffer (gui_current_window->buffer);
- break;
- /* remove from DCC list */
- case 'r':
- case 'R':
- if (dcc_selected
- && (DCC_ENDED(dcc_selected->status)))
- {
- if (dcc_selected->next_dcc)
- gui_current_window->dcc_selected = dcc_selected->next_dcc;
- else
- gui_current_window->dcc_selected = NULL;
- dcc_free (dcc_selected);
- gui_redraw_buffer (gui_current_window->buffer);
- }
- break;
- }
- }
- else
- {
- /*gui_printf (gui_current_window->buffer,
- "[Debug] key pressed = %d, hex = %02X, octal = %o\n", key, key, key);*/
- new_char[0] = key;
- new_char[1] = '\0';
- decoded_string = NULL;
-
- /* UTF-8 input */
- if (key == 0xC3)
- {
- if ((key = getch()) != ERR)
- {
- new_char[1] = key;
- new_char[2] = '\0';
- decoded_string = weechat_convert_encoding (local_charset, cfg_look_charset_internal, new_char);
- }
- }
-
- gui_buffer_insert_string (gui_current_window->buffer,
- (decoded_string) ? decoded_string : new_char,
- gui_current_window->buffer->input_buffer_pos);
- gui_current_window->buffer->input_buffer_pos++;
- gui_draw_buffer_input (gui_current_window->buffer, 0);
- gui_current_window->buffer->completion.position = -1;
-
- if (decoded_string)
- free (decoded_string);
- }
- break;
+ gui_curses_resize_handler ();
+ continue;
+ }
+
+ if (key < 32)
+ {
+ key_str[0] = '^';
+ key_str[1] = (char) key + '@';
+ key_str[2] = '\0';
+ }
+ else if (key == 127)
+ {
+ key_str[0] = '^';
+ key_str[1] = '?';
+ key_str[2] = '\0';
+ }
+ else
+ {
+ if (key > 0xff)
+ {
+ key_str[0] = (char) (key >> 8);
+ key_str[1] = (char) (key & 0xff);
+ key_str[2] = '\0';
+ }
+ else
+ {
+ key_str[0] = (char) key;
+ key_str[1] = '\0';
+ }
}
+
+ if (strcmp (key_str, "^") == 0)
+ {
+ key_str[1] = '^';
+ key_str[2] = '\0';
+ }
+
+ /*gui_printf (gui_current_window->buffer, "gui_input_read: key = %s (%d)\n", key_str, key);*/
+
+ if (gui_key_pressed (key_str) != 0)
+ gui_input_insert_char (key);
+
+ i++;
}
}
@@ -723,6 +225,14 @@ gui_main_loop ()
{
old_sec = local_time->tm_sec;
+ if (cfg_look_infobar_seconds)
+ {
+ gui_draw_buffer_infobar_time (gui_current_window->buffer);
+ wmove (gui_current_window->win_input,
+ 0, gui_current_window->win_input_x);
+ wrefresh (gui_current_window->win_input);
+ }
+
/* infobar count down */
if (gui_infobar && gui_infobar->remaining_time > 0)
{
@@ -807,7 +317,7 @@ gui_main_loop ()
{
if (FD_ISSET (STDIN_FILENO, &read_fd))
{
- gui_read_keyb ();
+ gui_input_read ();
}
if ((weechat_fifo != -1) && (FD_ISSET (weechat_fifo, &read_fd)))
{
diff --git a/weechat/src/gui/gui-common.c b/weechat/src/gui/gui-common.c
index fb1446c86..f3fb838fe 100644
--- a/weechat/src/gui/gui-common.c
+++ b/weechat/src/gui/gui-common.c
@@ -34,6 +34,7 @@
#include "../common/weechat.h"
#include "gui.h"
+#include "../common/command.h"
#include "../common/weeconfig.h"
#include "../common/hotlist.h"
#include "../common/log.h"
@@ -89,6 +90,8 @@ gui_window_new (int x, int y, int width, int height)
new_window->win_nick_height = 0;
new_window->win_nick_start = 0;
+ new_window->win_input_x = 0;
+
new_window->win_title = NULL;
new_window->win_chat = NULL;
new_window->win_nick = NULL;
@@ -552,12 +555,12 @@ gui_new_message (t_gui_buffer *buffer)
}
/*
- * gui_optimize_input_buffer_size: optimize input buffer size by adding
+ * gui_input_optimize_buffer_size: optimize input buffer size by adding
* or deleting data block (predefined size)
*/
void
-gui_optimize_input_buffer_size (t_gui_buffer *buffer)
+gui_input_optimize_buffer_size (t_gui_buffer *buffer)
{
int optimal_size;
@@ -571,29 +574,343 @@ gui_optimize_input_buffer_size (t_gui_buffer *buffer)
}
/*
- * gui_delete_previous_word: delete previous word
+ * gui_input_insert_string: insert a string into the input buffer
+ */
+
+void
+gui_input_insert_string (char *string, int pos)
+{
+ int i, start, end, length;
+
+ length = strlen (string);
+
+ /* increase buffer size */
+ gui_current_window->buffer->input_buffer_size += length;
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+
+ /* move end of string to the right */
+ start = pos + length;
+ end = gui_current_window->buffer->input_buffer_size - 1;
+ for (i = end; i >= start; i--)
+ gui_current_window->buffer->input_buffer[i] =
+ gui_current_window->buffer->input_buffer[i - length];
+
+ /* insert new string */
+ strncpy (gui_current_window->buffer->input_buffer + pos, string, length);
+}
+
+/*
+ * gui_input_insert_char: insert a char into input buffer
+ */
+
+void
+gui_input_insert_char (int key)
+{
+ char new_char[3];
+ t_irc_dcc *dcc_selected, *ptr_dcc, *ptr_dcc_next;
+
+ if (key < 32)
+ return;
+
+ if (gui_current_window->buffer->dcc)
+ {
+ dcc_selected = (gui_current_window->dcc_selected) ?
+ (t_irc_dcc *) gui_current_window->dcc_selected : dcc_list;
+ switch (key)
+ {
+ /* accept DCC */
+ case 'a':
+ case 'A':
+ if (dcc_selected
+ && (DCC_IS_RECV(dcc_selected->status))
+ && (dcc_selected->status == DCC_WAITING))
+ {
+ dcc_accept (dcc_selected);
+ }
+ break;
+ /* cancel DCC */
+ case 'c':
+ case 'C':
+ if (dcc_selected
+ && (!DCC_ENDED(dcc_selected->status)))
+ {
+ dcc_close (dcc_selected, DCC_ABORTED);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ break;
+ /* purge old DCC */
+ case 'p':
+ case 'P':
+ gui_current_window->dcc_selected = NULL;
+ ptr_dcc = dcc_list;
+ while (ptr_dcc)
+ {
+ ptr_dcc_next = ptr_dcc->next_dcc;
+ if (DCC_ENDED(ptr_dcc->status))
+ dcc_free (ptr_dcc);
+ ptr_dcc = ptr_dcc_next;
+ }
+ gui_redraw_buffer (gui_current_window->buffer);
+ break;
+ /* close DCC window */
+ case 'q':
+ case 'Q':
+ if (buffer_before_dcc)
+ {
+ gui_buffer_free (gui_current_window->buffer, 1);
+ gui_switch_to_buffer (gui_current_window,
+ buffer_before_dcc);
+ }
+ else
+ gui_buffer_free (gui_current_window->buffer, 1);
+ gui_redraw_buffer (gui_current_window->buffer);
+ break;
+ /* remove from DCC list */
+ case 'r':
+ case 'R':
+ if (dcc_selected
+ && (DCC_ENDED(dcc_selected->status)))
+ {
+ if (dcc_selected->next_dcc)
+ gui_current_window->dcc_selected = dcc_selected->next_dcc;
+ else
+ gui_current_window->dcc_selected = NULL;
+ dcc_free (dcc_selected);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ break;
+ }
+ }
+ else
+ {
+ /*gui_printf (gui_current_window->buffer,
+ "[Debug] key pressed = %d, hex = %02X, octal = %o\n", key, key, key);*/
+ new_char[0] = key;
+ new_char[1] = '\0';
+
+ gui_input_insert_string (new_char,
+ gui_current_window->buffer->input_buffer_pos);
+ gui_current_window->buffer->input_buffer_pos++;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_current_window->buffer->completion.position = -1;
+ }
+}
+
+/*
+ * gui_input_return: terminate line (return pressed)
+ */
+
+void
+gui_input_return ()
+{
+ t_gui_buffer *ptr_buffer;
+
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_size > 0)
+ {
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ history_add (gui_current_window->buffer, gui_current_window->buffer->input_buffer);
+ gui_current_window->buffer->input_buffer_size = 0;
+ gui_current_window->buffer->input_buffer_pos = 0;
+ gui_current_window->buffer->input_buffer_1st_display = 0;
+ gui_current_window->buffer->completion.position = -1;
+ gui_current_window->buffer->ptr_history = NULL;
+ ptr_buffer = gui_current_window->buffer;
+ user_command (SERVER(gui_current_window->buffer),
+ gui_current_window->buffer,
+ gui_current_window->buffer->input_buffer);
+ if (ptr_buffer == gui_current_window->buffer)
+ {
+ ptr_buffer->input_buffer[0] = '\0';
+ gui_draw_buffer_input (ptr_buffer, 0);
+ }
+ }
+ }
+}
+
+/*
+ * gui_input_tab: tab key => completion
+ */
+
+void
+gui_input_tab ()
+{
+ int i;
+
+ if (!gui_current_window->buffer->dcc)
+ {
+ completion_search (&(gui_current_window->buffer->completion),
+ CHANNEL(gui_current_window->buffer),
+ gui_current_window->buffer->input_buffer,
+ gui_current_window->buffer->input_buffer_size,
+ gui_current_window->buffer->input_buffer_pos);
+
+ if (gui_current_window->buffer->completion.word_found)
+ {
+ /* replace word with new completed word into input buffer */
+ if (gui_current_window->buffer->completion.diff_size > 0)
+ {
+ gui_current_window->buffer->input_buffer_size +=
+ gui_current_window->buffer->completion.diff_size;
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ for (i = gui_current_window->buffer->input_buffer_size - 1;
+ i >= gui_current_window->buffer->completion.position_replace +
+ (int)strlen (gui_current_window->buffer->completion.word_found); i--)
+ gui_current_window->buffer->input_buffer[i] =
+ gui_current_window->buffer->input_buffer[i -
+ gui_current_window->buffer->completion.diff_size];
+ }
+ else
+ {
+ for (i = gui_current_window->buffer->completion.position_replace +
+ strlen (gui_current_window->buffer->completion.word_found);
+ i < gui_current_window->buffer->input_buffer_size; i++)
+ gui_current_window->buffer->input_buffer[i] =
+ gui_current_window->buffer->input_buffer[i -
+ gui_current_window->buffer->completion.diff_size];
+ gui_current_window->buffer->input_buffer_size +=
+ gui_current_window->buffer->completion.diff_size;
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ }
+
+ strncpy (gui_current_window->buffer->input_buffer + gui_current_window->buffer->completion.position_replace,
+ gui_current_window->buffer->completion.word_found,
+ strlen (gui_current_window->buffer->completion.word_found));
+ gui_current_window->buffer->input_buffer_pos =
+ gui_current_window->buffer->completion.position_replace +
+ strlen (gui_current_window->buffer->completion.word_found);
+
+ /* position is < 0 this means only one word was found to complete,
+ so reinit to stop completion */
+ if (gui_current_window->buffer->completion.position >= 0)
+ gui_current_window->buffer->completion.position =
+ gui_current_window->buffer->input_buffer_pos;
+
+ /* add space or completor to the end of completion, if needed */
+ if ((gui_current_window->buffer->completion.context == COMPLETION_COMMAND)
+ || (gui_current_window->buffer->completion.context == COMPLETION_COMMAND_ARG))
+ {
+ if (gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] != ' ')
+ gui_input_insert_string (" ",
+ gui_current_window->buffer->input_buffer_pos);
+ if (gui_current_window->buffer->completion.position >= 0)
+ gui_current_window->buffer->completion.position++;
+ gui_current_window->buffer->input_buffer_pos++;
+ }
+ else
+ {
+ /* add nick completor if position 0 and completing nick */
+ if ((gui_current_window->buffer->completion.base_word_pos == 0)
+ && (gui_current_window->buffer->completion.context == COMPLETION_NICK))
+ {
+ if (strncmp (gui_current_window->buffer->input_buffer + gui_current_window->buffer->input_buffer_pos,
+ cfg_look_completor, strlen (cfg_look_completor)) != 0)
+ gui_input_insert_string (cfg_look_completor,
+ gui_current_window->buffer->input_buffer_pos);
+ if (gui_current_window->buffer->completion.position >= 0)
+ gui_current_window->buffer->completion.position += strlen (cfg_look_completor);
+ gui_current_window->buffer->input_buffer_pos += strlen (cfg_look_completor);
+ if (gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] != ' ')
+ gui_input_insert_string (" ",
+ gui_current_window->buffer->input_buffer_pos);
+ if (gui_current_window->buffer->completion.position >= 0)
+ gui_current_window->buffer->completion.position++;
+ gui_current_window->buffer->input_buffer_pos++;
+ }
+ }
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+ }
+}
+
+/*
+ * gui_input_backspace: backspace key
*/
void
-gui_delete_previous_word (t_gui_buffer *buffer)
+gui_input_backspace ()
+{
+ int i;
+
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos > 0)
+ {
+ i = gui_current_window->buffer->input_buffer_pos-1;
+ while (gui_current_window->buffer->input_buffer[i])
+ {
+ gui_current_window->buffer->input_buffer[i] =
+ gui_current_window->buffer->input_buffer[i+1];
+ i++;
+ }
+ gui_current_window->buffer->input_buffer_size--;
+ gui_current_window->buffer->input_buffer_pos--;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+ }
+ }
+}
+
+/*
+ * gui_input_delete: delete key
+ */
+
+void
+gui_input_delete ()
+{
+ int i;
+
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos <
+ gui_current_window->buffer->input_buffer_size)
+ {
+ i = gui_current_window->buffer->input_buffer_pos;
+ while (gui_current_window->buffer->input_buffer[i])
+ {
+ gui_current_window->buffer->input_buffer[i] =
+ gui_current_window->buffer->input_buffer[i+1];
+ i++;
+ }
+ gui_current_window->buffer->input_buffer_size--;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+ }
+ }
+}
+
+/*
+ * gui_input_delete_previous_word: delete previous word
+ */
+
+void
+gui_input_delete_previous_word ()
{
int i, j, num_char_deleted, num_char_end;
- if (buffer->input_buffer_pos > 0)
+ if (gui_current_window->buffer->input_buffer_pos > 0)
{
- i = buffer->input_buffer_pos - 1;
+ i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
- (buffer->input_buffer[i] == ' '))
+ (gui_current_window->buffer->input_buffer[i] == ' '))
i--;
if (i >= 0)
{
while ((i >= 0) &&
- (buffer->input_buffer[i] != ' '))
+ (gui_current_window->buffer->input_buffer[i] != ' '))
i--;
if (i >= 0)
{
while ((i >= 0) &&
- (buffer->input_buffer[i] == ' '))
+ (gui_current_window->buffer->input_buffer[i] == ' '))
i--;
}
}
@@ -601,110 +918,554 @@ gui_delete_previous_word (t_gui_buffer *buffer)
if (i >= 0)
i++;
i++;
- num_char_deleted = buffer->input_buffer_pos - i;
- num_char_end = buffer->input_buffer_size -
- buffer->input_buffer_pos;
+ num_char_deleted = gui_current_window->buffer->input_buffer_pos - i;
+ num_char_end = gui_current_window->buffer->input_buffer_size -
+ gui_current_window->buffer->input_buffer_pos;
for (j = 0; j < num_char_end; j++)
- buffer->input_buffer[i + j] =
- buffer->input_buffer[buffer->input_buffer_pos + j];
+ gui_current_window->buffer->input_buffer[i + j] =
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos + j];
- buffer->input_buffer_size -= num_char_deleted;
- buffer->input_buffer[buffer->input_buffer_size] = '\0';
- buffer->input_buffer_pos = i;
- gui_draw_buffer_input (buffer, 0);
- gui_optimize_input_buffer_size (buffer);
- buffer->completion.position = -1;
+ gui_current_window->buffer->input_buffer_size -= num_char_deleted;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_current_window->buffer->input_buffer_pos = i;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+ }
+}
+
+/*
+ * gui_input_delete_next_word: delete next word
+ */
+
+void
+gui_input_delete_next_word ()
+{
+ int i, j, num_char_deleted;
+
+ i = gui_current_window->buffer->input_buffer_pos;
+ while (i < gui_current_window->buffer->input_buffer_size)
+ {
+ if ((gui_current_window->buffer->input_buffer[i] == ' ')
+ && i != gui_current_window->buffer->input_buffer_pos)
+ break;
+ i++;
+ }
+ num_char_deleted = i - gui_current_window->buffer->input_buffer_pos;
+
+ for (j = i; j < gui_current_window->buffer->input_buffer_size; j++)
+ gui_current_window->buffer->input_buffer[j - num_char_deleted] =
+ gui_current_window->buffer->input_buffer[j];
+
+ gui_current_window->buffer->input_buffer_size -= num_char_deleted;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+}
+
+/*
+ * gui_input_delete_begin_of_line: delete all from cursor pos to beginning of line
+ */
+
+void
+gui_input_delete_begin_of_line ()
+{
+ int i;
+
+ for (i = gui_current_window->buffer->input_buffer_pos;
+ i < gui_current_window->buffer->input_buffer_size; i++)
+ gui_current_window->buffer->input_buffer[i - gui_current_window->buffer->input_buffer_pos] =
+ gui_current_window->buffer->input_buffer[i];
+
+ gui_current_window->buffer->input_buffer_size -=
+ gui_current_window->buffer->input_buffer_pos;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_current_window->buffer->input_buffer_pos = 0;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+}
+
+/*
+ * gui_input_delete_end_of_line: delete all from cursor pos to end of line
+ */
+
+void
+gui_input_delete_end_of_line ()
+{
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' ';
+ gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ;
+ gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+}
+
+/*
+ * gui_input_delete_line: delete entire line
+ */
+
+void
+gui_input_delete_line ()
+{
+ gui_current_window->buffer->input_buffer[0] = '\0';
+ gui_current_window->buffer->input_buffer_size = 0;
+ gui_current_window->buffer->input_buffer_pos = 0;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->completion.position = -1;
+}
+
+/*
+ * gui_input_home: home key
+ */
+
+void
+gui_input_home ()
+{
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos > 0)
+ {
+ gui_current_window->buffer->input_buffer_pos = 0;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+ }
+}
+
+/*
+ * gui_input_end: end key
+ */
+
+void
+gui_input_end ()
+{
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos <
+ gui_current_window->buffer->input_buffer_size)
+ {
+ gui_current_window->buffer->input_buffer_pos =
+ gui_current_window->buffer->input_buffer_size;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+ }
+}
+
+/*
+ * gui_input_left: move to previous char
+ */
+
+void
+gui_input_left ()
+{
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos > 0)
+ {
+ gui_current_window->buffer->input_buffer_pos--;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
}
}
/*
- * gui_move_previous_word: move to beginning of previous word
+ * gui_input_previous_word: move to beginning of previous word
*/
void
-gui_move_previous_word (t_gui_buffer *buffer)
+gui_input_previous_word ()
{
int i;
- if (buffer->input_buffer_pos > 0)
+ if (gui_current_window->buffer->input_buffer_pos > 0)
{
- i = buffer->input_buffer_pos - 1;
+ i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
- (buffer->input_buffer[i] == ' '))
+ (gui_current_window->buffer->input_buffer[i] == ' '))
i--;
if (i < 0)
- buffer->input_buffer_pos = 0;
+ gui_current_window->buffer->input_buffer_pos = 0;
else
{
while ((i >= 0) &&
- (buffer->input_buffer[i] != ' '))
+ (gui_current_window->buffer->input_buffer[i] != ' '))
i--;
- buffer->input_buffer_pos = i + 1;
+ gui_current_window->buffer->input_buffer_pos = i + 1;
+ }
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+}
+
+/*
+ * gui_input_right: move to previous char
+ */
+
+void
+gui_input_right ()
+{
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (gui_current_window->buffer->input_buffer_pos <
+ gui_current_window->buffer->input_buffer_size)
+ {
+ gui_current_window->buffer->input_buffer_pos++;
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
}
- gui_draw_buffer_input (buffer, 0);
}
}
/*
- * gui_move_next_word: move to the end of next
+ * gui_input_next_word: move to the end of next
*/
void
-gui_move_next_word (t_gui_buffer *buffer)
+gui_input_next_word ()
{
int i;
- if (buffer->input_buffer_pos <
- buffer->input_buffer_size + 1)
+ if (gui_current_window->buffer->input_buffer_pos <
+ gui_current_window->buffer->input_buffer_size + 1)
{
- i = buffer->input_buffer_pos;
- while ((i <= buffer->input_buffer_size) &&
- (buffer->input_buffer[i] == ' '))
+ i = gui_current_window->buffer->input_buffer_pos;
+ while ((i <= gui_current_window->buffer->input_buffer_size) &&
+ (gui_current_window->buffer->input_buffer[i] == ' '))
i++;
- if (i > buffer->input_buffer_size)
- buffer->input_buffer_pos = i - 1;
+ if (i > gui_current_window->buffer->input_buffer_size)
+ gui_current_window->buffer->input_buffer_pos = i - 1;
else
{
- while ((i <= buffer->input_buffer_size) &&
- (buffer->input_buffer[i] != ' '))
+ while ((i <= gui_current_window->buffer->input_buffer_size) &&
+ (gui_current_window->buffer->input_buffer[i] != ' '))
i++;
- if (i > buffer->input_buffer_size)
- buffer->input_buffer_pos =
- buffer->input_buffer_size;
+ if (i > gui_current_window->buffer->input_buffer_size)
+ gui_current_window->buffer->input_buffer_pos =
+ gui_current_window->buffer->input_buffer_size;
else
- buffer->input_buffer_pos = i;
+ gui_current_window->buffer->input_buffer_pos = i;
}
- gui_draw_buffer_input (buffer, 0);
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
}
}
/*
- * gui_buffer_insert_string: insert a string into the input buffer
+ * gui_input_up: recall last command or move to previous DCC in list
*/
void
-gui_buffer_insert_string (t_gui_buffer *buffer, char *string, int pos)
+gui_input_up ()
{
- int i, start, end, length;
+ if (gui_current_window->buffer->dcc)
+ {
+ if (dcc_list)
+ {
+ if (gui_current_window->dcc_selected
+ && ((t_irc_dcc *)(gui_current_window->dcc_selected))->prev_dcc)
+ {
+ if (gui_current_window->dcc_selected ==
+ gui_current_window->dcc_first)
+ gui_current_window->dcc_first =
+ ((t_irc_dcc *)(gui_current_window->dcc_first))->prev_dcc;
+ gui_current_window->dcc_selected =
+ ((t_irc_dcc *)(gui_current_window->dcc_selected))->prev_dcc;
+ gui_draw_buffer_chat (gui_current_window->buffer, 1);
+ gui_draw_buffer_input (gui_current_window->buffer, 1);
+ }
+ }
+ }
+ else
+ {
+ if (gui_current_window->buffer->ptr_history)
+ {
+ gui_current_window->buffer->ptr_history =
+ gui_current_window->buffer->ptr_history->next_history;
+ if (!gui_current_window->buffer->ptr_history)
+ gui_current_window->buffer->ptr_history =
+ gui_current_window->buffer->history;
+ }
+ else
+ gui_current_window->buffer->ptr_history =
+ gui_current_window->buffer->history;
+ if (gui_current_window->buffer->ptr_history)
+ {
+ gui_current_window->buffer->input_buffer_size =
+ strlen (gui_current_window->buffer->ptr_history->text);
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->input_buffer_pos =
+ gui_current_window->buffer->input_buffer_size;
+ strcpy (gui_current_window->buffer->input_buffer,
+ gui_current_window->buffer->ptr_history->text);
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+ }
+}
+
+/*
+ * gui_input_down: recall next command or move to next DCC in list
+ */
+
+void
+gui_input_down ()
+{
+ if (gui_current_window->buffer->dcc)
+ {
+ if (dcc_list)
+ {
+ if (!gui_current_window->dcc_selected
+ || ((t_irc_dcc *)(gui_current_window->dcc_selected))->next_dcc)
+ {
+ if (gui_current_window->dcc_last_displayed
+ && (gui_current_window->dcc_selected ==
+ gui_current_window->dcc_last_displayed))
+ {
+ if (gui_current_window->dcc_first)
+ gui_current_window->dcc_first =
+ ((t_irc_dcc *)(gui_current_window->dcc_first))->next_dcc;
+ else
+ gui_current_window->dcc_first =
+ dcc_list->next_dcc;
+ }
+ if (gui_current_window->dcc_selected)
+ gui_current_window->dcc_selected =
+ ((t_irc_dcc *)(gui_current_window->dcc_selected))->next_dcc;
+ else
+ gui_current_window->dcc_selected =
+ dcc_list->next_dcc;
+ gui_draw_buffer_chat (gui_current_window->buffer, 1);
+ gui_draw_buffer_input (gui_current_window->buffer, 1);
+ }
+ }
+ }
+ else
+ {
+ if (gui_current_window->buffer->ptr_history)
+ {
+ gui_current_window->buffer->ptr_history =
+ gui_current_window->buffer->ptr_history->prev_history;
+ if (gui_current_window->buffer->ptr_history)
+ gui_current_window->buffer->input_buffer_size =
+ strlen (gui_current_window->buffer->ptr_history->text);
+ else
+ gui_current_window->buffer->input_buffer_size = 0;
+ gui_input_optimize_buffer_size (gui_current_window->buffer);
+ gui_current_window->buffer->input_buffer_pos =
+ gui_current_window->buffer->input_buffer_size;
+ if (gui_current_window->buffer->ptr_history)
+ strcpy (gui_current_window->buffer->input_buffer,
+ gui_current_window->buffer->ptr_history->text);
+ gui_draw_buffer_input (gui_current_window->buffer, 0);
+ }
+ }
+}
+
+/*
+ * gui_input_jump_smart: jump to buffer with activity (alt-A by default)
+ */
+
+void
+gui_input_jump_smart ()
+{
+ if (hotlist)
+ {
+ if (!hotlist_initial_buffer)
+ hotlist_initial_buffer = gui_current_window->buffer;
+ gui_switch_to_buffer (gui_current_window, hotlist->buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ else
+ {
+ if (hotlist_initial_buffer)
+ {
+ gui_switch_to_buffer (gui_current_window, hotlist_initial_buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
+ hotlist_initial_buffer = NULL;
+ }
+ }
+}
+
+/*
+ * gui_input_jump_dcc: jump to DCC buffer
+ */
+
+void
+gui_input_jump_dcc ()
+{
+ if (gui_current_window->buffer->dcc)
+ {
+ if (buffer_before_dcc)
+ {
+ gui_switch_to_buffer (gui_current_window,
+ buffer_before_dcc);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ }
+ else
+ {
+ buffer_before_dcc = gui_current_window->buffer;
+ gui_switch_to_dcc_buffer ();
+ }
+}
+
+/*
+ * gui_input_jump_server: jump to server buffer
+ */
+
+void
+gui_input_jump_server ()
+{
+ if (!gui_current_window->buffer->dcc)
+ {
+ if (SERVER(gui_current_window->buffer)->buffer !=
+ gui_current_window->buffer)
+ {
+ gui_switch_to_buffer (gui_current_window,
+ SERVER(gui_current_window->buffer)->buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ }
+}
+
+/*
+ * gui_input_jump_next_server: jump to next server
+ */
+
+void
+gui_input_jump_next_server ()
+{
+ t_irc_server *ptr_server;
+ t_gui_buffer *ptr_buffer;
- length = strlen (string);
+ if (!gui_current_window->buffer->dcc)
+ {
+ ptr_server = SERVER(gui_current_window->buffer)->next_server;
+ if (!ptr_server)
+ ptr_server = irc_servers;
+ while (ptr_server != SERVER(gui_current_window->buffer))
+ {
+ if (ptr_server->buffer)
+ break;
+ ptr_server = (ptr_server->next_server) ?
+ ptr_server->next_server : irc_servers;
+ }
+ if (ptr_server != SERVER(gui_current_window->buffer))
+ {
+ ptr_buffer = (ptr_server->channels) ?
+ ptr_server->channels->buffer : ptr_server->buffer;
+ gui_switch_to_buffer (gui_current_window, ptr_buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ }
+}
+
+/*
+ * gui_input_hotlist_clear: clear hotlist
+ */
+
+void
+gui_input_hotlist_clear ()
+{
+ if (hotlist)
+ {
+ hotlist_free_all ();
+ gui_redraw_buffer (gui_current_window->buffer);
+ }
+ hotlist_initial_buffer = gui_current_window->buffer;
+}
+
+/*
+ * gui_input_infobar_clear: clear infobar
+ */
+
+void
+gui_input_infobar_clear ()
+{
+ gui_infobar_remove ();
+ gui_draw_buffer_infobar (gui_current_window->buffer, 1);
+}
+
+/*
+ * gui_switch_to_previous_buffer: switch to previous buffer
+ */
+
+void
+gui_switch_to_previous_buffer ()
+{
+ if (!gui_ok)
+ return;
- /* increase buffer size */
- buffer->input_buffer_size += length;
- gui_optimize_input_buffer_size (buffer);
- buffer->input_buffer[buffer->input_buffer_size] = '\0';
+ /* if only one buffer then return */
+ if (gui_buffers == last_gui_buffer)
+ return;
- /* move end of string to the right */
- start = pos + length;
- end = buffer->input_buffer_size - 1;
- for (i = end; i >= start; i--)
- buffer->input_buffer[i] =
- buffer->input_buffer[i - length];
+ if (gui_current_window->buffer->prev_buffer)
+ gui_switch_to_buffer (gui_current_window, gui_current_window->buffer->prev_buffer);
+ else
+ gui_switch_to_buffer (gui_current_window, last_gui_buffer);
- /* insert new string */
- strncpy (buffer->input_buffer + pos, string, length);
+ gui_redraw_buffer (gui_current_window->buffer);
+}
+
+/*
+ * gui_switch_to_next_buffer: switch to next buffer
+ */
+
+void
+gui_switch_to_next_buffer ()
+{
+ if (!gui_ok)
+ return;
+
+ /* if only one buffer then return */
+ if (gui_buffers == last_gui_buffer)
+ return;
+
+ if (gui_current_window->buffer->next_buffer)
+ gui_switch_to_buffer (gui_current_window, gui_current_window->buffer->next_buffer);
+ else
+ gui_switch_to_buffer (gui_current_window, gui_buffers);
+
+ gui_redraw_buffer (gui_current_window->buffer);
+}
+
+/*
+ * gui_switch_to_previous_window: switch to previous window
+ */
+
+void
+gui_switch_to_previous_window ()
+{
+ if (!gui_ok)
+ return;
+
+ /* if only one window then return */
+ if (gui_windows == last_gui_window)
+ return;
+
+ gui_current_window = (gui_current_window->prev_window) ? gui_current_window->prev_window : last_gui_window;
+ gui_switch_to_buffer (gui_current_window, gui_current_window->buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
+}
+
+/*
+ * gui_switch_to_next_window: switch to next window
+ */
+
+void
+gui_switch_to_next_window ()
+{
+ if (!gui_ok)
+ return;
+
+ /* if only one window then return */
+ if (gui_windows == last_gui_window)
+ return;
+
+ gui_current_window = (gui_current_window->next_window) ? gui_current_window->next_window : gui_windows;
+ gui_switch_to_buffer (gui_current_window, gui_current_window->buffer);
+ gui_redraw_buffer (gui_current_window->buffer);
}
/*
@@ -716,6 +1477,10 @@ gui_switch_to_buffer_by_number (t_gui_window *window, int number)
{
t_gui_buffer *ptr_buffer;
+ /* invalid buffer */
+ if (number < 0)
+ return NULL;
+
/* buffer is currently displayed ? */
if (number == window->buffer->number)
return window->buffer;
diff --git a/weechat/src/gui/gui-keyboard.c b/weechat/src/gui/gui-keyboard.c
new file mode 100644
index 000000000..79bc44c79
--- /dev/null
+++ b/weechat/src/gui/gui-keyboard.c
@@ -0,0 +1,528 @@
+/*
+ * 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
+ */
+
+/* gui-keyboard: keyboard functions (GUI independant) */
+
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#include "../common/weechat.h"
+#include "gui.h"
+#include "../common/command.h"
+
+
+t_gui_key *gui_keys = NULL;
+t_gui_key *last_gui_key = NULL;
+
+char gui_key_buffer[128];
+
+t_gui_key_function gui_key_functions[] =
+{ { "return", gui_input_return,
+ N_("terminate line") },
+ { "tab", gui_input_tab,
+ N_("complete word") },
+ { "backspace", gui_input_backspace,
+ N_("delete previous char") },
+ { "delete", gui_input_delete,
+ N_("delete next char") },
+ { "delete_end_line", gui_input_delete_end_of_line,
+ N_("delete until end of line") },
+ { "delete_beginning_line", gui_input_delete_begin_of_line,
+ N_("delete until beginning of line") },
+ { "delete_line", gui_input_delete_line,
+ N_("delete entire line") },
+ { "delete_previous_word", gui_input_delete_previous_word,
+ N_("delete previous word") },
+ { "delete_next_word", gui_input_delete_next_word,
+ N_("delete next word") },
+ { "home", gui_input_home,
+ N_("go to beginning of line") },
+ { "end", gui_input_end,
+ N_("go to end of line") },
+ { "left", gui_input_left,
+ N_("move one char left") },
+ { "previous_word", gui_input_previous_word,
+ N_("move to previous word") },
+ { "right", gui_input_right,
+ N_("move one char right") },
+ { "next_word", gui_input_next_word,
+ N_("move to next word") },
+ { "up", gui_input_up,
+ N_("call previous command in history") },
+ { "down", gui_input_down,
+ N_("call next command in history") },
+ { "page_up", gui_input_page_up,
+ N_("scroll one page up") },
+ { "page_down", gui_input_page_down,
+ N_("scroll one page down") },
+ { "infobar_clear", gui_input_infobar_clear,
+ N_("clear infobar") },
+ { "nick_page_up", gui_input_nick_page_up,
+ N_("scroll nicklist one page up") },
+ { "nick_page_down", gui_input_nick_page_down,
+ N_("scroll nicklist one page down") },
+ { "nick_beginning", gui_input_nick_beginning,
+ N_("display beginning of nicklist") },
+ { "nick_end", gui_input_nick_end,
+ N_("display end of nicklist") },
+ { "refresh", gui_curses_resize_handler,
+ N_("refresh screen") },
+ { "jump_smart", gui_input_jump_smart,
+ N_("jump to buffer with activity") },
+ { "jump_dcc", gui_input_jump_dcc,
+ N_("jump to DCC buffer") },
+ { "jump_server", gui_input_jump_server,
+ N_("jump to server buffer") },
+ { "jump_next_server", gui_input_jump_next_server,
+ N_("jump to next server") },
+ { "hotlist_clear", gui_input_hotlist_clear,
+ N_("clear hotlist") },
+ { NULL, NULL, NULL }
+};
+
+
+/*
+ * gui_key_init: init keyboard (create default key bindings)
+ */
+
+void
+gui_key_init ()
+{
+ gui_key_buffer[0] = '\0';
+
+ gui_input_default_key_bindings ();
+}
+
+/*
+ * gui_key_get_internal_code: get internal code from user key name
+ * for example: return "^R" for "ctrl-R"
+ */
+
+char *
+gui_key_get_internal_code (char *key)
+{
+ char *result;
+
+ if ((result = (char *) malloc (strlen (key) + 1)))
+ {
+ result[0] = '\0';
+ while (key[0])
+ {
+ if (strncasecmp (key, "meta2-", 6) == 0)
+ {
+ strcat (result, "^[[");
+ key += 6;
+ }
+ if (strncasecmp (key, "meta-", 5) == 0)
+ {
+ strcat (result, "^[");
+ key += 5;
+ }
+ else if (strncasecmp (key, "ctrl-", 5) == 0)
+ {
+ strcat (result, "^");
+ key += 5;
+ }
+ else
+ {
+ strncat (result, key, 1);
+ key++;
+ }
+ }
+ }
+ else
+ return NULL;
+
+ return result;
+}
+
+/*
+ * gui_key_get_expanded_name: get expanded name from internal key code
+ * for example: return "ctrl-R" for "^R"
+ */
+
+char *
+gui_key_get_expanded_name (char *key)
+{
+ char *result;
+
+ if ((result = (char *) malloc ((strlen (key) * 5) + 1)))
+ {
+ result[0] = '\0';
+ while (key[0])
+ {
+ if (strncasecmp (key, "^[[", 3) == 0)
+ {
+ strcat (result, "meta2-");
+ key += 3;
+ }
+ if (strncasecmp (key, "^[", 2) == 0)
+ {
+ strcat (result, "meta-");
+ key += 2;
+ }
+ else if (key[0] == '^')
+ {
+ strcat (result, "ctrl-");
+ key++;
+ }
+ else
+ {
+ strncat (result, key, 1);
+ key++;
+ }
+ }
+ }
+ else
+ return NULL;
+
+ return result;
+}
+
+/*
+ * gui_key_find_pos: find position for a key (for sorting keys list)
+ */
+
+t_gui_key *
+gui_key_find_pos (t_gui_key *key)
+{
+ t_gui_key *ptr_key;
+
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ if (strcasecmp (key->key, ptr_key->key) < 0)
+ return ptr_key;
+ }
+ return NULL;
+}
+
+/*
+ * gui_key_insert_sorted: insert key into sorted list
+ */
+
+void
+gui_key_insert_sorted (t_gui_key *key)
+{
+ t_gui_key *pos_key;
+
+ if (gui_keys)
+ {
+ pos_key = gui_key_find_pos (key);
+
+ if (pos_key)
+ {
+ /* insert key into the list (before key found) */
+ key->prev_key = pos_key->prev_key;
+ key->next_key = pos_key;
+ if (pos_key->prev_key)
+ pos_key->prev_key->next_key = key;
+ else
+ gui_keys = key;
+ pos_key->prev_key = key;
+ }
+ else
+ {
+ /* add key to the end */
+ key->prev_key = last_gui_key;
+ key->next_key = NULL;
+ last_gui_key->next_key = key;
+ last_gui_key = key;
+ }
+ }
+ else
+ {
+ key->prev_key = NULL;
+ key->next_key = NULL;
+ gui_keys = key;
+ last_gui_key = key;
+ }
+}
+
+/*
+ * gui_key_new: add a new key in keys list
+ */
+
+t_gui_key *
+gui_key_new (char *key, char *command, void *function)
+{
+ t_gui_key *new_key;
+ char *internal_code;
+
+ if ((new_key = (t_gui_key *) malloc (sizeof (t_gui_key))))
+ {
+ internal_code = gui_key_get_internal_code (key);
+ new_key->key = (internal_code) ? strdup (internal_code) : strdup (key);
+ if (internal_code)
+ free (internal_code);
+ new_key->command = (command) ? strdup (command) : NULL;
+ new_key->function = function;
+ gui_key_insert_sorted (new_key);
+ }
+ else
+ return NULL;
+
+ return new_key;
+}
+
+/*
+ * gui_key_search: search a key
+ */
+
+t_gui_key *
+gui_key_search (char *key)
+{
+ t_gui_key *ptr_key;
+
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ if (strcasecmp (ptr_key->key, key) == 0)
+ return ptr_key;
+ }
+
+ /* key not found */
+ return NULL;
+}
+
+/*
+ * gui_key_cmp: compares 2 keys
+ */
+
+int
+gui_key_cmp (char *key, char *search)
+{
+ while (search[0])
+ {
+ if (toupper(key[0]) != toupper(search[0]))
+ return search[0] - key[0];
+ key++;
+ search++;
+ }
+
+ return 0;
+}
+
+/*
+ * gui_key_search_part: search a key (maybe part of string)
+ */
+
+t_gui_key *
+gui_key_search_part (char *key)
+{
+ t_gui_key *ptr_key;
+
+ for (ptr_key = gui_keys; ptr_key; ptr_key = ptr_key->next_key)
+ {
+ if (gui_key_cmp (ptr_key->key, key) == 0)
+ return ptr_key;
+ }
+
+ /* key not found */
+ return NULL;
+}
+
+/*
+ * gui_key_function_search_by_name: search a function by name
+ */
+
+void *
+gui_key_function_search_by_name (char *name)
+{
+ int i;
+
+ i = 0;
+ while (gui_key_functions[i].function_name)
+ {
+ if (strcasecmp (gui_key_functions[i].function_name, name) == 0)
+ return gui_key_functions[i].function;
+ i++;
+ }
+
+ /* function not found */
+ return NULL;
+}
+
+/*
+ * gui_key_function_search_by_ptr: search a function by pointer
+ */
+
+char *
+gui_key_function_search_by_ptr (void *function)
+{
+ int i;
+
+ i = 0;
+ while (gui_key_functions[i].function_name)
+ {
+ if (gui_key_functions[i].function == function)
+ return gui_key_functions[i].function_name;
+ i++;
+ }
+
+ /* function not found */
+ return NULL;
+}
+
+/*
+ * gui_key_bind: bind a key to a function (command or special function)
+ */
+
+t_gui_key *
+gui_key_bind (char *key, char *command)
+{
+ t_gui_key_function *ptr_function;
+ t_gui_key *new_key;
+
+ if (!key || !command)
+ {
+ wee_log_printf (_("%s unable to bind key \"%s\"\n"),
+ WEECHAT_ERROR, key);
+ return NULL;
+ }
+
+ ptr_function = NULL;
+ if (command[0] != '/')
+ {
+ ptr_function = gui_key_function_search_by_name (command);
+ if (!ptr_function)
+ {
+ wee_log_printf (_("%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"),
+ WEECHAT_ERROR, key, command);
+ return NULL;
+ }
+ }
+
+ gui_key_unbind (key);
+
+ new_key = gui_key_new (key,
+ (ptr_function) ? NULL : command,
+ ptr_function);
+ if (!new_key)
+ {
+ wee_log_printf (_("%s not enough memory for key binding\n"),
+ WEECHAT_ERROR);
+ return NULL;
+ }
+
+ return new_key;
+}
+
+/*
+ * gui_key_unbind: remove a key binding
+ */
+
+int
+gui_key_unbind (char *key)
+{
+ t_gui_key *ptr_key;
+ char *internal_code;
+
+ internal_code = gui_key_get_internal_code (key);
+
+ ptr_key = gui_key_search ((internal_code) ? internal_code : key);
+ if (ptr_key)
+ gui_key_free (ptr_key);
+
+ if (internal_code)
+ free (internal_code);
+
+ return (ptr_key != NULL);
+}
+
+/*
+ * gui_key_pressed: treat new key pressed
+ * return: 1 if key should be added to input buffer
+ * 0 otherwise
+ */
+
+int
+gui_key_pressed (char *key_str)
+{
+ int first_key;
+ t_gui_key *ptr_key;
+
+ first_key = (gui_key_buffer[0] == '\0');
+ strcat (gui_key_buffer, key_str);
+ ptr_key = gui_key_search_part (gui_key_buffer);
+ if (ptr_key)
+ {
+ if (strcasecmp (ptr_key->key, gui_key_buffer) == 0)
+ {
+ /* exact combo found => execute function or command */
+ gui_key_buffer[0] = '\0';
+ if (ptr_key->command)
+ user_command (SERVER(gui_current_window->buffer),
+ gui_current_window->buffer,
+ ptr_key->command);
+ else
+ (void)(ptr_key->function)();
+ }
+ //else
+ // gui_printf (gui_current_window->buffer, "partial key found\n");
+ return 0;
+ }
+
+ gui_key_buffer[0] = '\0';
+
+ /* if this is first key and not found (even partial) => return 1
+ else return 0 (= silently discard sequence of bad keys) */
+ return first_key;
+}
+
+/*
+ * key_free: delete a key binding
+ */
+
+void
+gui_key_free (t_gui_key *key)
+{
+ /* free memory */
+ if (key->key)
+ free (key->key);
+ if (key->command)
+ free (key->command);
+
+ /* remove key from keys list */
+ if (key->prev_key)
+ key->prev_key->next_key = key->next_key;
+ if (key->next_key)
+ key->next_key->prev_key = key->prev_key;
+ if (gui_keys == key)
+ gui_keys = key->next_key;
+ if (last_gui_key == key)
+ last_gui_key = key->prev_key;
+
+ free (key);
+}
+
+/*
+ * gui_key_free_all: delete all key bindings
+ */
+
+void
+gui_key_free_all ()
+{
+ while (gui_keys)
+ gui_key_free (gui_keys);
+}
diff --git a/weechat/src/gui/gui.h b/weechat/src/gui/gui.h
index 63d5ab50c..ec1dc8bae 100644
--- a/weechat/src/gui/gui.h
+++ b/weechat/src/gui/gui.h
@@ -26,7 +26,7 @@
#define INPUT_BUFFER_BLOCK_SIZE 256
-#define NUM_COLORS 50
+#define NUM_COLORS 51
#define COLOR_WIN_TITLE 1
#define COLOR_WIN_CHAT 2
#define COLOR_WIN_CHAT_TIME 3
@@ -45,31 +45,32 @@
#define COLOR_WIN_STATUS_DATA_OTHER 16
#define COLOR_WIN_STATUS_MORE 17
#define COLOR_WIN_INFOBAR 18
-#define COLOR_WIN_INFOBAR_HIGHLIGHT 19
-#define COLOR_WIN_INPUT 20
-#define COLOR_WIN_INPUT_CHANNEL 21
-#define COLOR_WIN_INPUT_NICK 22
-#define COLOR_WIN_NICK 23
-#define COLOR_WIN_NICK_AWAY 24
-#define COLOR_WIN_NICK_CHANOWNER 25
-#define COLOR_WIN_NICK_CHANADMIN 26
-#define COLOR_WIN_NICK_OP 27
-#define COLOR_WIN_NICK_HALFOP 28
-#define COLOR_WIN_NICK_VOICE 29
-#define COLOR_WIN_NICK_MORE 30
-#define COLOR_WIN_NICK_SEP 31
-#define COLOR_WIN_NICK_SELF 32
-#define COLOR_WIN_NICK_PRIVATE 33
-#define COLOR_WIN_NICK_FIRST 34
-#define COLOR_WIN_NICK_LAST 43
+#define COLOR_WIN_INFOBAR_DELIMITERS 19
+#define COLOR_WIN_INFOBAR_HIGHLIGHT 20
+#define COLOR_WIN_INPUT 21
+#define COLOR_WIN_INPUT_CHANNEL 22
+#define COLOR_WIN_INPUT_NICK 23
+#define COLOR_WIN_NICK 24
+#define COLOR_WIN_NICK_AWAY 25
+#define COLOR_WIN_NICK_CHANOWNER 26
+#define COLOR_WIN_NICK_CHANADMIN 27
+#define COLOR_WIN_NICK_OP 28
+#define COLOR_WIN_NICK_HALFOP 29
+#define COLOR_WIN_NICK_VOICE 30
+#define COLOR_WIN_NICK_MORE 31
+#define COLOR_WIN_NICK_SEP 32
+#define COLOR_WIN_NICK_SELF 33
+#define COLOR_WIN_NICK_PRIVATE 34
+#define COLOR_WIN_NICK_FIRST 35
+#define COLOR_WIN_NICK_LAST 44
#define COLOR_WIN_NICK_NUMBER (COLOR_WIN_NICK_LAST - COLOR_WIN_NICK_FIRST + 1)
-#define COLOR_DCC_SELECTED 44
-#define COLOR_DCC_WAITING 45
-#define COLOR_DCC_CONNECTING 46
-#define COLOR_DCC_ACTIVE 47
-#define COLOR_DCC_DONE 48
-#define COLOR_DCC_FAILED 49
-#define COLOR_DCC_ABORTED 50
+#define COLOR_DCC_SELECTED 45
+#define COLOR_DCC_WAITING 46
+#define COLOR_DCC_CONNECTING 47
+#define COLOR_DCC_ACTIVE 48
+#define COLOR_DCC_DONE 49
+#define COLOR_DCC_FAILED 40
+#define COLOR_DCC_ABORTED 51
#define SERVER(buffer) ((t_irc_server *)(buffer->server))
#define CHANNEL(buffer) ((t_irc_channel *)(buffer->channel))
@@ -219,6 +220,9 @@ struct t_gui_window
int win_nick_height; /* height of nick window */
int win_nick_start; /* # of 1st nick for display (scroll) */
+ /* input window settings */
+ int win_input_x; /* position of cursor in input window */
+
/* windows for Curses GUI */
void *win_title; /* title window */
void *win_chat; /* chat window (example: channel) */
@@ -252,6 +256,26 @@ struct t_gui_window
t_gui_window *next_window; /* link to next window */
};
+typedef struct t_gui_key t_gui_key;
+
+struct t_gui_key
+{
+ char *key; /* key combo (ex: a, ^W, ^W^C, meta-a) */
+ char *command; /* associated command (may be NULL) */
+ void (*function)(); /* associated function (if cmd is NULL) */
+ t_gui_key *prev_key; /* link to previous key */
+ t_gui_key *next_key; /* link to next key */
+};
+
+typedef struct t_gui_key_function t_gui_key_function;
+
+struct t_gui_key_function
+{
+ char *function_name; /* name of function */
+ void (*function)(); /* associated function */
+ char *description; /* description of function */
+};
+
/* variables */
extern int gui_init_ok;
@@ -264,8 +288,11 @@ extern t_gui_buffer *gui_buffers;
extern t_gui_buffer *last_gui_buffer;
extern t_gui_buffer *buffer_before_dcc;
extern t_gui_infobar *gui_infobar;
+extern t_gui_key *gui_keys;
+extern t_gui_key *last_gui_key;
+extern t_gui_key_function gui_key_functions[];
-/* GUI independent functions */
+/* GUI independent functions: windows & buffers */
extern t_gui_window *gui_window_new (int, int, int, int);
extern t_gui_buffer *gui_buffer_new (t_gui_window *, void *, void *, int, int);
@@ -277,17 +304,53 @@ extern void gui_infobar_remove ();
extern void gui_buffer_free (t_gui_buffer *, int);
extern t_gui_line *gui_new_line (t_gui_buffer *);
extern t_gui_message *gui_new_message (t_gui_buffer *);
-extern void gui_optimize_input_buffer_size (t_gui_buffer *);
-extern void gui_delete_previous_word (t_gui_buffer *);
-extern void gui_move_previous_word (t_gui_buffer *);
-extern void gui_move_next_word (t_gui_buffer *);
-extern void gui_buffer_insert_string (t_gui_buffer *, char *, int);
+extern void gui_input_insert_char ();
+extern void gui_input_return ();
+extern void gui_input_tab ();
+extern void gui_input_backspace ();
+extern void gui_input_delete ();
+extern void gui_input_delete_previous_word ();
+extern void gui_input_delete_next_word ();
+extern void gui_input_delete_begin_of_line ();
+extern void gui_input_delete_end_of_line ();
+extern void gui_input_delete_line ();
+extern void gui_input_home ();
+extern void gui_input_end ();
+extern void gui_input_left ();
+extern void gui_input_previous_word ();
+extern void gui_input_right ();
+extern void gui_input_next_word ();
+extern void gui_input_up ();
+extern void gui_input_down ();
+extern void gui_input_jump_smart ();
+extern void gui_input_jump_dcc ();
+extern void gui_input_jump_server ();
+extern void gui_input_jump_next_server ();
+extern void gui_input_hotlist_clear ();
+extern void gui_input_infobar_clear ();
+extern void gui_switch_to_previous_buffer ();
+extern void gui_switch_to_next_buffer ();
+extern void gui_switch_to_previous_window ();
+extern void gui_switch_to_next_window ();
extern t_gui_buffer *gui_switch_to_buffer_by_number (t_gui_window *, int);
extern void gui_move_buffer_to_number (t_gui_window *, int);
extern void gui_window_print_log (t_gui_window *);
extern void gui_buffer_print_log (t_gui_buffer *);
-/* GUI dependant functions */
+/* GUI independent functions: keys */
+
+extern void gui_key_init ();
+extern char *gui_key_get_internal_code (char *);
+extern char *gui_key_get_expanded_name (char *);
+extern void *gui_key_function_search_by_name (char *);
+extern char *gui_key_function_search_by_ptr (void *);
+extern t_gui_key *gui_key_bind (char *, char *);
+extern int gui_key_unbind (char *);
+extern int gui_key_pressed (char *);
+extern void gui_key_free (t_gui_key *);
+extern void gui_key_free_all ();
+
+/* GUI dependant functions: display */
extern int gui_assign_color (int *, char *);
extern int gui_get_color_by_name (char *);
@@ -298,22 +361,19 @@ extern void gui_draw_buffer_title (t_gui_buffer *, int);
extern void gui_draw_buffer_chat (t_gui_buffer *, int);
extern void gui_draw_buffer_nick (t_gui_buffer *, int);
extern void gui_draw_buffer_status (t_gui_buffer *, int);
+extern void gui_draw_buffer_infobar_time (t_gui_buffer *);
extern void gui_draw_buffer_infobar (t_gui_buffer *, int);
extern void gui_draw_buffer_input (t_gui_buffer *, int);
extern void gui_redraw_buffer (t_gui_buffer *);
extern void gui_switch_to_buffer (t_gui_window *, t_gui_buffer *);
extern t_gui_buffer *gui_get_dcc_buffer ();
extern void gui_switch_to_dcc_buffer ();
-extern void gui_switch_to_previous_buffer (t_gui_window *);
-extern void gui_switch_to_next_buffer (t_gui_window *);
-extern void gui_switch_to_previous_window (t_gui_window *);
-extern void gui_switch_to_next_window (t_gui_window *);
-extern void gui_move_page_up (t_gui_window *);
-extern void gui_move_page_down (t_gui_window *);
-extern void gui_nick_move_beginning (t_gui_window *);
-extern void gui_nick_move_end (t_gui_window *);
-extern void gui_nick_move_page_up (t_gui_window *);
-extern void gui_nick_move_page_down (t_gui_window *);
+extern void gui_input_page_up ();
+extern void gui_input_page_down ();
+extern void gui_input_nick_beginning ();
+extern void gui_input_nick_end ();
+extern void gui_input_nick_page_up ();
+extern void gui_input_nick_page_down ();
extern void gui_curses_resize_handler ();
extern void gui_window_init_subwindows (t_gui_window *);
extern void gui_window_split_horiz (t_gui_window *);
@@ -330,6 +390,7 @@ extern void gui_set_window_title ();
extern void gui_init ();
extern void gui_end ();
extern void gui_printf_type_color (/*@null@*/ t_gui_buffer *, int, int, char *, ...);
+extern void gui_input_default_key_bindings ();
extern void gui_main_loop ();
#endif /* gui.h */