summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2006-05-13 00:06:18 +0000
committerSebastien Helleu <flashcode@flashtux.org>2006-05-13 00:06:18 +0000
commit78ca78855ec94e69bb3df221bfc82c8700d11594 (patch)
tree98a34b4c776385b737c28f2ce06674749842b685
parent293bf5988b7d94873ddd2e50fa02af1d9f72d8d5 (diff)
downloadweechat-78ca78855ec94e69bb3df221bfc82c8700d11594.zip
Added new key to find previous completion (shift-tab by default)
-rw-r--r--ChangeLog3
-rw-r--r--doc/de/key_functions.xml4
-rw-r--r--doc/en/key_functions.xml4
-rw-r--r--doc/fr/key_functions.xml4
-rw-r--r--po/cs.po96
-rw-r--r--po/de.po96
-rw-r--r--po/es.po96
-rw-r--r--po/fr.po98
-rw-r--r--po/hu.po96
-rw-r--r--po/ru.po96
-rw-r--r--po/weechat.pot96
-rw-r--r--src/common/completion.c244
-rw-r--r--src/common/completion.h3
-rw-r--r--src/gui/curses/gui-curses-keyboard.c1
-rw-r--r--src/gui/gui-action.c120
-rw-r--r--src/gui/gui-common.c109
-rw-r--r--src/gui/gui-keyboard.c2
-rw-r--r--src/gui/gui.h2
-rw-r--r--weechat/ChangeLog3
-rw-r--r--weechat/doc/de/key_functions.xml4
-rw-r--r--weechat/doc/en/key_functions.xml4
-rw-r--r--weechat/doc/fr/key_functions.xml4
-rw-r--r--weechat/po/cs.po96
-rw-r--r--weechat/po/de.po96
-rw-r--r--weechat/po/es.po96
-rw-r--r--weechat/po/fr.po98
-rw-r--r--weechat/po/hu.po96
-rw-r--r--weechat/po/ru.po96
-rw-r--r--weechat/po/weechat.pot96
-rw-r--r--weechat/src/common/completion.c244
-rw-r--r--weechat/src/common/completion.h3
-rw-r--r--weechat/src/gui/curses/gui-curses-keyboard.c1
-rw-r--r--weechat/src/gui/gui-action.c120
-rw-r--r--weechat/src/gui/gui-common.c109
-rw-r--r--weechat/src/gui/gui-keyboard.c2
-rw-r--r--weechat/src/gui/gui.h2
36 files changed, 1274 insertions, 1066 deletions
diff --git a/ChangeLog b/ChangeLog
index 8425a7a11..e46f6a1b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,10 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
-ChangeLog - 2006-05-09
+ChangeLog - 2006-05-13
Version 0.1.9 (under dev!):
+ * added new key to find previous completion (shift-tab by default)
* fixed bug with long outgoing IRC messages (> 512 bytes) (bug #16358)
* fixed Ruby crash when handler does not return OK or KO (bug #16552)
* fixed UTF-8 display bug with chars using more than one cell on screen
diff --git a/doc/de/key_functions.xml b/doc/de/key_functions.xml
index 62172b7ed..8ef2afb0c 100644
--- a/doc/de/key_functions.xml
+++ b/doc/de/key_functions.xml
@@ -14,6 +14,10 @@
<entry>Wort vervollstndigen</entry>
</row>
<row>
+ <entry><literal>tab_previous</literal></entry>
+ <entry>find previous completion for word</entry>
+</row>
+<row>
<entry><literal>backspace</literal></entry>
<entry>vorheriges Zeichen lschen</entry>
</row>
diff --git a/doc/en/key_functions.xml b/doc/en/key_functions.xml
index 8efefad36..77f35e9e3 100644
--- a/doc/en/key_functions.xml
+++ b/doc/en/key_functions.xml
@@ -14,6 +14,10 @@
<entry>complete word</entry>
</row>
<row>
+ <entry><literal>tab_previous</literal></entry>
+ <entry>find previous completion for word</entry>
+</row>
+<row>
<entry><literal>backspace</literal></entry>
<entry>delete previous char</entry>
</row>
diff --git a/doc/fr/key_functions.xml b/doc/fr/key_functions.xml
index b5171bb9c..7437718ff 100644
--- a/doc/fr/key_functions.xml
+++ b/doc/fr/key_functions.xml
@@ -14,6 +14,10 @@
<entry>complter le mot</entry>
</row>
<row>
+ <entry><literal>tab_previous</literal></entry>
+ <entry>find previous completion for word</entry>
+</row>
+<row>
<entry><literal>backspace</literal></entry>
<entry>effacer le caractre prcdent</entry>
</row>
diff --git a/po/cs.po b/po/cs.po
index 814cfc0ba..25ca9fd1f 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
"PO-Revision-Date: 2006-05-12 16:22+0200\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2470,188 +2470,192 @@ msgid "complete word"
msgstr "dokončit slovo"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "smazat předchozí znak"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "smazat další zank"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "smazat do konce řádku"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "smazat do začátku řádku"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "smazat celý řádek"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "smazat předchozí slovo"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "smazat další slovo"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "vložit aktuální obsah schránky"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "přesunout znaky"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "jdi na začátek řádky"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "jdi na konec řádky"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "posuň jeden znak vlevo"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "posuň na předchozí slovo"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "posuň jeden znak vpravo"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "posuň na další slovo"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "zavolej předchozí příkaz v historii"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "zavolej předchozí příkaz v globální historii"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "zavolej další příkaz v historii"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "zavolej další příkaz v globální historii"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "posuň o stránku nahoru"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "posuň o stránku dolů"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
msgid "scroll a few lines up"
msgstr "posuň o několik řádek nahoru"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
msgid "scroll a few lines down"
msgstr "posuň o několik řádek dolů"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
msgid "scroll to top of buffer"
msgstr "přesunout na vrch bufferu"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
msgid "scroll to bottom of buffer"
msgstr "přesunout na spodek bufferu"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "zobrazit začátek seznam přezdívek"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "zobrazit konec seznamu přezdívek"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "posuň seznam přezdívek o stránku nahoru"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "posuň seznam přezdívek o stránku dolů"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "skoč na buffer s aktivitou"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "skoč na DCC buffer"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr "skočit na čistý IRC data buffer"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "skoč na poslední buffer"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "skoč na buffer serveru"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "skoč na další server"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "přepnout aktivní server na buffer serverů"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "přesunout na předchozí zvýraznění v bufferu"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "přesunout na další zvýraznění v bufferu"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "přesunout na první nepřečtenout řádku v bufferu"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "vyčisti hotlist"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "vyčisti infobar"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "obnov obrazovku"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr "zachytit klávesu"
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s nemohu napojit kalávesu \"%s\"\n"
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr "%s nemohu napojit kalávesu \"%s\" (nevalidní jméno funkce: \"%s\")\n"
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s nedostatek paměti pro klávesovou zkratku\n"
diff --git a/po/de.po b/po/de.po
index 528d719cc..3f061828d 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
"PO-Revision-Date: 2006-05-12 16:22+0200\n"
"Last-Translator: Thomas Schütz <i18n@internet-villa.de>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2475,189 +2475,193 @@ msgid "complete word"
msgstr "Wort vervollständigen"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "vorheriges Zeichen löschen"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "nächstes Zeichen löschen"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "bis zum Zeilenende löschen"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "bis zum Zeilenanfang löschen"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "ganze Zeile löschen"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "vorheriges Wort löschen"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "nächstes Wort löschen"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "einfügen"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "Zeichen vertauschen"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "zum Zeilenanfang gehen"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "zum Zeilenende gehen"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "ein Zeichen nach links gehen"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "ein Wort nach links gehen"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "ein Zeichen nach rechts gehen"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "ein Wort nach rechts gehen"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "vorherigen Befehl aus dem Verlauf abfragen"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "vorherigen Befehl aus dem globalen Verlauf abfragen"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "nächsten Befehl aus dem Verlauf abfragen"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "nächsten Befehl aus dem globalen Verlauf abfragen"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "eine Seite hochscrollen"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "eine Seite herunterscrollen"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
msgid "scroll a few lines up"
msgstr "einige Zeilen hochscrollen"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
msgid "scroll a few lines down"
msgstr "einige Zeilen herunterscrollen"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
msgid "scroll to top of buffer"
msgstr "nach ganz oben scrollen"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
msgid "scroll to bottom of buffer"
msgstr "nach ganz unten scrollen"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "zum Anfang der Nicklist gehen"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "zum Ende der Nicklist gehen"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "Nickliste eine Seite hochscrollen"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "Nickliste eine Seite herunterscrollen"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "zu nächstem aktiven Puffer springen"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "zum DCC-Puffer springen"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr "gehe zum IRC-Rohdaten-Puffer"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "zum letzten Puffer springen"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "zum Serverpuffer springen"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "zum nächsten Server springen"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "wechsel den aktiven Server im Server-Puffer"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "scrolle zur vorherigen hervorhebung im Puffer"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "scrolle zur nächsten Hervorhebung im Puffer"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "scrolle zur ersten, ungelesenen Zeile im Puffer"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "Hotlist leeren"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "Infobar leeren"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "Bild neu aufbauen"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr "Tastencode ermitteln und einfügen"
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s kann die Taste \"%s\" nicht zuordnen\n"
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s kann die Taste \"%s\" nicht zuornen (ungültiger Funktionsname: \"%s\")\n"
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s nicht genügend Speicher für Tastenzuordnung\n"
diff --git a/po/es.po b/po/es.po
index 949b213bb..2129024fc 100644
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
"PO-Revision-Date: 2006-05-12 16:21+0200\n"
"Last-Translator: Roberto Gonzlez Cardenete <robert.glez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2519,194 +2519,198 @@ msgid "complete word"
msgstr "completar palabra"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "borrar el carcter anterior"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "borrar el carcter siguiente"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "borrar hasta fin de lnea"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "borrar hasta principio de lnea"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "borrar lnea entera"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "borrar la palabra anterior"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "borrar la palabra siguiente"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "pegar el contenido actual del portapapeles"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "transponer caracteres"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "ir al principio de lnea"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "ir al final de lnea"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "mover un carcter a la izquierda"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "mover a la palabra anterior"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "mover un carcter a la derecha"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "mover a la palabra siguiente"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "llamar al comando anterior en el historial"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "llamar al comando anterior en el historial global"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "llamar al comando siguiente en el historial"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "llamar al comando siguiente en el historial global"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "desplazarse una pgina hacia arriba"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "desplazarse una pgina hacia abajo"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
#, fuzzy
msgid "scroll a few lines up"
msgstr "desplazarse una pgina hacia arriba"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
#, fuzzy
msgid "scroll a few lines down"
msgstr "desplazarse una pgina hacia abajo"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
#, fuzzy
msgid "scroll to top of buffer"
msgstr "desplazarse al resaltado siguiente en el bfer"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
#, fuzzy
msgid "scroll to bottom of buffer"
msgstr "desplazarse al resaltado siguiente en el bfer"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "mostrar el principio de la lista de nicks"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "mostrar el final de la lista de nicks"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "desplazar la lista de nicks una pgina hacia arriba"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "desplazar la lista de nicks una pgina hacia abajo"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "saltar al bfer con actividad"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "saltar al bfer DCC"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr ""
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "saltar al ltimo bfer"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "saltar al bfer del servidor"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "saltar al servidor siguiente"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "seleccionar servidor activo en el bfer de servidores"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "desplazarse al resaltado anterior en el bfer"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "desplazarse al resaltado siguiente en el bfer"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "desplazarse a la primera lnea sin leer en el bfer"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "limpiar hotlist"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "limpiar barra de informacin"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "recargar la pantalla"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr "capturar una clave"
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s No ha sido posible atar la clave \"%s\"\n"
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s No ha sido posible atar la clave \"%s\" (nombre de funcin invlido: \"%s"
"\")\n"
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s no hay suficiente memoria para atar la clave\n"
diff --git a/po/fr.po b/po/fr.po
index e5a63f82e..2ea86f69d 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
-"PO-Revision-Date: 2006-05-12 16:21+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
+"PO-Revision-Date: 2006-05-13 01:53+0200\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -2494,189 +2494,193 @@ msgid "complete word"
msgstr "complter le mot"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr "trouver le mot complt prcdent"
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "effacer le caractre prcdent"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "effacer le caractre suivant"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "effacer jusqu' la fin de la ligne"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "effacer jusqu'au dbut de la ligne"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "effacer la ligne entire"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "effacer le mot prcdent"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "effacer le mot suivant"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "coller le contenu du presse-papier"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "inverser les caractres"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "aller au dbut de la ligne"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "aller la fin de la ligne"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "se dplacer d'un caractre gauche"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "se dplacer au mot prcdent"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "se dplacer d'un caractre droite"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "se dplacer au mot suivant"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "appeler la commande prcdente dans l'historique"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "appeler la commande prcdente dans l'historique global"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "appeler la commande suivante dans l'historique"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "appeler la commande suivante dans l'historique global"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "faire dfiler d'une page vers le haut"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "faire dfiler d'une page vers le bas"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
msgid "scroll a few lines up"
msgstr "faire dfiler de quelques lignes vers le haut"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
msgid "scroll a few lines down"
msgstr "faire dfiler de quelques lignes vers le bas"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
msgid "scroll to top of buffer"
msgstr "faire dfiler jusqu'au dbut du tampon"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
msgid "scroll to bottom of buffer"
msgstr "faire dfiler jusqu' la fin du tampon"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "afficher le dbut de la liste des pseudos"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "afficher la fin de la liste des pseudos"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "faire dfiler la liste des pseudos d'une page vers le haut"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "faire dfiler la liste des pseudos d'une page vers le bas"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "sauter au tampon avec de l'activit"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "sauter au tampon DCC"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr "sauter au tampon IRC brut"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "sauter au dernier tampon"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "sauter au tampon du serveur"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "sauter au prochain serveur"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "bascule de serveur actif sur le tampon des serveurs"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "scroller jusqu'au highlight prcdent du tampon"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "scroller jusqu'au highlight suivant du tampon"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "scroller jusqu' la premire ligne non lue du tampon"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "effacer la liste d'activit"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "effacer la barre d'infos"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "rafrachir l'cran"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr "capturer une touche"
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s impossible de crer la touche \"%s\"\n"
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s impossible de crer la touche \"%s\" (nom fonction incorrect: \"%s\")\n"
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s pas assez de mmoire pour la touche\n"
diff --git a/po/hu.po b/po/hu.po
index de6df5915..d232c0757 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
"PO-Revision-Date: 2006-05-12 16:21+0200\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2473,188 +2473,192 @@ msgid "complete word"
msgstr "szó kiegészítése"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "előző karakter törlése"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "következő karakter törlése"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "törlés a sor végéig"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "törlés a sor elejéig"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "egész sor törlése"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "előző szó törlése"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "következő szó törlése"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "következő vágólapelem beillesztése"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "karakterek felcserélése"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "ugrás a sor elejére"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "ugrás a sor végére"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "egy karaktert balra"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "ugrás az előző szóra"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "egy karaktert balra"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "ugrás a következő szóra"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "előző parancs hívása az előzményekből"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "előző parancs hívása a globális előzményekből"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "kövezkező parancs hívása az előzményekből"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "következő parancs hívása a globális előzményekből"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "ugrás egy oldallal feljebb"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "ugrás egy oldallal lejjebb"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
msgid "scroll a few lines up"
msgstr "ugrás néhány sorral feljebb"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
msgid "scroll a few lines down"
msgstr "ugrás néhány sorral lejjebb"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
msgid "scroll to top of buffer"
msgstr "ugrás a puffer tetejére"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
msgid "scroll to bottom of buffer"
msgstr "ugrás a puffer végére"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "névlista elejének mutatása"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "névlista végének mutatása"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "névlista görgetése egy oldallal feljebb"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "névlista görgetése egy oldallal lejjebb"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "ugrás aktív pufferre"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "ugrás a DCC pufferre"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr "ugrás a nyers IRC adat pufferre"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "ugrás az utolsó pufferre"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "ugrás a szerver pufferre"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "ugrás a következő szerverre"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "aktív szerverek változtatása a szerver pufferben"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "ugrás az előző kiemelésre a pufferben"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "ugrás a következő kiemelésre a pufferben"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "ugrás az első olvasatlan sorra a pufferben"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "hotlist törlése"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "információs pult törlése"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "képernyő frissítése"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr ""
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr ""
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr ""
diff --git a/po/ru.po b/po/ru.po
index cf8553f90..15fdec907 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
"PO-Revision-Date: 2006-05-12 16:21+0200\n"
"Last-Translator: Stalwart <stlwrt@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2460,190 +2460,194 @@ msgid "complete word"
msgstr "завершить слово"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "стереть предыдущий символ"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "стереть следующий символ"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "стереть до конца строки"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "стереть до начала строки"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "стереть всю строку"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "стереть предыдущее слово"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "стереть следующее слово"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "вставить содержимое буфера обмена"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "развернуть символы"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "перейти к началу строки"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "перейти к концу строки"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "перейти на 1 символ влево"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "перейти к предыдущему слову"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "перейти на 1 символ вправо"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "перейти к следующему слову"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "вызвать предыдущую команду из истории"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "вызвать предыдущую команду из глобальной истории"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "вызвать следующую команду из истории"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "вызвать следующую команду из глобальной истории"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "промотать 1 страницу вверх"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "промотать 1 страницу вниз"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
msgid "scroll a few lines up"
msgstr "промотать на несколько строк вверх"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
msgid "scroll a few lines down"
msgstr "промотать на несколько строк вниз"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
msgid "scroll to top of buffer"
msgstr "перемотать на начало буфера"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
msgid "scroll to bottom of buffer"
msgstr "перемотать на конец буфера"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "показать начало списка ников"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "показать конец списка ников"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "промотать список ников на 1 страницу вверх"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "промотать список ников на 1 страницу вниз"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "перейти к буферу с активностью:"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "перейти к буферу DCC"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr "перейти к буферу сырых данных IRC"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "перейти к последнему буферу"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "перейти к буферу сервера"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "перейти к следующему буферу"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "перейти к активному серверу в буфере серверов"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "промотать буфер до предыдущей подсветки"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "промотать буфер до следующей подсветки"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "перейти к первой непрочитанной строчке буфера"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "очистить хотлист"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "очистить информационную панель"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "обновить экран"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr "захватить клавишу"
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s не могу установить клавишу \"%s\"\n"
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s не могу установить клавишу \"%s\" (некорректное название функции: \"%s"
"\")\n"
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s недостаточно памяти для установки клавиши\n"
diff --git a/po/weechat.pot b/po/weechat.pot
index 63c4b8fff..9ccb5ea19 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: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+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"
@@ -2328,188 +2328,192 @@ msgid "complete word"
msgstr ""
#: src/gui/gui-keyboard.c:53
-msgid "delete previous char"
+msgid "find previous completion for word"
msgstr ""
#: src/gui/gui-keyboard.c:55
-msgid "delete next char"
+msgid "delete previous char"
msgstr ""
#: src/gui/gui-keyboard.c:57
-msgid "delete until end of line"
+msgid "delete next char"
msgstr ""
#: src/gui/gui-keyboard.c:59
-msgid "delete until beginning of line"
+msgid "delete until end of line"
msgstr ""
#: src/gui/gui-keyboard.c:61
-msgid "delete entire line"
+msgid "delete until beginning of line"
msgstr ""
#: src/gui/gui-keyboard.c:63
-msgid "delete previous word"
+msgid "delete entire line"
msgstr ""
#: src/gui/gui-keyboard.c:65
-msgid "delete next word"
+msgid "delete previous word"
msgstr ""
#: src/gui/gui-keyboard.c:67
-msgid "paste current clipboard content"
+msgid "delete next word"
msgstr ""
#: src/gui/gui-keyboard.c:69
-msgid "transpose chars"
+msgid "paste current clipboard content"
msgstr ""
#: src/gui/gui-keyboard.c:71
-msgid "go to beginning of line"
+msgid "transpose chars"
msgstr ""
#: src/gui/gui-keyboard.c:73
-msgid "go to end of line"
+msgid "go to beginning of line"
msgstr ""
#: src/gui/gui-keyboard.c:75
-msgid "move one char left"
+msgid "go to end of line"
msgstr ""
#: src/gui/gui-keyboard.c:77
-msgid "move to previous word"
+msgid "move one char left"
msgstr ""
#: src/gui/gui-keyboard.c:79
-msgid "move one char right"
+msgid "move to previous word"
msgstr ""
#: src/gui/gui-keyboard.c:81
-msgid "move to next word"
+msgid "move one char right"
msgstr ""
#: src/gui/gui-keyboard.c:83
-msgid "call previous command in history"
+msgid "move to next word"
msgstr ""
#: src/gui/gui-keyboard.c:85
-msgid "call previous command in global history"
+msgid "call previous command in history"
msgstr ""
#: src/gui/gui-keyboard.c:87
-msgid "call next command in history"
+msgid "call previous command in global history"
msgstr ""
#: src/gui/gui-keyboard.c:89
-msgid "call next command in global history"
+msgid "call next command in history"
msgstr ""
#: src/gui/gui-keyboard.c:91
-msgid "scroll one page up"
+msgid "call next command in global history"
msgstr ""
#: src/gui/gui-keyboard.c:93
-msgid "scroll one page down"
+msgid "scroll one page up"
msgstr ""
#: src/gui/gui-keyboard.c:95
-msgid "scroll a few lines up"
+msgid "scroll one page down"
msgstr ""
#: src/gui/gui-keyboard.c:97
-msgid "scroll a few lines down"
+msgid "scroll a few lines up"
msgstr ""
#: src/gui/gui-keyboard.c:99
-msgid "scroll to top of buffer"
+msgid "scroll a few lines down"
msgstr ""
#: src/gui/gui-keyboard.c:101
-msgid "scroll to bottom of buffer"
+msgid "scroll to top of buffer"
msgstr ""
#: src/gui/gui-keyboard.c:103
-msgid "display beginning of nicklist"
+msgid "scroll to bottom of buffer"
msgstr ""
#: src/gui/gui-keyboard.c:105
-msgid "display end of nicklist"
+msgid "display beginning of nicklist"
msgstr ""
#: src/gui/gui-keyboard.c:107
-msgid "scroll nicklist one page up"
+msgid "display end of nicklist"
msgstr ""
#: src/gui/gui-keyboard.c:109
-msgid "scroll nicklist one page down"
+msgid "scroll nicklist one page up"
msgstr ""
#: src/gui/gui-keyboard.c:111
-msgid "jump to buffer with activity"
+msgid "scroll nicklist one page down"
msgstr ""
#: src/gui/gui-keyboard.c:113
-msgid "jump to DCC buffer"
+msgid "jump to buffer with activity"
msgstr ""
#: src/gui/gui-keyboard.c:115
-msgid "jump to raw IRC data buffer"
+msgid "jump to DCC buffer"
msgstr ""
#: src/gui/gui-keyboard.c:117
-msgid "jump to last buffer"
+msgid "jump to raw IRC data buffer"
msgstr ""
#: src/gui/gui-keyboard.c:119
-msgid "jump to server buffer"
+msgid "jump to last buffer"
msgstr ""
#: src/gui/gui-keyboard.c:121
-msgid "jump to next server"
+msgid "jump to server buffer"
msgstr ""
#: src/gui/gui-keyboard.c:123
-msgid "switch active server on servers buffer"
+msgid "jump to next server"
msgstr ""
#: src/gui/gui-keyboard.c:125
-msgid "scroll to previous highlight in buffer"
+msgid "switch active server on servers buffer"
msgstr ""
#: src/gui/gui-keyboard.c:127
-msgid "scroll to next highlight in buffer"
+msgid "scroll to previous highlight in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:129
-msgid "scroll to first unread line in buffer"
+msgid "scroll to next highlight in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:131
-msgid "clear hotlist"
+msgid "scroll to first unread line in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:133
-msgid "clear infobar"
+msgid "clear hotlist"
msgstr ""
#: src/gui/gui-keyboard.c:135
-msgid "refresh screen"
+msgid "clear infobar"
msgstr ""
#: src/gui/gui-keyboard.c:137
+msgid "refresh screen"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr ""
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr ""
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr ""
diff --git a/src/common/completion.c b/src/common/completion.c
index 3d25b1e46..35e8abd72 100644
--- a/src/common/completion.c
+++ b/src/common/completion.c
@@ -56,6 +56,7 @@ completion_init (t_completion *completion, void *server, void *channel)
completion->position = -1;
completion->base_word = NULL;
completion->args = NULL;
+ completion->direction = 0;
completion->completion_list = NULL;
completion->last_completion = NULL;
@@ -177,6 +178,23 @@ completion_get_command_infos (t_completion *completion,
}
/*
+ * completion_list_add: add a word to completion word list
+ */
+
+void
+completion_list_add (t_completion *completion, char *word)
+{
+ if (!completion->base_word || !completion->base_word[0]
+ || (ascii_strncasecmp (completion->base_word, word,
+ strlen (completion->base_word)) == 0))
+ {
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ word);
+ }
+}
+
+/*
* completion_list_add_alias: add alias to completion list
*/
@@ -187,9 +205,7 @@ completion_list_add_alias (t_completion *completion)
for (ptr_alias = weechat_alias; ptr_alias; ptr_alias = ptr_alias->next_alias)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_alias->alias_name);
+ completion_list_add (completion, ptr_alias->alias_name);
}
}
@@ -204,9 +220,7 @@ completion_list_add_alias_cmd (t_completion *completion)
for (ptr_list = index_commands; ptr_list; ptr_list = ptr_list->next_weelist)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_list->data);
+ completion_list_add (completion, ptr_list->data);
}
}
@@ -218,9 +232,8 @@ void
completion_list_add_channel (t_completion *completion)
{
if (completion->channel)
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ((t_irc_channel *)(completion->channel))->name);
+ completion_list_add (completion,
+ ((t_irc_channel *)(completion->channel))->name);
}
/*
@@ -237,9 +250,7 @@ completion_list_add_server_channels (t_completion *completion)
for (ptr_channel = ((t_irc_server *)(completion->server))->channels;
ptr_channel; ptr_channel = ptr_channel->next_channel)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_channel->name);
+ completion_list_add (completion, ptr_channel->name);
}
}
}
@@ -273,9 +284,7 @@ completion_list_add_plugin_cmd (t_completion *completion)
ptr_handler; ptr_handler = ptr_handler->next_handler)
{
if (ptr_handler->type == HANDLER_COMMAND)
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_handler->command);
+ completion_list_add (completion, ptr_handler->command);
}
}
#else
@@ -296,9 +305,7 @@ completion_list_add_irc_cmd_sent (t_completion *completion)
for (i = 0; irc_commands[i].command_name; i++)
{
if (irc_commands[i].cmd_function_args || irc_commands[i].cmd_function_1arg)
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- irc_commands[i].command_name);
+ completion_list_add (completion, irc_commands[i].command_name);
}
}
@@ -314,9 +321,7 @@ completion_list_add_irc_cmd_recv (t_completion *completion)
for (i = 0; irc_commands[i].command_name; i++)
{
if (irc_commands[i].recv_function)
- weelist_add(&completion->completion_list,
- &completion->last_completion,
- irc_commands[i].command_name);
+ completion_list_add(completion, irc_commands[i].command_name);
}
}
@@ -331,9 +336,7 @@ completion_list_add_key_cmd (t_completion *completion)
for (i = 0; gui_key_functions[i].function_name; i++)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- gui_key_functions[i].function_name);
+ completion_list_add (completion, gui_key_functions[i].function_name);
}
}
@@ -353,17 +356,14 @@ completion_list_add_channel_nicks (t_completion *completion)
for (ptr_nick = ((t_irc_channel *)(completion->channel))->nicks;
ptr_nick; ptr_nick = ptr_nick->next_nick)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_nick->nick);
+ completion_list_add (completion, ptr_nick->nick);
}
}
if ((((t_irc_channel *)(completion->channel))->type == CHANNEL_TYPE_PRIVATE)
|| (((t_irc_channel *)(completion->channel))->type == CHANNEL_TYPE_DCC_CHAT))
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ((t_irc_channel *)(completion->channel))->name);
+ completion_list_add (completion,
+ ((t_irc_channel *)(completion->channel))->name);
}
completion->arg_is_nick = 1;
}
@@ -387,9 +387,7 @@ completion_list_add_channel_nicks_hosts (t_completion *completion)
for (ptr_nick = ((t_irc_channel *)(completion->channel))->nicks;
ptr_nick; ptr_nick = ptr_nick->next_nick)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_nick->nick);
+ completion_list_add (completion, ptr_nick->nick);
if (ptr_nick->host)
{
length = strlen (ptr_nick->nick) + 1 +
@@ -399,9 +397,7 @@ completion_list_add_channel_nicks_hosts (t_completion *completion)
{
snprintf (buf, length, "%s!%s",
ptr_nick->nick, ptr_nick->host);
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- buf);
+ completion_list_add (completion, buf);
free (buf);
}
}
@@ -410,9 +406,8 @@ completion_list_add_channel_nicks_hosts (t_completion *completion)
if ((((t_irc_channel *)(completion->channel))->type == CHANNEL_TYPE_PRIVATE)
|| (((t_irc_channel *)(completion->channel))->type == CHANNEL_TYPE_PRIVATE))
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ((t_irc_channel *)(completion->channel))->name);
+ completion_list_add (completion,
+ ((t_irc_channel *)(completion->channel))->name);
}
completion->arg_is_nick = 1;
}
@@ -436,9 +431,8 @@ completion_list_add_option (t_completion *completion)
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- weechat_options[i][j].option_name);
+ completion_list_add (completion,
+ weechat_options[i][j].option_name);
}
}
}
@@ -450,9 +444,7 @@ completion_list_add_option (t_completion *completion)
snprintf (option_name, sizeof (option_name), "%s.%s",
ptr_server->name,
weechat_options[CONFIG_SECTION_SERVER][i].option_name);
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- option_name);
+ completion_list_add (completion, option_name);
}
}
}
@@ -470,9 +462,7 @@ completion_list_add_plugin_option (t_completion *completion)
for (ptr_option = plugin_options; ptr_option;
ptr_option = ptr_option->next_option)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_option->name);
+ completion_list_add (completion, ptr_option->name);
}
#else
/* make gcc happy */
@@ -488,9 +478,7 @@ void
completion_list_add_part (t_completion *completion)
{
if (cfg_irc_default_msg_part && cfg_irc_default_msg_part[0])
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- cfg_irc_default_msg_part);
+ completion_list_add (completion, cfg_irc_default_msg_part);
}
/*
@@ -506,9 +494,7 @@ completion_list_add_plugin (t_completion *completion)
for (ptr_plugin = weechat_plugins; ptr_plugin;
ptr_plugin = ptr_plugin->next_plugin)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_plugin->name);
+ completion_list_add (completion, ptr_plugin->name);
}
#else
/* make gcc happy */
@@ -524,9 +510,7 @@ void
completion_list_add_quit (t_completion *completion)
{
if (cfg_irc_default_msg_quit && cfg_irc_default_msg_quit[0])
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- cfg_irc_default_msg_quit);
+ completion_list_add (completion, cfg_irc_default_msg_quit);
}
/*
@@ -537,9 +521,8 @@ void
completion_list_add_server (t_completion *completion)
{
if (completion->server)
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ((t_irc_server *)(completion->server))->name);
+ completion_list_add (completion,
+ ((t_irc_server *)(completion->server))->name);
}
/*
@@ -554,9 +537,7 @@ completion_list_add_servers (t_completion *completion)
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_server->name);
+ completion_list_add (completion, ptr_server->name);
}
}
@@ -582,9 +563,9 @@ completion_list_add_topic (t_completion *completion)
string2 = channel_iconv_decode ((t_irc_server *)(completion->server),
(t_irc_channel *)(completion->channel),
(string) ? string : ((t_irc_channel *)(completion->channel))->topic);
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- (string2) ? string2 : ((string) ? string : ((t_irc_channel *)(completion->channel))->topic));
+ completion_list_add (completion,
+ (string2) ? string2 : ((string) ?
+ string : ((t_irc_channel *)(completion->channel))->topic));
if (string)
free (string);
if (string2)
@@ -618,34 +599,26 @@ completion_list_add_option_value (t_completion *completion)
{
case OPTION_TYPE_BOOLEAN:
if (option_value && (*((int *)(option_value))))
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- "on");
+ completion_list_add (completion, "on");
else
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- "off");
+ completion_list_add (completion, "off");
break;
case OPTION_TYPE_INT:
snprintf (option_string, sizeof (option_string) - 1,
"%d", (option_value) ? *((int *)(option_value)) : option->default_int);
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- option_string);
+ completion_list_add (completion, option_string);
break;
case OPTION_TYPE_INT_WITH_STRING:
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- (option_value) ?
- option->array_values[*((int *)(option_value))] :
- option->array_values[option->default_int]);
+ completion_list_add (completion,
+ (option_value) ?
+ option->array_values[*((int *)(option_value))] :
+ option->array_values[option->default_int]);
break;
case OPTION_TYPE_COLOR:
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- (option_value) ?
- gui_color_get_name (*((int *)(option_value))) :
- option->default_string);
+ completion_list_add (completion,
+ (option_value) ?
+ gui_color_get_name (*((int *)(option_value))) :
+ option->default_string);
break;
case OPTION_TYPE_STRING:
snprintf (option_string, sizeof (option_string) - 1,
@@ -653,9 +626,7 @@ completion_list_add_option_value (t_completion *completion)
((option_value) && (*((char **)(option_value)))) ?
*((char **)(option_value)) :
option->default_string);
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- option_string);
+ completion_list_add (completion, option_string);
break;
}
}
@@ -683,9 +654,7 @@ completion_list_add_plugin_option_value (t_completion *completion)
ptr_option = plugin_config_search_internal (completion->args);
if (ptr_option)
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_option->value);
+ completion_list_add (completion, ptr_option->value);
if (pos)
pos[0] = ' ';
@@ -707,9 +676,7 @@ completion_list_add_weechat_cmd (t_completion *completion)
for (i = 0; weechat_commands[i].command_name; i++)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- weechat_commands[i].command_name);
+ completion_list_add (completion, weechat_commands[i].command_name);
}
}
@@ -1028,20 +995,35 @@ completion_command (t_completion *completion)
length = strlen (completion->base_word) - 1;
word_found_seen = 0;
other_completion = 0;
- for (ptr_weelist = index_commands; ptr_weelist; ptr_weelist = ptr_weelist->next_weelist)
+ if (completion->direction < 0)
+ ptr_weelist = last_index_command;
+ else
+ ptr_weelist = index_commands;
+ while (ptr_weelist)
{
if (ascii_strncasecmp (ptr_weelist->data, completion->base_word + 1, length) == 0)
{
if ((!completion->word_found) || word_found_seen)
{
completion->word_found = ptr_weelist->data;
- for (ptr_weelist2 = ptr_weelist->next_weelist; ptr_weelist2;
- ptr_weelist2 = ptr_weelist2->next_weelist)
+
+ if (completion->direction < 0)
+ ptr_weelist2 = ptr_weelist->prev_weelist;
+ else
+ ptr_weelist2 = ptr_weelist->next_weelist;
+
+ while (ptr_weelist2)
{
if (ascii_strncasecmp (ptr_weelist2->data,
- completion->base_word + 1, length) == 0)
+ completion->base_word + 1, length) == 0)
other_completion++;
+
+ if (completion->direction < 0)
+ ptr_weelist2 = ptr_weelist2->prev_weelist;
+ else
+ ptr_weelist2 = ptr_weelist2->next_weelist;
}
+
if (other_completion == 0)
completion->position = -1;
else
@@ -1054,6 +1036,11 @@ completion_command (t_completion *completion)
if (completion->word_found &&
(ascii_strcasecmp (ptr_weelist->data, completion->word_found) == 0))
word_found_seen = 1;
+
+ if (completion->direction < 0)
+ ptr_weelist = ptr_weelist->prev_weelist;
+ else
+ ptr_weelist = ptr_weelist->next_weelist;
}
if (completion->word_found)
{
@@ -1144,8 +1131,12 @@ completion_command_arg (t_completion *completion, int nick_completion)
length = strlen (completion->base_word);
word_found_seen = 0;
other_completion = 0;
- for (ptr_weelist = completion->completion_list; ptr_weelist;
- ptr_weelist = ptr_weelist->next_weelist)
+ if (completion->direction < 0)
+ ptr_weelist = completion->last_completion;
+ else
+ ptr_weelist = completion->completion_list;
+
+ while (ptr_weelist)
{
if ((nick_completion && (completion_nickncmp (completion->base_word, ptr_weelist->data, length) == 0))
|| ((!nick_completion) && (ascii_strncasecmp (completion->base_word, ptr_weelist->data, length) == 0)))
@@ -1153,15 +1144,26 @@ completion_command_arg (t_completion *completion, int nick_completion)
if ((!completion->word_found) || word_found_seen)
{
completion->word_found = ptr_weelist->data;
- for (ptr_weelist2 = ptr_weelist->next_weelist; ptr_weelist2;
- ptr_weelist2 = ptr_weelist2->next_weelist)
+
+ if (completion->direction < 0)
+ ptr_weelist2 = ptr_weelist->prev_weelist;
+ else
+ ptr_weelist2 = ptr_weelist->next_weelist;
+
+ while (ptr_weelist2)
{
if ((nick_completion
&& (completion_nickncmp (completion->base_word, ptr_weelist2->data, length) == 0))
|| ((!nick_completion)
&& (ascii_strncasecmp (completion->base_word, ptr_weelist2->data, length) == 0)))
other_completion++;
+
+ if (completion->direction < 0)
+ ptr_weelist2 = ptr_weelist2->prev_weelist;
+ else
+ ptr_weelist2 = ptr_weelist2->next_weelist;
}
+
if (other_completion == 0)
completion->position = -1;
else
@@ -1174,6 +1176,11 @@ completion_command_arg (t_completion *completion, int nick_completion)
if (completion->word_found &&
(ascii_strcasecmp (ptr_weelist->data, completion->word_found) == 0))
word_found_seen = 1;
+
+ if (completion->direction < 0)
+ ptr_weelist = ptr_weelist->prev_weelist;
+ else
+ ptr_weelist = ptr_weelist->next_weelist;
}
if (completion->word_found)
{
@@ -1214,9 +1221,13 @@ completion_nick (t_completion *completion)
length = strlen (completion->base_word);
word_found_seen = 0;
other_completion = 0;
+
+ if (completion->direction < 0)
+ ptr_nick = ((t_irc_channel *)(completion->channel))->last_nick;
+ else
+ ptr_nick = ((t_irc_channel *)(completion->channel))->nicks;
- for (ptr_nick = ((t_irc_channel *)(completion->channel))->nicks;
- ptr_nick; ptr_nick = ptr_nick->next_nick)
+ while (ptr_nick)
{
if (completion_nickncmp (completion->base_word, ptr_nick->nick, length) == 0)
{
@@ -1228,14 +1239,25 @@ completion_nick (t_completion *completion)
completion->position = -1;
return;
}
- for (ptr_nick2 = ptr_nick->next_nick; ptr_nick2;
- ptr_nick2 = ptr_nick2->next_nick)
+
+ if (completion->direction < 0)
+ ptr_nick2 = ptr_nick->prev_nick;
+ else
+ ptr_nick2 = ptr_nick->next_nick;
+
+ while (ptr_nick2)
{
if (completion_nickncmp (completion->base_word,
ptr_nick2->nick,
length) == 0)
other_completion++;
+
+ if (completion->direction < 0)
+ ptr_nick2 = ptr_nick2->prev_nick;
+ else
+ ptr_nick2 = ptr_nick2->next_nick;
}
+
if (other_completion == 0)
completion->position = -1;
else
@@ -1250,6 +1272,11 @@ completion_nick (t_completion *completion)
if (completion->word_found &&
(ascii_strcasecmp (ptr_nick->nick, completion->word_found) == 0))
word_found_seen = 1;
+
+ if (completion->direction < 0)
+ ptr_nick = ptr_nick->prev_nick;
+ else
+ ptr_nick = ptr_nick->next_nick;
}
if (completion->word_found)
{
@@ -1263,10 +1290,13 @@ completion_nick (t_completion *completion)
*/
void
-completion_search (t_completion *completion, char *buffer, int size, int pos)
+completion_search (t_completion *completion, int direction,
+ char *buffer, int size, int pos)
{
char *old_word_found;
+ completion->direction = direction;
+
/* if new completion => look for base word */
if (pos != completion->position)
{
diff --git a/src/common/completion.h b/src/common/completion.h
index 6880980fa..ea2e89add 100644
--- a/src/common/completion.h
+++ b/src/common/completion.h
@@ -43,6 +43,7 @@ struct t_completion
int base_word_pos; /* beggining of base word */
int position; /* position where Tab was pressed */
char *args; /* command line args (including base word) */
+ int direction; /* +1 = search next word, -1 = previous word */
/* for command argument completion */
t_weelist *completion_list; /* data list for completion */
@@ -57,6 +58,6 @@ struct t_completion
extern void completion_init (t_completion *, void *, void *);
extern void completion_free (t_completion *);
-extern void completion_search (t_completion *, char *, int, int);
+extern void completion_search (t_completion *, int, char *, int, int);
#endif /* completion.h */
diff --git a/src/gui/curses/gui-curses-keyboard.c b/src/gui/curses/gui-curses-keyboard.c
index 02a1c2f6c..25fe4ccfd 100644
--- a/src/gui/curses/gui-curses-keyboard.c
+++ b/src/gui/curses/gui-curses-keyboard.c
@@ -51,6 +51,7 @@ gui_keyboard_default_bindings ()
gui_keyboard_bind ( /* RC */ "ctrl-M", "return");
gui_keyboard_bind ( /* RC */ "ctrl-J", "return");
gui_keyboard_bind ( /* tab */ "ctrl-I", "tab");
+ gui_keyboard_bind ( /* s-tab */ "meta2-Z", "tab_previous");
gui_keyboard_bind ( /* basckp */ "ctrl-H", "backspace");
gui_keyboard_bind ( /* basckp */ "ctrl-?", "backspace");
gui_keyboard_bind ( /* del */ "meta2-3~", "delete");
diff --git a/src/gui/gui-action.c b/src/gui/gui-action.c
index b23d26354..75784c39d 100644
--- a/src/gui/gui-action.c
+++ b/src/gui/gui-action.c
@@ -125,114 +125,32 @@ gui_action_return (t_gui_window *window)
void
gui_action_tab (t_gui_window *window)
{
- int i;
+ if (window->buffer->has_input)
+ {
+ completion_search (&(window->buffer->completion), 1,
+ window->buffer->input_buffer,
+ window->buffer->input_buffer_size,
+ utf8_real_pos (window->buffer->input_buffer,
+ window->buffer->input_buffer_pos));
+ gui_input_complete (window);
+ }
+}
+/*
+ * gui_action_tab_previous: shift-tab key => find previous completion
+ */
+
+void
+gui_action_tab_previous (t_gui_window *window)
+{
if (window->buffer->has_input)
{
- completion_search (&(window->buffer->completion),
+ completion_search (&(window->buffer->completion), -1,
window->buffer->input_buffer,
window->buffer->input_buffer_size,
utf8_real_pos (window->buffer->input_buffer,
window->buffer->input_buffer_pos));
-
- if (window->buffer->completion.word_found)
- {
- /* replace word with new completed word into input buffer */
- if (window->buffer->completion.diff_size > 0)
- {
- window->buffer->input_buffer_size +=
- window->buffer->completion.diff_size;
- window->buffer->input_buffer_length +=
- window->buffer->completion.diff_length;
- gui_input_optimize_size (window->buffer);
- window->buffer->input_buffer[window->buffer->input_buffer_size] = '\0';
- window->buffer->input_buffer_color_mask[window->buffer->input_buffer_size] = '\0';
- for (i = window->buffer->input_buffer_size - 1;
- i >= window->buffer->completion.position_replace +
- (int)strlen (window->buffer->completion.word_found); i--)
- {
- window->buffer->input_buffer[i] =
- window->buffer->input_buffer[i - window->buffer->completion.diff_size];
- window->buffer->input_buffer_color_mask[i] =
- window->buffer->input_buffer_color_mask[i - window->buffer->completion.diff_size];
- }
- }
- else
- {
- for (i = window->buffer->completion.position_replace +
- strlen (window->buffer->completion.word_found);
- i < window->buffer->input_buffer_size; i++)
- {
- window->buffer->input_buffer[i] =
- window->buffer->input_buffer[i - window->buffer->completion.diff_size];
- window->buffer->input_buffer_color_mask[i] =
- window->buffer->input_buffer_color_mask[i - window->buffer->completion.diff_size];
- }
- window->buffer->input_buffer_size +=
- window->buffer->completion.diff_size;
- window->buffer->input_buffer_length +=
- window->buffer->completion.diff_length;
- gui_input_optimize_size (window->buffer);
- window->buffer->input_buffer[window->buffer->input_buffer_size] = '\0';
- window->buffer->input_buffer_color_mask[window->buffer->input_buffer_size] = '\0';
- }
-
- strncpy (window->buffer->input_buffer + window->buffer->completion.position_replace,
- window->buffer->completion.word_found,
- strlen (window->buffer->completion.word_found));
- for (i = 0; i < (int)strlen (window->buffer->completion.word_found); i++)
- {
- window->buffer->input_buffer_color_mask[window->buffer->completion.position_replace + i] = ' ';
- }
- window->buffer->input_buffer_pos =
- utf8_pos (window->buffer->input_buffer,
- window->buffer->completion.position_replace) +
- utf8_strlen (window->buffer->completion.word_found);
-
- /* position is < 0 this means only one word was found to complete,
- so reinit to stop completion */
- if (window->buffer->completion.position >= 0)
- window->buffer->completion.position =
- utf8_real_pos (window->buffer->input_buffer,
- window->buffer->input_buffer_pos);
-
- /* add space or completor to the end of completion, if needed */
- if ((window->buffer->completion.context == COMPLETION_COMMAND)
- || (window->buffer->completion.context == COMPLETION_COMMAND_ARG))
- {
- if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer,
- window->buffer->input_buffer_pos)] != ' ')
- gui_insert_string_input (window, " ",
- window->buffer->input_buffer_pos);
- if (window->buffer->completion.position >= 0)
- window->buffer->completion.position++;
- window->buffer->input_buffer_pos++;
- }
- else
- {
- /* add nick completor if position 0 and completing nick */
- if ((window->buffer->completion.base_word_pos == 0)
- && (window->buffer->completion.context == COMPLETION_NICK))
- {
- if (strncmp (utf8_add_offset (window->buffer->input_buffer,
- window->buffer->input_buffer_pos),
- cfg_look_nick_completor, strlen (cfg_look_nick_completor)) != 0)
- gui_insert_string_input (window, cfg_look_nick_completor,
- window->buffer->input_buffer_pos);
- if (window->buffer->completion.position >= 0)
- window->buffer->completion.position += strlen (cfg_look_nick_completor);
- window->buffer->input_buffer_pos += utf8_strlen (cfg_look_nick_completor);
- if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer,
- window->buffer->input_buffer_pos)] != ' ')
- gui_insert_string_input (window, " ",
- window->buffer->input_buffer_pos);
- if (window->buffer->completion.position >= 0)
- window->buffer->completion.position++;
- window->buffer->input_buffer_pos++;
- }
- }
- gui_input_draw (window->buffer, 0);
- }
+ gui_input_complete (window);
}
}
diff --git a/src/gui/gui-common.c b/src/gui/gui-common.c
index 8a4833d58..9d63e7d4b 100644
--- a/src/gui/gui-common.c
+++ b/src/gui/gui-common.c
@@ -553,6 +553,115 @@ gui_input_move (t_gui_buffer *buffer, char *target, char *source, int size)
}
/*
+ * gui_input_complete: complete a word in input buffer
+ */
+
+void
+gui_input_complete (t_gui_window *window)
+{
+ int i;
+
+ if (window->buffer->completion.word_found)
+ {
+ /* replace word with new completed word into input buffer */
+ if (window->buffer->completion.diff_size > 0)
+ {
+ window->buffer->input_buffer_size +=
+ window->buffer->completion.diff_size;
+ window->buffer->input_buffer_length +=
+ window->buffer->completion.diff_length;
+ gui_input_optimize_size (window->buffer);
+ window->buffer->input_buffer[window->buffer->input_buffer_size] = '\0';
+ window->buffer->input_buffer_color_mask[window->buffer->input_buffer_size] = '\0';
+ for (i = window->buffer->input_buffer_size - 1;
+ i >= window->buffer->completion.position_replace +
+ (int)strlen (window->buffer->completion.word_found); i--)
+ {
+ window->buffer->input_buffer[i] =
+ window->buffer->input_buffer[i - window->buffer->completion.diff_size];
+ window->buffer->input_buffer_color_mask[i] =
+ window->buffer->input_buffer_color_mask[i - window->buffer->completion.diff_size];
+ }
+ }
+ else
+ {
+ for (i = window->buffer->completion.position_replace +
+ strlen (window->buffer->completion.word_found);
+ i < window->buffer->input_buffer_size; i++)
+ {
+ window->buffer->input_buffer[i] =
+ window->buffer->input_buffer[i - window->buffer->completion.diff_size];
+ window->buffer->input_buffer_color_mask[i] =
+ window->buffer->input_buffer_color_mask[i - window->buffer->completion.diff_size];
+ }
+ window->buffer->input_buffer_size +=
+ window->buffer->completion.diff_size;
+ window->buffer->input_buffer_length +=
+ window->buffer->completion.diff_length;
+ gui_input_optimize_size (window->buffer);
+ window->buffer->input_buffer[window->buffer->input_buffer_size] = '\0';
+ window->buffer->input_buffer_color_mask[window->buffer->input_buffer_size] = '\0';
+ }
+
+ strncpy (window->buffer->input_buffer + window->buffer->completion.position_replace,
+ window->buffer->completion.word_found,
+ strlen (window->buffer->completion.word_found));
+ for (i = 0; i < (int)strlen (window->buffer->completion.word_found); i++)
+ {
+ window->buffer->input_buffer_color_mask[window->buffer->completion.position_replace + i] = ' ';
+ }
+ window->buffer->input_buffer_pos =
+ utf8_pos (window->buffer->input_buffer,
+ window->buffer->completion.position_replace) +
+ utf8_strlen (window->buffer->completion.word_found);
+
+ /* position is < 0 this means only one word was found to complete,
+ so reinit to stop completion */
+ if (window->buffer->completion.position >= 0)
+ window->buffer->completion.position =
+ utf8_real_pos (window->buffer->input_buffer,
+ window->buffer->input_buffer_pos);
+
+ /* add space or completor to the end of completion, if needed */
+ if ((window->buffer->completion.context == COMPLETION_COMMAND)
+ || (window->buffer->completion.context == COMPLETION_COMMAND_ARG))
+ {
+ if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer,
+ window->buffer->input_buffer_pos)] != ' ')
+ gui_insert_string_input (window, " ",
+ window->buffer->input_buffer_pos);
+ if (window->buffer->completion.position >= 0)
+ window->buffer->completion.position++;
+ window->buffer->input_buffer_pos++;
+ }
+ else
+ {
+ /* add nick completor if position 0 and completing nick */
+ if ((window->buffer->completion.base_word_pos == 0)
+ && (window->buffer->completion.context == COMPLETION_NICK))
+ {
+ if (strncmp (utf8_add_offset (window->buffer->input_buffer,
+ window->buffer->input_buffer_pos),
+ cfg_look_nick_completor, strlen (cfg_look_nick_completor)) != 0)
+ gui_insert_string_input (window, cfg_look_nick_completor,
+ window->buffer->input_buffer_pos);
+ if (window->buffer->completion.position >= 0)
+ window->buffer->completion.position += strlen (cfg_look_nick_completor);
+ window->buffer->input_buffer_pos += utf8_strlen (cfg_look_nick_completor);
+ if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer,
+ window->buffer->input_buffer_pos)] != ' ')
+ gui_insert_string_input (window, " ",
+ window->buffer->input_buffer_pos);
+ if (window->buffer->completion.position >= 0)
+ window->buffer->completion.position++;
+ window->buffer->input_buffer_pos++;
+ }
+ }
+ gui_input_draw (window->buffer, 0);
+ }
+}
+
+/*
* gui_exec_action_dcc: execute an action on a DCC after a user input
* return -1 if DCC buffer was closed due to action,
* 0 otherwise
diff --git a/src/gui/gui-keyboard.c b/src/gui/gui-keyboard.c
index d32bfda51..253c997b4 100644
--- a/src/gui/gui-keyboard.c
+++ b/src/gui/gui-keyboard.c
@@ -49,6 +49,8 @@ t_gui_key_function gui_key_functions[] =
N_("terminate line") },
{ "tab", gui_action_tab,
N_("complete word") },
+ { "tab_previous", gui_action_tab_previous,
+ N_("find previous completion for word") },
{ "backspace", gui_action_backspace,
N_("delete previous char") },
{ "delete", gui_action_delete,
diff --git a/src/gui/gui.h b/src/gui/gui.h
index 7781bb38b..ff3036a65 100644
--- a/src/gui/gui.h
+++ b/src/gui/gui.h
@@ -106,6 +106,7 @@ extern void gui_action_clipboard_copy (char *, int);
extern void gui_action_clipboard_paste (t_gui_window *);
extern void gui_action_return (t_gui_window *);
extern void gui_action_tab (t_gui_window *);
+extern void gui_action_tab_previous (t_gui_window *);
extern void gui_action_backspace (t_gui_window *);
extern void gui_action_delete (t_gui_window *);
extern void gui_action_delete_previous_word (t_gui_window *);
@@ -174,6 +175,7 @@ extern void gui_printf_raw_data (void *, int, char *);
extern void gui_input_optimize_size (t_gui_buffer *);
extern void gui_input_init_color_mask (t_gui_buffer *);
extern void gui_input_move (t_gui_buffer *, char *, char *, int );
+extern void gui_input_complete (t_gui_window *);
extern void gui_exec_action_dcc (t_gui_window *, char *);
extern void gui_exec_action_raw_data (t_gui_window *, char *);
extern int gui_insert_string_input (t_gui_window *, char *, int);
diff --git a/weechat/ChangeLog b/weechat/ChangeLog
index 8425a7a11..e46f6a1b3 100644
--- a/weechat/ChangeLog
+++ b/weechat/ChangeLog
@@ -1,9 +1,10 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
-ChangeLog - 2006-05-09
+ChangeLog - 2006-05-13
Version 0.1.9 (under dev!):
+ * added new key to find previous completion (shift-tab by default)
* fixed bug with long outgoing IRC messages (> 512 bytes) (bug #16358)
* fixed Ruby crash when handler does not return OK or KO (bug #16552)
* fixed UTF-8 display bug with chars using more than one cell on screen
diff --git a/weechat/doc/de/key_functions.xml b/weechat/doc/de/key_functions.xml
index 62172b7ed..8ef2afb0c 100644
--- a/weechat/doc/de/key_functions.xml
+++ b/weechat/doc/de/key_functions.xml
@@ -14,6 +14,10 @@
<entry>Wort vervollstndigen</entry>
</row>
<row>
+ <entry><literal>tab_previous</literal></entry>
+ <entry>find previous completion for word</entry>
+</row>
+<row>
<entry><literal>backspace</literal></entry>
<entry>vorheriges Zeichen lschen</entry>
</row>
diff --git a/weechat/doc/en/key_functions.xml b/weechat/doc/en/key_functions.xml
index 8efefad36..77f35e9e3 100644
--- a/weechat/doc/en/key_functions.xml
+++ b/weechat/doc/en/key_functions.xml
@@ -14,6 +14,10 @@
<entry>complete word</entry>
</row>
<row>
+ <entry><literal>tab_previous</literal></entry>
+ <entry>find previous completion for word</entry>
+</row>
+<row>
<entry><literal>backspace</literal></entry>
<entry>delete previous char</entry>
</row>
diff --git a/weechat/doc/fr/key_functions.xml b/weechat/doc/fr/key_functions.xml
index b5171bb9c..7437718ff 100644
--- a/weechat/doc/fr/key_functions.xml
+++ b/weechat/doc/fr/key_functions.xml
@@ -14,6 +14,10 @@
<entry>complter le mot</entry>
</row>
<row>
+ <entry><literal>tab_previous</literal></entry>
+ <entry>find previous completion for word</entry>
+</row>
+<row>
<entry><literal>backspace</literal></entry>
<entry>effacer le caractre prcdent</entry>
</row>
diff --git a/weechat/po/cs.po b/weechat/po/cs.po
index 814cfc0ba..25ca9fd1f 100644
--- a/weechat/po/cs.po
+++ b/weechat/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
"PO-Revision-Date: 2006-05-12 16:22+0200\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2470,188 +2470,192 @@ msgid "complete word"
msgstr "dokončit slovo"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "smazat předchozí znak"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "smazat další zank"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "smazat do konce řádku"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "smazat do začátku řádku"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "smazat celý řádek"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "smazat předchozí slovo"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "smazat další slovo"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "vložit aktuální obsah schránky"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "přesunout znaky"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "jdi na začátek řádky"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "jdi na konec řádky"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "posuň jeden znak vlevo"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "posuň na předchozí slovo"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "posuň jeden znak vpravo"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "posuň na další slovo"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "zavolej předchozí příkaz v historii"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "zavolej předchozí příkaz v globální historii"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "zavolej další příkaz v historii"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "zavolej další příkaz v globální historii"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "posuň o stránku nahoru"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "posuň o stránku dolů"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
msgid "scroll a few lines up"
msgstr "posuň o několik řádek nahoru"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
msgid "scroll a few lines down"
msgstr "posuň o několik řádek dolů"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
msgid "scroll to top of buffer"
msgstr "přesunout na vrch bufferu"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
msgid "scroll to bottom of buffer"
msgstr "přesunout na spodek bufferu"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "zobrazit začátek seznam přezdívek"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "zobrazit konec seznamu přezdívek"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "posuň seznam přezdívek o stránku nahoru"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "posuň seznam přezdívek o stránku dolů"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "skoč na buffer s aktivitou"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "skoč na DCC buffer"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr "skočit na čistý IRC data buffer"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "skoč na poslední buffer"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "skoč na buffer serveru"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "skoč na další server"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "přepnout aktivní server na buffer serverů"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "přesunout na předchozí zvýraznění v bufferu"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "přesunout na další zvýraznění v bufferu"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "přesunout na první nepřečtenout řádku v bufferu"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "vyčisti hotlist"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "vyčisti infobar"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "obnov obrazovku"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr "zachytit klávesu"
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s nemohu napojit kalávesu \"%s\"\n"
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr "%s nemohu napojit kalávesu \"%s\" (nevalidní jméno funkce: \"%s\")\n"
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s nedostatek paměti pro klávesovou zkratku\n"
diff --git a/weechat/po/de.po b/weechat/po/de.po
index 528d719cc..3f061828d 100644
--- a/weechat/po/de.po
+++ b/weechat/po/de.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
"PO-Revision-Date: 2006-05-12 16:22+0200\n"
"Last-Translator: Thomas Schütz <i18n@internet-villa.de>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2475,189 +2475,193 @@ msgid "complete word"
msgstr "Wort vervollständigen"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "vorheriges Zeichen löschen"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "nächstes Zeichen löschen"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "bis zum Zeilenende löschen"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "bis zum Zeilenanfang löschen"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "ganze Zeile löschen"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "vorheriges Wort löschen"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "nächstes Wort löschen"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "einfügen"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "Zeichen vertauschen"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "zum Zeilenanfang gehen"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "zum Zeilenende gehen"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "ein Zeichen nach links gehen"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "ein Wort nach links gehen"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "ein Zeichen nach rechts gehen"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "ein Wort nach rechts gehen"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "vorherigen Befehl aus dem Verlauf abfragen"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "vorherigen Befehl aus dem globalen Verlauf abfragen"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "nächsten Befehl aus dem Verlauf abfragen"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "nächsten Befehl aus dem globalen Verlauf abfragen"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "eine Seite hochscrollen"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "eine Seite herunterscrollen"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
msgid "scroll a few lines up"
msgstr "einige Zeilen hochscrollen"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
msgid "scroll a few lines down"
msgstr "einige Zeilen herunterscrollen"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
msgid "scroll to top of buffer"
msgstr "nach ganz oben scrollen"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
msgid "scroll to bottom of buffer"
msgstr "nach ganz unten scrollen"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "zum Anfang der Nicklist gehen"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "zum Ende der Nicklist gehen"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "Nickliste eine Seite hochscrollen"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "Nickliste eine Seite herunterscrollen"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "zu nächstem aktiven Puffer springen"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "zum DCC-Puffer springen"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr "gehe zum IRC-Rohdaten-Puffer"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "zum letzten Puffer springen"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "zum Serverpuffer springen"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "zum nächsten Server springen"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "wechsel den aktiven Server im Server-Puffer"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "scrolle zur vorherigen hervorhebung im Puffer"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "scrolle zur nächsten Hervorhebung im Puffer"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "scrolle zur ersten, ungelesenen Zeile im Puffer"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "Hotlist leeren"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "Infobar leeren"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "Bild neu aufbauen"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr "Tastencode ermitteln und einfügen"
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s kann die Taste \"%s\" nicht zuordnen\n"
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s kann die Taste \"%s\" nicht zuornen (ungültiger Funktionsname: \"%s\")\n"
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s nicht genügend Speicher für Tastenzuordnung\n"
diff --git a/weechat/po/es.po b/weechat/po/es.po
index 949b213bb..2129024fc 100644
--- a/weechat/po/es.po
+++ b/weechat/po/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
"PO-Revision-Date: 2006-05-12 16:21+0200\n"
"Last-Translator: Roberto Gonzlez Cardenete <robert.glez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2519,194 +2519,198 @@ msgid "complete word"
msgstr "completar palabra"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "borrar el carcter anterior"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "borrar el carcter siguiente"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "borrar hasta fin de lnea"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "borrar hasta principio de lnea"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "borrar lnea entera"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "borrar la palabra anterior"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "borrar la palabra siguiente"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "pegar el contenido actual del portapapeles"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "transponer caracteres"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "ir al principio de lnea"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "ir al final de lnea"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "mover un carcter a la izquierda"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "mover a la palabra anterior"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "mover un carcter a la derecha"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "mover a la palabra siguiente"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "llamar al comando anterior en el historial"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "llamar al comando anterior en el historial global"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "llamar al comando siguiente en el historial"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "llamar al comando siguiente en el historial global"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "desplazarse una pgina hacia arriba"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "desplazarse una pgina hacia abajo"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
#, fuzzy
msgid "scroll a few lines up"
msgstr "desplazarse una pgina hacia arriba"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
#, fuzzy
msgid "scroll a few lines down"
msgstr "desplazarse una pgina hacia abajo"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
#, fuzzy
msgid "scroll to top of buffer"
msgstr "desplazarse al resaltado siguiente en el bfer"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
#, fuzzy
msgid "scroll to bottom of buffer"
msgstr "desplazarse al resaltado siguiente en el bfer"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "mostrar el principio de la lista de nicks"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "mostrar el final de la lista de nicks"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "desplazar la lista de nicks una pgina hacia arriba"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "desplazar la lista de nicks una pgina hacia abajo"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "saltar al bfer con actividad"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "saltar al bfer DCC"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr ""
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "saltar al ltimo bfer"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "saltar al bfer del servidor"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "saltar al servidor siguiente"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "seleccionar servidor activo en el bfer de servidores"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "desplazarse al resaltado anterior en el bfer"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "desplazarse al resaltado siguiente en el bfer"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "desplazarse a la primera lnea sin leer en el bfer"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "limpiar hotlist"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "limpiar barra de informacin"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "recargar la pantalla"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr "capturar una clave"
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s No ha sido posible atar la clave \"%s\"\n"
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s No ha sido posible atar la clave \"%s\" (nombre de funcin invlido: \"%s"
"\")\n"
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s no hay suficiente memoria para atar la clave\n"
diff --git a/weechat/po/fr.po b/weechat/po/fr.po
index e5a63f82e..2ea86f69d 100644
--- a/weechat/po/fr.po
+++ b/weechat/po/fr.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
-"PO-Revision-Date: 2006-05-12 16:21+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
+"PO-Revision-Date: 2006-05-13 01:53+0200\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -2494,189 +2494,193 @@ msgid "complete word"
msgstr "complter le mot"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr "trouver le mot complt prcdent"
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "effacer le caractre prcdent"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "effacer le caractre suivant"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "effacer jusqu' la fin de la ligne"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "effacer jusqu'au dbut de la ligne"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "effacer la ligne entire"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "effacer le mot prcdent"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "effacer le mot suivant"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "coller le contenu du presse-papier"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "inverser les caractres"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "aller au dbut de la ligne"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "aller la fin de la ligne"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "se dplacer d'un caractre gauche"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "se dplacer au mot prcdent"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "se dplacer d'un caractre droite"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "se dplacer au mot suivant"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "appeler la commande prcdente dans l'historique"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "appeler la commande prcdente dans l'historique global"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "appeler la commande suivante dans l'historique"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "appeler la commande suivante dans l'historique global"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "faire dfiler d'une page vers le haut"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "faire dfiler d'une page vers le bas"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
msgid "scroll a few lines up"
msgstr "faire dfiler de quelques lignes vers le haut"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
msgid "scroll a few lines down"
msgstr "faire dfiler de quelques lignes vers le bas"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
msgid "scroll to top of buffer"
msgstr "faire dfiler jusqu'au dbut du tampon"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
msgid "scroll to bottom of buffer"
msgstr "faire dfiler jusqu' la fin du tampon"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "afficher le dbut de la liste des pseudos"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "afficher la fin de la liste des pseudos"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "faire dfiler la liste des pseudos d'une page vers le haut"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "faire dfiler la liste des pseudos d'une page vers le bas"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "sauter au tampon avec de l'activit"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "sauter au tampon DCC"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr "sauter au tampon IRC brut"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "sauter au dernier tampon"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "sauter au tampon du serveur"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "sauter au prochain serveur"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "bascule de serveur actif sur le tampon des serveurs"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "scroller jusqu'au highlight prcdent du tampon"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "scroller jusqu'au highlight suivant du tampon"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "scroller jusqu' la premire ligne non lue du tampon"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "effacer la liste d'activit"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "effacer la barre d'infos"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "rafrachir l'cran"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr "capturer une touche"
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s impossible de crer la touche \"%s\"\n"
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s impossible de crer la touche \"%s\" (nom fonction incorrect: \"%s\")\n"
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s pas assez de mmoire pour la touche\n"
diff --git a/weechat/po/hu.po b/weechat/po/hu.po
index de6df5915..d232c0757 100644
--- a/weechat/po/hu.po
+++ b/weechat/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
"PO-Revision-Date: 2006-05-12 16:21+0200\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2473,188 +2473,192 @@ msgid "complete word"
msgstr "szó kiegészítése"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "előző karakter törlése"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "következő karakter törlése"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "törlés a sor végéig"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "törlés a sor elejéig"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "egész sor törlése"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "előző szó törlése"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "következő szó törlése"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "következő vágólapelem beillesztése"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "karakterek felcserélése"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "ugrás a sor elejére"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "ugrás a sor végére"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "egy karaktert balra"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "ugrás az előző szóra"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "egy karaktert balra"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "ugrás a következő szóra"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "előző parancs hívása az előzményekből"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "előző parancs hívása a globális előzményekből"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "kövezkező parancs hívása az előzményekből"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "következő parancs hívása a globális előzményekből"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "ugrás egy oldallal feljebb"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "ugrás egy oldallal lejjebb"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
msgid "scroll a few lines up"
msgstr "ugrás néhány sorral feljebb"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
msgid "scroll a few lines down"
msgstr "ugrás néhány sorral lejjebb"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
msgid "scroll to top of buffer"
msgstr "ugrás a puffer tetejére"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
msgid "scroll to bottom of buffer"
msgstr "ugrás a puffer végére"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "névlista elejének mutatása"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "névlista végének mutatása"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "névlista görgetése egy oldallal feljebb"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "névlista görgetése egy oldallal lejjebb"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "ugrás aktív pufferre"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "ugrás a DCC pufferre"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr "ugrás a nyers IRC adat pufferre"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "ugrás az utolsó pufferre"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "ugrás a szerver pufferre"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "ugrás a következő szerverre"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "aktív szerverek változtatása a szerver pufferben"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "ugrás az előző kiemelésre a pufferben"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "ugrás a következő kiemelésre a pufferben"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "ugrás az első olvasatlan sorra a pufferben"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "hotlist törlése"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "információs pult törlése"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "képernyő frissítése"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr ""
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr ""
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr ""
diff --git a/weechat/po/ru.po b/weechat/po/ru.po
index cf8553f90..15fdec907 100644
--- a/weechat/po/ru.po
+++ b/weechat/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.9-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+0200\n"
"PO-Revision-Date: 2006-05-12 16:21+0200\n"
"Last-Translator: Stalwart <stlwrt@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2460,190 +2460,194 @@ msgid "complete word"
msgstr "завершить слово"
#: src/gui/gui-keyboard.c:53
+msgid "find previous completion for word"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:55
msgid "delete previous char"
msgstr "стереть предыдущий символ"
-#: src/gui/gui-keyboard.c:55
+#: src/gui/gui-keyboard.c:57
msgid "delete next char"
msgstr "стереть следующий символ"
-#: src/gui/gui-keyboard.c:57
+#: src/gui/gui-keyboard.c:59
msgid "delete until end of line"
msgstr "стереть до конца строки"
-#: src/gui/gui-keyboard.c:59
+#: src/gui/gui-keyboard.c:61
msgid "delete until beginning of line"
msgstr "стереть до начала строки"
-#: src/gui/gui-keyboard.c:61
+#: src/gui/gui-keyboard.c:63
msgid "delete entire line"
msgstr "стереть всю строку"
-#: src/gui/gui-keyboard.c:63
+#: src/gui/gui-keyboard.c:65
msgid "delete previous word"
msgstr "стереть предыдущее слово"
-#: src/gui/gui-keyboard.c:65
+#: src/gui/gui-keyboard.c:67
msgid "delete next word"
msgstr "стереть следующее слово"
-#: src/gui/gui-keyboard.c:67
+#: src/gui/gui-keyboard.c:69
msgid "paste current clipboard content"
msgstr "вставить содержимое буфера обмена"
-#: src/gui/gui-keyboard.c:69
+#: src/gui/gui-keyboard.c:71
msgid "transpose chars"
msgstr "развернуть символы"
-#: src/gui/gui-keyboard.c:71
+#: src/gui/gui-keyboard.c:73
msgid "go to beginning of line"
msgstr "перейти к началу строки"
-#: src/gui/gui-keyboard.c:73
+#: src/gui/gui-keyboard.c:75
msgid "go to end of line"
msgstr "перейти к концу строки"
-#: src/gui/gui-keyboard.c:75
+#: src/gui/gui-keyboard.c:77
msgid "move one char left"
msgstr "перейти на 1 символ влево"
-#: src/gui/gui-keyboard.c:77
+#: src/gui/gui-keyboard.c:79
msgid "move to previous word"
msgstr "перейти к предыдущему слову"
-#: src/gui/gui-keyboard.c:79
+#: src/gui/gui-keyboard.c:81
msgid "move one char right"
msgstr "перейти на 1 символ вправо"
-#: src/gui/gui-keyboard.c:81
+#: src/gui/gui-keyboard.c:83
msgid "move to next word"
msgstr "перейти к следующему слову"
-#: src/gui/gui-keyboard.c:83
+#: src/gui/gui-keyboard.c:85
msgid "call previous command in history"
msgstr "вызвать предыдущую команду из истории"
-#: src/gui/gui-keyboard.c:85
+#: src/gui/gui-keyboard.c:87
msgid "call previous command in global history"
msgstr "вызвать предыдущую команду из глобальной истории"
-#: src/gui/gui-keyboard.c:87
+#: src/gui/gui-keyboard.c:89
msgid "call next command in history"
msgstr "вызвать следующую команду из истории"
-#: src/gui/gui-keyboard.c:89
+#: src/gui/gui-keyboard.c:91
msgid "call next command in global history"
msgstr "вызвать следующую команду из глобальной истории"
-#: src/gui/gui-keyboard.c:91
+#: src/gui/gui-keyboard.c:93
msgid "scroll one page up"
msgstr "промотать 1 страницу вверх"
-#: src/gui/gui-keyboard.c:93
+#: src/gui/gui-keyboard.c:95
msgid "scroll one page down"
msgstr "промотать 1 страницу вниз"
-#: src/gui/gui-keyboard.c:95
+#: src/gui/gui-keyboard.c:97
msgid "scroll a few lines up"
msgstr "промотать на несколько строк вверх"
-#: src/gui/gui-keyboard.c:97
+#: src/gui/gui-keyboard.c:99
msgid "scroll a few lines down"
msgstr "промотать на несколько строк вниз"
-#: src/gui/gui-keyboard.c:99
+#: src/gui/gui-keyboard.c:101
msgid "scroll to top of buffer"
msgstr "перемотать на начало буфера"
-#: src/gui/gui-keyboard.c:101
+#: src/gui/gui-keyboard.c:103
msgid "scroll to bottom of buffer"
msgstr "перемотать на конец буфера"
-#: src/gui/gui-keyboard.c:103
+#: src/gui/gui-keyboard.c:105
msgid "display beginning of nicklist"
msgstr "показать начало списка ников"
-#: src/gui/gui-keyboard.c:105
+#: src/gui/gui-keyboard.c:107
msgid "display end of nicklist"
msgstr "показать конец списка ников"
-#: src/gui/gui-keyboard.c:107
+#: src/gui/gui-keyboard.c:109
msgid "scroll nicklist one page up"
msgstr "промотать список ников на 1 страницу вверх"
-#: src/gui/gui-keyboard.c:109
+#: src/gui/gui-keyboard.c:111
msgid "scroll nicklist one page down"
msgstr "промотать список ников на 1 страницу вниз"
-#: src/gui/gui-keyboard.c:111
+#: src/gui/gui-keyboard.c:113
msgid "jump to buffer with activity"
msgstr "перейти к буферу с активностью:"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:115
msgid "jump to DCC buffer"
msgstr "перейти к буферу DCC"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:117
msgid "jump to raw IRC data buffer"
msgstr "перейти к буферу сырых данных IRC"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:119
msgid "jump to last buffer"
msgstr "перейти к последнему буферу"
-#: src/gui/gui-keyboard.c:119
+#: src/gui/gui-keyboard.c:121
msgid "jump to server buffer"
msgstr "перейти к буферу сервера"
-#: src/gui/gui-keyboard.c:121
+#: src/gui/gui-keyboard.c:123
msgid "jump to next server"
msgstr "перейти к следующему буферу"
-#: src/gui/gui-keyboard.c:123
+#: src/gui/gui-keyboard.c:125
msgid "switch active server on servers buffer"
msgstr "перейти к активному серверу в буфере серверов"
-#: src/gui/gui-keyboard.c:125
+#: src/gui/gui-keyboard.c:127
msgid "scroll to previous highlight in buffer"
msgstr "промотать буфер до предыдущей подсветки"
-#: src/gui/gui-keyboard.c:127
+#: src/gui/gui-keyboard.c:129
msgid "scroll to next highlight in buffer"
msgstr "промотать буфер до следующей подсветки"
-#: src/gui/gui-keyboard.c:129
+#: src/gui/gui-keyboard.c:131
msgid "scroll to first unread line in buffer"
msgstr "перейти к первой непрочитанной строчке буфера"
-#: src/gui/gui-keyboard.c:131
+#: src/gui/gui-keyboard.c:133
msgid "clear hotlist"
msgstr "очистить хотлист"
-#: src/gui/gui-keyboard.c:133
+#: src/gui/gui-keyboard.c:135
msgid "clear infobar"
msgstr "очистить информационную панель"
-#: src/gui/gui-keyboard.c:135
+#: src/gui/gui-keyboard.c:137
msgid "refresh screen"
msgstr "обновить экран"
-#: src/gui/gui-keyboard.c:137
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr "захватить клавишу"
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s не могу установить клавишу \"%s\"\n"
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s не могу установить клавишу \"%s\" (некорректное название функции: \"%s"
"\")\n"
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s недостаточно памяти для установки клавиши\n"
diff --git a/weechat/po/weechat.pot b/weechat/po/weechat.pot
index 63c4b8fff..9ccb5ea19 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: 2006-05-12 15:09+0200\n"
+"POT-Creation-Date: 2006-05-13 01:52+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"
@@ -2328,188 +2328,192 @@ msgid "complete word"
msgstr ""
#: src/gui/gui-keyboard.c:53
-msgid "delete previous char"
+msgid "find previous completion for word"
msgstr ""
#: src/gui/gui-keyboard.c:55
-msgid "delete next char"
+msgid "delete previous char"
msgstr ""
#: src/gui/gui-keyboard.c:57
-msgid "delete until end of line"
+msgid "delete next char"
msgstr ""
#: src/gui/gui-keyboard.c:59
-msgid "delete until beginning of line"
+msgid "delete until end of line"
msgstr ""
#: src/gui/gui-keyboard.c:61
-msgid "delete entire line"
+msgid "delete until beginning of line"
msgstr ""
#: src/gui/gui-keyboard.c:63
-msgid "delete previous word"
+msgid "delete entire line"
msgstr ""
#: src/gui/gui-keyboard.c:65
-msgid "delete next word"
+msgid "delete previous word"
msgstr ""
#: src/gui/gui-keyboard.c:67
-msgid "paste current clipboard content"
+msgid "delete next word"
msgstr ""
#: src/gui/gui-keyboard.c:69
-msgid "transpose chars"
+msgid "paste current clipboard content"
msgstr ""
#: src/gui/gui-keyboard.c:71
-msgid "go to beginning of line"
+msgid "transpose chars"
msgstr ""
#: src/gui/gui-keyboard.c:73
-msgid "go to end of line"
+msgid "go to beginning of line"
msgstr ""
#: src/gui/gui-keyboard.c:75
-msgid "move one char left"
+msgid "go to end of line"
msgstr ""
#: src/gui/gui-keyboard.c:77
-msgid "move to previous word"
+msgid "move one char left"
msgstr ""
#: src/gui/gui-keyboard.c:79
-msgid "move one char right"
+msgid "move to previous word"
msgstr ""
#: src/gui/gui-keyboard.c:81
-msgid "move to next word"
+msgid "move one char right"
msgstr ""
#: src/gui/gui-keyboard.c:83
-msgid "call previous command in history"
+msgid "move to next word"
msgstr ""
#: src/gui/gui-keyboard.c:85
-msgid "call previous command in global history"
+msgid "call previous command in history"
msgstr ""
#: src/gui/gui-keyboard.c:87
-msgid "call next command in history"
+msgid "call previous command in global history"
msgstr ""
#: src/gui/gui-keyboard.c:89
-msgid "call next command in global history"
+msgid "call next command in history"
msgstr ""
#: src/gui/gui-keyboard.c:91
-msgid "scroll one page up"
+msgid "call next command in global history"
msgstr ""
#: src/gui/gui-keyboard.c:93
-msgid "scroll one page down"
+msgid "scroll one page up"
msgstr ""
#: src/gui/gui-keyboard.c:95
-msgid "scroll a few lines up"
+msgid "scroll one page down"
msgstr ""
#: src/gui/gui-keyboard.c:97
-msgid "scroll a few lines down"
+msgid "scroll a few lines up"
msgstr ""
#: src/gui/gui-keyboard.c:99
-msgid "scroll to top of buffer"
+msgid "scroll a few lines down"
msgstr ""
#: src/gui/gui-keyboard.c:101
-msgid "scroll to bottom of buffer"
+msgid "scroll to top of buffer"
msgstr ""
#: src/gui/gui-keyboard.c:103
-msgid "display beginning of nicklist"
+msgid "scroll to bottom of buffer"
msgstr ""
#: src/gui/gui-keyboard.c:105
-msgid "display end of nicklist"
+msgid "display beginning of nicklist"
msgstr ""
#: src/gui/gui-keyboard.c:107
-msgid "scroll nicklist one page up"
+msgid "display end of nicklist"
msgstr ""
#: src/gui/gui-keyboard.c:109
-msgid "scroll nicklist one page down"
+msgid "scroll nicklist one page up"
msgstr ""
#: src/gui/gui-keyboard.c:111
-msgid "jump to buffer with activity"
+msgid "scroll nicklist one page down"
msgstr ""
#: src/gui/gui-keyboard.c:113
-msgid "jump to DCC buffer"
+msgid "jump to buffer with activity"
msgstr ""
#: src/gui/gui-keyboard.c:115
-msgid "jump to raw IRC data buffer"
+msgid "jump to DCC buffer"
msgstr ""
#: src/gui/gui-keyboard.c:117
-msgid "jump to last buffer"
+msgid "jump to raw IRC data buffer"
msgstr ""
#: src/gui/gui-keyboard.c:119
-msgid "jump to server buffer"
+msgid "jump to last buffer"
msgstr ""
#: src/gui/gui-keyboard.c:121
-msgid "jump to next server"
+msgid "jump to server buffer"
msgstr ""
#: src/gui/gui-keyboard.c:123
-msgid "switch active server on servers buffer"
+msgid "jump to next server"
msgstr ""
#: src/gui/gui-keyboard.c:125
-msgid "scroll to previous highlight in buffer"
+msgid "switch active server on servers buffer"
msgstr ""
#: src/gui/gui-keyboard.c:127
-msgid "scroll to next highlight in buffer"
+msgid "scroll to previous highlight in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:129
-msgid "scroll to first unread line in buffer"
+msgid "scroll to next highlight in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:131
-msgid "clear hotlist"
+msgid "scroll to first unread line in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:133
-msgid "clear infobar"
+msgid "clear hotlist"
msgstr ""
#: src/gui/gui-keyboard.c:135
-msgid "refresh screen"
+msgid "clear infobar"
msgstr ""
#: src/gui/gui-keyboard.c:137
+msgid "refresh screen"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:139
msgid "grab a key"
msgstr ""
-#: src/gui/gui-keyboard.c:448 src/common/command.c:2615
+#: src/gui/gui-keyboard.c:450 src/common/command.c:2615
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr ""
-#: src/gui/gui-keyboard.c:459
+#: src/gui/gui-keyboard.c:461
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
-#: src/gui/gui-keyboard.c:472
+#: src/gui/gui-keyboard.c:474
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr ""
diff --git a/weechat/src/common/completion.c b/weechat/src/common/completion.c
index 3d25b1e46..35e8abd72 100644
--- a/weechat/src/common/completion.c
+++ b/weechat/src/common/completion.c
@@ -56,6 +56,7 @@ completion_init (t_completion *completion, void *server, void *channel)
completion->position = -1;
completion->base_word = NULL;
completion->args = NULL;
+ completion->direction = 0;
completion->completion_list = NULL;
completion->last_completion = NULL;
@@ -177,6 +178,23 @@ completion_get_command_infos (t_completion *completion,
}
/*
+ * completion_list_add: add a word to completion word list
+ */
+
+void
+completion_list_add (t_completion *completion, char *word)
+{
+ if (!completion->base_word || !completion->base_word[0]
+ || (ascii_strncasecmp (completion->base_word, word,
+ strlen (completion->base_word)) == 0))
+ {
+ weelist_add (&completion->completion_list,
+ &completion->last_completion,
+ word);
+ }
+}
+
+/*
* completion_list_add_alias: add alias to completion list
*/
@@ -187,9 +205,7 @@ completion_list_add_alias (t_completion *completion)
for (ptr_alias = weechat_alias; ptr_alias; ptr_alias = ptr_alias->next_alias)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_alias->alias_name);
+ completion_list_add (completion, ptr_alias->alias_name);
}
}
@@ -204,9 +220,7 @@ completion_list_add_alias_cmd (t_completion *completion)
for (ptr_list = index_commands; ptr_list; ptr_list = ptr_list->next_weelist)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_list->data);
+ completion_list_add (completion, ptr_list->data);
}
}
@@ -218,9 +232,8 @@ void
completion_list_add_channel (t_completion *completion)
{
if (completion->channel)
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ((t_irc_channel *)(completion->channel))->name);
+ completion_list_add (completion,
+ ((t_irc_channel *)(completion->channel))->name);
}
/*
@@ -237,9 +250,7 @@ completion_list_add_server_channels (t_completion *completion)
for (ptr_channel = ((t_irc_server *)(completion->server))->channels;
ptr_channel; ptr_channel = ptr_channel->next_channel)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_channel->name);
+ completion_list_add (completion, ptr_channel->name);
}
}
}
@@ -273,9 +284,7 @@ completion_list_add_plugin_cmd (t_completion *completion)
ptr_handler; ptr_handler = ptr_handler->next_handler)
{
if (ptr_handler->type == HANDLER_COMMAND)
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_handler->command);
+ completion_list_add (completion, ptr_handler->command);
}
}
#else
@@ -296,9 +305,7 @@ completion_list_add_irc_cmd_sent (t_completion *completion)
for (i = 0; irc_commands[i].command_name; i++)
{
if (irc_commands[i].cmd_function_args || irc_commands[i].cmd_function_1arg)
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- irc_commands[i].command_name);
+ completion_list_add (completion, irc_commands[i].command_name);
}
}
@@ -314,9 +321,7 @@ completion_list_add_irc_cmd_recv (t_completion *completion)
for (i = 0; irc_commands[i].command_name; i++)
{
if (irc_commands[i].recv_function)
- weelist_add(&completion->completion_list,
- &completion->last_completion,
- irc_commands[i].command_name);
+ completion_list_add(completion, irc_commands[i].command_name);
}
}
@@ -331,9 +336,7 @@ completion_list_add_key_cmd (t_completion *completion)
for (i = 0; gui_key_functions[i].function_name; i++)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- gui_key_functions[i].function_name);
+ completion_list_add (completion, gui_key_functions[i].function_name);
}
}
@@ -353,17 +356,14 @@ completion_list_add_channel_nicks (t_completion *completion)
for (ptr_nick = ((t_irc_channel *)(completion->channel))->nicks;
ptr_nick; ptr_nick = ptr_nick->next_nick)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_nick->nick);
+ completion_list_add (completion, ptr_nick->nick);
}
}
if ((((t_irc_channel *)(completion->channel))->type == CHANNEL_TYPE_PRIVATE)
|| (((t_irc_channel *)(completion->channel))->type == CHANNEL_TYPE_DCC_CHAT))
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ((t_irc_channel *)(completion->channel))->name);
+ completion_list_add (completion,
+ ((t_irc_channel *)(completion->channel))->name);
}
completion->arg_is_nick = 1;
}
@@ -387,9 +387,7 @@ completion_list_add_channel_nicks_hosts (t_completion *completion)
for (ptr_nick = ((t_irc_channel *)(completion->channel))->nicks;
ptr_nick; ptr_nick = ptr_nick->next_nick)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_nick->nick);
+ completion_list_add (completion, ptr_nick->nick);
if (ptr_nick->host)
{
length = strlen (ptr_nick->nick) + 1 +
@@ -399,9 +397,7 @@ completion_list_add_channel_nicks_hosts (t_completion *completion)
{
snprintf (buf, length, "%s!%s",
ptr_nick->nick, ptr_nick->host);
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- buf);
+ completion_list_add (completion, buf);
free (buf);
}
}
@@ -410,9 +406,8 @@ completion_list_add_channel_nicks_hosts (t_completion *completion)
if ((((t_irc_channel *)(completion->channel))->type == CHANNEL_TYPE_PRIVATE)
|| (((t_irc_channel *)(completion->channel))->type == CHANNEL_TYPE_PRIVATE))
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ((t_irc_channel *)(completion->channel))->name);
+ completion_list_add (completion,
+ ((t_irc_channel *)(completion->channel))->name);
}
completion->arg_is_nick = 1;
}
@@ -436,9 +431,8 @@ completion_list_add_option (t_completion *completion)
{
for (j = 0; weechat_options[i][j].option_name; j++)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- weechat_options[i][j].option_name);
+ completion_list_add (completion,
+ weechat_options[i][j].option_name);
}
}
}
@@ -450,9 +444,7 @@ completion_list_add_option (t_completion *completion)
snprintf (option_name, sizeof (option_name), "%s.%s",
ptr_server->name,
weechat_options[CONFIG_SECTION_SERVER][i].option_name);
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- option_name);
+ completion_list_add (completion, option_name);
}
}
}
@@ -470,9 +462,7 @@ completion_list_add_plugin_option (t_completion *completion)
for (ptr_option = plugin_options; ptr_option;
ptr_option = ptr_option->next_option)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_option->name);
+ completion_list_add (completion, ptr_option->name);
}
#else
/* make gcc happy */
@@ -488,9 +478,7 @@ void
completion_list_add_part (t_completion *completion)
{
if (cfg_irc_default_msg_part && cfg_irc_default_msg_part[0])
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- cfg_irc_default_msg_part);
+ completion_list_add (completion, cfg_irc_default_msg_part);
}
/*
@@ -506,9 +494,7 @@ completion_list_add_plugin (t_completion *completion)
for (ptr_plugin = weechat_plugins; ptr_plugin;
ptr_plugin = ptr_plugin->next_plugin)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_plugin->name);
+ completion_list_add (completion, ptr_plugin->name);
}
#else
/* make gcc happy */
@@ -524,9 +510,7 @@ void
completion_list_add_quit (t_completion *completion)
{
if (cfg_irc_default_msg_quit && cfg_irc_default_msg_quit[0])
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- cfg_irc_default_msg_quit);
+ completion_list_add (completion, cfg_irc_default_msg_quit);
}
/*
@@ -537,9 +521,8 @@ void
completion_list_add_server (t_completion *completion)
{
if (completion->server)
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ((t_irc_server *)(completion->server))->name);
+ completion_list_add (completion,
+ ((t_irc_server *)(completion->server))->name);
}
/*
@@ -554,9 +537,7 @@ completion_list_add_servers (t_completion *completion)
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_server->name);
+ completion_list_add (completion, ptr_server->name);
}
}
@@ -582,9 +563,9 @@ completion_list_add_topic (t_completion *completion)
string2 = channel_iconv_decode ((t_irc_server *)(completion->server),
(t_irc_channel *)(completion->channel),
(string) ? string : ((t_irc_channel *)(completion->channel))->topic);
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- (string2) ? string2 : ((string) ? string : ((t_irc_channel *)(completion->channel))->topic));
+ completion_list_add (completion,
+ (string2) ? string2 : ((string) ?
+ string : ((t_irc_channel *)(completion->channel))->topic));
if (string)
free (string);
if (string2)
@@ -618,34 +599,26 @@ completion_list_add_option_value (t_completion *completion)
{
case OPTION_TYPE_BOOLEAN:
if (option_value && (*((int *)(option_value))))
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- "on");
+ completion_list_add (completion, "on");
else
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- "off");
+ completion_list_add (completion, "off");
break;
case OPTION_TYPE_INT:
snprintf (option_string, sizeof (option_string) - 1,
"%d", (option_value) ? *((int *)(option_value)) : option->default_int);
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- option_string);
+ completion_list_add (completion, option_string);
break;
case OPTION_TYPE_INT_WITH_STRING:
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- (option_value) ?
- option->array_values[*((int *)(option_value))] :
- option->array_values[option->default_int]);
+ completion_list_add (completion,
+ (option_value) ?
+ option->array_values[*((int *)(option_value))] :
+ option->array_values[option->default_int]);
break;
case OPTION_TYPE_COLOR:
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- (option_value) ?
- gui_color_get_name (*((int *)(option_value))) :
- option->default_string);
+ completion_list_add (completion,
+ (option_value) ?
+ gui_color_get_name (*((int *)(option_value))) :
+ option->default_string);
break;
case OPTION_TYPE_STRING:
snprintf (option_string, sizeof (option_string) - 1,
@@ -653,9 +626,7 @@ completion_list_add_option_value (t_completion *completion)
((option_value) && (*((char **)(option_value)))) ?
*((char **)(option_value)) :
option->default_string);
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- option_string);
+ completion_list_add (completion, option_string);
break;
}
}
@@ -683,9 +654,7 @@ completion_list_add_plugin_option_value (t_completion *completion)
ptr_option = plugin_config_search_internal (completion->args);
if (ptr_option)
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- ptr_option->value);
+ completion_list_add (completion, ptr_option->value);
if (pos)
pos[0] = ' ';
@@ -707,9 +676,7 @@ completion_list_add_weechat_cmd (t_completion *completion)
for (i = 0; weechat_commands[i].command_name; i++)
{
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- weechat_commands[i].command_name);
+ completion_list_add (completion, weechat_commands[i].command_name);
}
}
@@ -1028,20 +995,35 @@ completion_command (t_completion *completion)
length = strlen (completion->base_word) - 1;
word_found_seen = 0;
other_completion = 0;
- for (ptr_weelist = index_commands; ptr_weelist; ptr_weelist = ptr_weelist->next_weelist)
+ if (completion->direction < 0)
+ ptr_weelist = last_index_command;
+ else
+ ptr_weelist = index_commands;
+ while (ptr_weelist)
{
if (ascii_strncasecmp (ptr_weelist->data, completion->base_word + 1, length) == 0)
{
if ((!completion->word_found) || word_found_seen)
{
completion->word_found = ptr_weelist->data;
- for (ptr_weelist2 = ptr_weelist->next_weelist; ptr_weelist2;
- ptr_weelist2 = ptr_weelist2->next_weelist)
+
+ if (completion->direction < 0)
+ ptr_weelist2 = ptr_weelist->prev_weelist;
+ else
+ ptr_weelist2 = ptr_weelist->next_weelist;
+
+ while (ptr_weelist2)
{
if (ascii_strncasecmp (ptr_weelist2->data,
- completion->base_word + 1, length) == 0)
+ completion->base_word + 1, length) == 0)
other_completion++;
+
+ if (completion->direction < 0)
+ ptr_weelist2 = ptr_weelist2->prev_weelist;
+ else
+ ptr_weelist2 = ptr_weelist2->next_weelist;
}
+
if (other_completion == 0)
completion->position = -1;
else
@@ -1054,6 +1036,11 @@ completion_command (t_completion *completion)
if (completion->word_found &&
(ascii_strcasecmp (ptr_weelist->data, completion->word_found) == 0))
word_found_seen = 1;
+
+ if (completion->direction < 0)
+ ptr_weelist = ptr_weelist->prev_weelist;
+ else
+ ptr_weelist = ptr_weelist->next_weelist;
}
if (completion->word_found)
{
@@ -1144,8 +1131,12 @@ completion_command_arg (t_completion *completion, int nick_completion)
length = strlen (completion->base_word);
word_found_seen = 0;
other_completion = 0;
- for (ptr_weelist = completion->completion_list; ptr_weelist;
- ptr_weelist = ptr_weelist->next_weelist)
+ if (completion->direction < 0)
+ ptr_weelist = completion->last_completion;
+ else
+ ptr_weelist = completion->completion_list;
+
+ while (ptr_weelist)
{
if ((nick_completion && (completion_nickncmp (completion->base_word, ptr_weelist->data, length) == 0))
|| ((!nick_completion) && (ascii_strncasecmp (completion->base_word, ptr_weelist->data, length) == 0)))
@@ -1153,15 +1144,26 @@ completion_command_arg (t_completion *completion, int nick_completion)
if ((!completion->word_found) || word_found_seen)
{
completion->word_found = ptr_weelist->data;
- for (ptr_weelist2 = ptr_weelist->next_weelist; ptr_weelist2;
- ptr_weelist2 = ptr_weelist2->next_weelist)
+
+ if (completion->direction < 0)
+ ptr_weelist2 = ptr_weelist->prev_weelist;
+ else
+ ptr_weelist2 = ptr_weelist->next_weelist;
+
+ while (ptr_weelist2)
{
if ((nick_completion
&& (completion_nickncmp (completion->base_word, ptr_weelist2->data, length) == 0))
|| ((!nick_completion)
&& (ascii_strncasecmp (completion->base_word, ptr_weelist2->data, length) == 0)))
other_completion++;
+
+ if (completion->direction < 0)
+ ptr_weelist2 = ptr_weelist2->prev_weelist;
+ else
+ ptr_weelist2 = ptr_weelist2->next_weelist;
}
+
if (other_completion == 0)
completion->position = -1;
else
@@ -1174,6 +1176,11 @@ completion_command_arg (t_completion *completion, int nick_completion)
if (completion->word_found &&
(ascii_strcasecmp (ptr_weelist->data, completion->word_found) == 0))
word_found_seen = 1;
+
+ if (completion->direction < 0)
+ ptr_weelist = ptr_weelist->prev_weelist;
+ else
+ ptr_weelist = ptr_weelist->next_weelist;
}
if (completion->word_found)
{
@@ -1214,9 +1221,13 @@ completion_nick (t_completion *completion)
length = strlen (completion->base_word);
word_found_seen = 0;
other_completion = 0;
+
+ if (completion->direction < 0)
+ ptr_nick = ((t_irc_channel *)(completion->channel))->last_nick;
+ else
+ ptr_nick = ((t_irc_channel *)(completion->channel))->nicks;
- for (ptr_nick = ((t_irc_channel *)(completion->channel))->nicks;
- ptr_nick; ptr_nick = ptr_nick->next_nick)
+ while (ptr_nick)
{
if (completion_nickncmp (completion->base_word, ptr_nick->nick, length) == 0)
{
@@ -1228,14 +1239,25 @@ completion_nick (t_completion *completion)
completion->position = -1;
return;
}
- for (ptr_nick2 = ptr_nick->next_nick; ptr_nick2;
- ptr_nick2 = ptr_nick2->next_nick)
+
+ if (completion->direction < 0)
+ ptr_nick2 = ptr_nick->prev_nick;
+ else
+ ptr_nick2 = ptr_nick->next_nick;
+
+ while (ptr_nick2)
{
if (completion_nickncmp (completion->base_word,
ptr_nick2->nick,
length) == 0)
other_completion++;
+
+ if (completion->direction < 0)
+ ptr_nick2 = ptr_nick2->prev_nick;
+ else
+ ptr_nick2 = ptr_nick2->next_nick;
}
+
if (other_completion == 0)
completion->position = -1;
else
@@ -1250,6 +1272,11 @@ completion_nick (t_completion *completion)
if (completion->word_found &&
(ascii_strcasecmp (ptr_nick->nick, completion->word_found) == 0))
word_found_seen = 1;
+
+ if (completion->direction < 0)
+ ptr_nick = ptr_nick->prev_nick;
+ else
+ ptr_nick = ptr_nick->next_nick;
}
if (completion->word_found)
{
@@ -1263,10 +1290,13 @@ completion_nick (t_completion *completion)
*/
void
-completion_search (t_completion *completion, char *buffer, int size, int pos)
+completion_search (t_completion *completion, int direction,
+ char *buffer, int size, int pos)
{
char *old_word_found;
+ completion->direction = direction;
+
/* if new completion => look for base word */
if (pos != completion->position)
{
diff --git a/weechat/src/common/completion.h b/weechat/src/common/completion.h
index 6880980fa..ea2e89add 100644
--- a/weechat/src/common/completion.h
+++ b/weechat/src/common/completion.h
@@ -43,6 +43,7 @@ struct t_completion
int base_word_pos; /* beggining of base word */
int position; /* position where Tab was pressed */
char *args; /* command line args (including base word) */
+ int direction; /* +1 = search next word, -1 = previous word */
/* for command argument completion */
t_weelist *completion_list; /* data list for completion */
@@ -57,6 +58,6 @@ struct t_completion
extern void completion_init (t_completion *, void *, void *);
extern void completion_free (t_completion *);
-extern void completion_search (t_completion *, char *, int, int);
+extern void completion_search (t_completion *, int, char *, int, int);
#endif /* completion.h */
diff --git a/weechat/src/gui/curses/gui-curses-keyboard.c b/weechat/src/gui/curses/gui-curses-keyboard.c
index 02a1c2f6c..25fe4ccfd 100644
--- a/weechat/src/gui/curses/gui-curses-keyboard.c
+++ b/weechat/src/gui/curses/gui-curses-keyboard.c
@@ -51,6 +51,7 @@ gui_keyboard_default_bindings ()
gui_keyboard_bind ( /* RC */ "ctrl-M", "return");
gui_keyboard_bind ( /* RC */ "ctrl-J", "return");
gui_keyboard_bind ( /* tab */ "ctrl-I", "tab");
+ gui_keyboard_bind ( /* s-tab */ "meta2-Z", "tab_previous");
gui_keyboard_bind ( /* basckp */ "ctrl-H", "backspace");
gui_keyboard_bind ( /* basckp */ "ctrl-?", "backspace");
gui_keyboard_bind ( /* del */ "meta2-3~", "delete");
diff --git a/weechat/src/gui/gui-action.c b/weechat/src/gui/gui-action.c
index b23d26354..75784c39d 100644
--- a/weechat/src/gui/gui-action.c
+++ b/weechat/src/gui/gui-action.c
@@ -125,114 +125,32 @@ gui_action_return (t_gui_window *window)
void
gui_action_tab (t_gui_window *window)
{
- int i;
+ if (window->buffer->has_input)
+ {
+ completion_search (&(window->buffer->completion), 1,
+ window->buffer->input_buffer,
+ window->buffer->input_buffer_size,
+ utf8_real_pos (window->buffer->input_buffer,
+ window->buffer->input_buffer_pos));
+ gui_input_complete (window);
+ }
+}
+/*
+ * gui_action_tab_previous: shift-tab key => find previous completion
+ */
+
+void
+gui_action_tab_previous (t_gui_window *window)
+{
if (window->buffer->has_input)
{
- completion_search (&(window->buffer->completion),
+ completion_search (&(window->buffer->completion), -1,
window->buffer->input_buffer,
window->buffer->input_buffer_size,
utf8_real_pos (window->buffer->input_buffer,
window->buffer->input_buffer_pos));
-
- if (window->buffer->completion.word_found)
- {
- /* replace word with new completed word into input buffer */
- if (window->buffer->completion.diff_size > 0)
- {
- window->buffer->input_buffer_size +=
- window->buffer->completion.diff_size;
- window->buffer->input_buffer_length +=
- window->buffer->completion.diff_length;
- gui_input_optimize_size (window->buffer);
- window->buffer->input_buffer[window->buffer->input_buffer_size] = '\0';
- window->buffer->input_buffer_color_mask[window->buffer->input_buffer_size] = '\0';
- for (i = window->buffer->input_buffer_size - 1;
- i >= window->buffer->completion.position_replace +
- (int)strlen (window->buffer->completion.word_found); i--)
- {
- window->buffer->input_buffer[i] =
- window->buffer->input_buffer[i - window->buffer->completion.diff_size];
- window->buffer->input_buffer_color_mask[i] =
- window->buffer->input_buffer_color_mask[i - window->buffer->completion.diff_size];
- }
- }
- else
- {
- for (i = window->buffer->completion.position_replace +
- strlen (window->buffer->completion.word_found);
- i < window->buffer->input_buffer_size; i++)
- {
- window->buffer->input_buffer[i] =
- window->buffer->input_buffer[i - window->buffer->completion.diff_size];
- window->buffer->input_buffer_color_mask[i] =
- window->buffer->input_buffer_color_mask[i - window->buffer->completion.diff_size];
- }
- window->buffer->input_buffer_size +=
- window->buffer->completion.diff_size;
- window->buffer->input_buffer_length +=
- window->buffer->completion.diff_length;
- gui_input_optimize_size (window->buffer);
- window->buffer->input_buffer[window->buffer->input_buffer_size] = '\0';
- window->buffer->input_buffer_color_mask[window->buffer->input_buffer_size] = '\0';
- }
-
- strncpy (window->buffer->input_buffer + window->buffer->completion.position_replace,
- window->buffer->completion.word_found,
- strlen (window->buffer->completion.word_found));
- for (i = 0; i < (int)strlen (window->buffer->completion.word_found); i++)
- {
- window->buffer->input_buffer_color_mask[window->buffer->completion.position_replace + i] = ' ';
- }
- window->buffer->input_buffer_pos =
- utf8_pos (window->buffer->input_buffer,
- window->buffer->completion.position_replace) +
- utf8_strlen (window->buffer->completion.word_found);
-
- /* position is < 0 this means only one word was found to complete,
- so reinit to stop completion */
- if (window->buffer->completion.position >= 0)
- window->buffer->completion.position =
- utf8_real_pos (window->buffer->input_buffer,
- window->buffer->input_buffer_pos);
-
- /* add space or completor to the end of completion, if needed */
- if ((window->buffer->completion.context == COMPLETION_COMMAND)
- || (window->buffer->completion.context == COMPLETION_COMMAND_ARG))
- {
- if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer,
- window->buffer->input_buffer_pos)] != ' ')
- gui_insert_string_input (window, " ",
- window->buffer->input_buffer_pos);
- if (window->buffer->completion.position >= 0)
- window->buffer->completion.position++;
- window->buffer->input_buffer_pos++;
- }
- else
- {
- /* add nick completor if position 0 and completing nick */
- if ((window->buffer->completion.base_word_pos == 0)
- && (window->buffer->completion.context == COMPLETION_NICK))
- {
- if (strncmp (utf8_add_offset (window->buffer->input_buffer,
- window->buffer->input_buffer_pos),
- cfg_look_nick_completor, strlen (cfg_look_nick_completor)) != 0)
- gui_insert_string_input (window, cfg_look_nick_completor,
- window->buffer->input_buffer_pos);
- if (window->buffer->completion.position >= 0)
- window->buffer->completion.position += strlen (cfg_look_nick_completor);
- window->buffer->input_buffer_pos += utf8_strlen (cfg_look_nick_completor);
- if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer,
- window->buffer->input_buffer_pos)] != ' ')
- gui_insert_string_input (window, " ",
- window->buffer->input_buffer_pos);
- if (window->buffer->completion.position >= 0)
- window->buffer->completion.position++;
- window->buffer->input_buffer_pos++;
- }
- }
- gui_input_draw (window->buffer, 0);
- }
+ gui_input_complete (window);
}
}
diff --git a/weechat/src/gui/gui-common.c b/weechat/src/gui/gui-common.c
index 8a4833d58..9d63e7d4b 100644
--- a/weechat/src/gui/gui-common.c
+++ b/weechat/src/gui/gui-common.c
@@ -553,6 +553,115 @@ gui_input_move (t_gui_buffer *buffer, char *target, char *source, int size)
}
/*
+ * gui_input_complete: complete a word in input buffer
+ */
+
+void
+gui_input_complete (t_gui_window *window)
+{
+ int i;
+
+ if (window->buffer->completion.word_found)
+ {
+ /* replace word with new completed word into input buffer */
+ if (window->buffer->completion.diff_size > 0)
+ {
+ window->buffer->input_buffer_size +=
+ window->buffer->completion.diff_size;
+ window->buffer->input_buffer_length +=
+ window->buffer->completion.diff_length;
+ gui_input_optimize_size (window->buffer);
+ window->buffer->input_buffer[window->buffer->input_buffer_size] = '\0';
+ window->buffer->input_buffer_color_mask[window->buffer->input_buffer_size] = '\0';
+ for (i = window->buffer->input_buffer_size - 1;
+ i >= window->buffer->completion.position_replace +
+ (int)strlen (window->buffer->completion.word_found); i--)
+ {
+ window->buffer->input_buffer[i] =
+ window->buffer->input_buffer[i - window->buffer->completion.diff_size];
+ window->buffer->input_buffer_color_mask[i] =
+ window->buffer->input_buffer_color_mask[i - window->buffer->completion.diff_size];
+ }
+ }
+ else
+ {
+ for (i = window->buffer->completion.position_replace +
+ strlen (window->buffer->completion.word_found);
+ i < window->buffer->input_buffer_size; i++)
+ {
+ window->buffer->input_buffer[i] =
+ window->buffer->input_buffer[i - window->buffer->completion.diff_size];
+ window->buffer->input_buffer_color_mask[i] =
+ window->buffer->input_buffer_color_mask[i - window->buffer->completion.diff_size];
+ }
+ window->buffer->input_buffer_size +=
+ window->buffer->completion.diff_size;
+ window->buffer->input_buffer_length +=
+ window->buffer->completion.diff_length;
+ gui_input_optimize_size (window->buffer);
+ window->buffer->input_buffer[window->buffer->input_buffer_size] = '\0';
+ window->buffer->input_buffer_color_mask[window->buffer->input_buffer_size] = '\0';
+ }
+
+ strncpy (window->buffer->input_buffer + window->buffer->completion.position_replace,
+ window->buffer->completion.word_found,
+ strlen (window->buffer->completion.word_found));
+ for (i = 0; i < (int)strlen (window->buffer->completion.word_found); i++)
+ {
+ window->buffer->input_buffer_color_mask[window->buffer->completion.position_replace + i] = ' ';
+ }
+ window->buffer->input_buffer_pos =
+ utf8_pos (window->buffer->input_buffer,
+ window->buffer->completion.position_replace) +
+ utf8_strlen (window->buffer->completion.word_found);
+
+ /* position is < 0 this means only one word was found to complete,
+ so reinit to stop completion */
+ if (window->buffer->completion.position >= 0)
+ window->buffer->completion.position =
+ utf8_real_pos (window->buffer->input_buffer,
+ window->buffer->input_buffer_pos);
+
+ /* add space or completor to the end of completion, if needed */
+ if ((window->buffer->completion.context == COMPLETION_COMMAND)
+ || (window->buffer->completion.context == COMPLETION_COMMAND_ARG))
+ {
+ if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer,
+ window->buffer->input_buffer_pos)] != ' ')
+ gui_insert_string_input (window, " ",
+ window->buffer->input_buffer_pos);
+ if (window->buffer->completion.position >= 0)
+ window->buffer->completion.position++;
+ window->buffer->input_buffer_pos++;
+ }
+ else
+ {
+ /* add nick completor if position 0 and completing nick */
+ if ((window->buffer->completion.base_word_pos == 0)
+ && (window->buffer->completion.context == COMPLETION_NICK))
+ {
+ if (strncmp (utf8_add_offset (window->buffer->input_buffer,
+ window->buffer->input_buffer_pos),
+ cfg_look_nick_completor, strlen (cfg_look_nick_completor)) != 0)
+ gui_insert_string_input (window, cfg_look_nick_completor,
+ window->buffer->input_buffer_pos);
+ if (window->buffer->completion.position >= 0)
+ window->buffer->completion.position += strlen (cfg_look_nick_completor);
+ window->buffer->input_buffer_pos += utf8_strlen (cfg_look_nick_completor);
+ if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer,
+ window->buffer->input_buffer_pos)] != ' ')
+ gui_insert_string_input (window, " ",
+ window->buffer->input_buffer_pos);
+ if (window->buffer->completion.position >= 0)
+ window->buffer->completion.position++;
+ window->buffer->input_buffer_pos++;
+ }
+ }
+ gui_input_draw (window->buffer, 0);
+ }
+}
+
+/*
* gui_exec_action_dcc: execute an action on a DCC after a user input
* return -1 if DCC buffer was closed due to action,
* 0 otherwise
diff --git a/weechat/src/gui/gui-keyboard.c b/weechat/src/gui/gui-keyboard.c
index d32bfda51..253c997b4 100644
--- a/weechat/src/gui/gui-keyboard.c
+++ b/weechat/src/gui/gui-keyboard.c
@@ -49,6 +49,8 @@ t_gui_key_function gui_key_functions[] =
N_("terminate line") },
{ "tab", gui_action_tab,
N_("complete word") },
+ { "tab_previous", gui_action_tab_previous,
+ N_("find previous completion for word") },
{ "backspace", gui_action_backspace,
N_("delete previous char") },
{ "delete", gui_action_delete,
diff --git a/weechat/src/gui/gui.h b/weechat/src/gui/gui.h
index 7781bb38b..ff3036a65 100644
--- a/weechat/src/gui/gui.h
+++ b/weechat/src/gui/gui.h
@@ -106,6 +106,7 @@ extern void gui_action_clipboard_copy (char *, int);
extern void gui_action_clipboard_paste (t_gui_window *);
extern void gui_action_return (t_gui_window *);
extern void gui_action_tab (t_gui_window *);
+extern void gui_action_tab_previous (t_gui_window *);
extern void gui_action_backspace (t_gui_window *);
extern void gui_action_delete (t_gui_window *);
extern void gui_action_delete_previous_word (t_gui_window *);
@@ -174,6 +175,7 @@ extern void gui_printf_raw_data (void *, int, char *);
extern void gui_input_optimize_size (t_gui_buffer *);
extern void gui_input_init_color_mask (t_gui_buffer *);
extern void gui_input_move (t_gui_buffer *, char *, char *, int );
+extern void gui_input_complete (t_gui_window *);
extern void gui_exec_action_dcc (t_gui_window *, char *);
extern void gui_exec_action_raw_data (t_gui_window *, char *);
extern int gui_insert_string_input (t_gui_window *, char *, int);