1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-30 14:56:39 +02:00

Added alt-k key to grab a key and insert result into input buffer

This commit is contained in:
Sebastien Helleu
2005-07-16 11:14:47 +00:00
parent 930c40eae1
commit a68a1f8192
20 changed files with 1000 additions and 732 deletions
+3 -2
View File
@@ -1,7 +1,7 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
ChangeLog - 2005-07-14
ChangeLog - 2005-07-16
Version 0.1.4 (under dev!):
@@ -15,7 +15,8 @@ Version 0.1.4 (under dev!):
* topic completion now decodes UTF-8 string
* fixed bug with IRC URL on command line (irc://)
* new keyboard management: keys are setup in config file, new command
/key was added and some new default keys were added
/key was added and some new default keys were added, alt-k key is
used to grab key (useful for /key command)
* added seconds in infobar time (optional thanks to new setting)
* fixed some curses refreshs
* channels auto-prefixed by "#" (if no prefix found) for /join command
+55 -51
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.4-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2005-07-13 19:29+0200\n"
"PO-Revision-Date: 2005-07-13 19:30+0200\n"
"POT-Creation-Date: 2005-07-16 13:11+0200\n"
"PO-Revision-Date: 2005-07-16 13:12+0200\n"
"Last-Translator: Roberto González Cardenete <robert.glez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -2119,7 +2119,7 @@ msgstr ""
"%s no ha sido posible añadir el manejador para el mensaje \"%s\" (memoria "
"insuficiente)\n"
#: src/gui/curses/gui-input.c:300
#: src/gui/curses/gui-input.c:337
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s el lag (retraso) es alto, desconectando del servidor...\n"
@@ -2140,44 +2140,44 @@ msgstr "MB"
msgid "Gb"
msgstr "GB"
#: src/gui/curses/gui-display.c:1116
#: src/gui/curses/gui-display.c:1119
msgid "(away)"
msgstr "(ausente)"
#: src/gui/curses/gui-display.c:1233
#: src/gui/curses/gui-display.c:1236
msgid "[not connected]"
msgstr "[no conectado]"
#: src/gui/curses/gui-display.c:1249
#: src/gui/curses/gui-display.c:1252
msgid "Act: "
msgstr "Act: "
#: src/gui/curses/gui-display.c:1302
#: src/gui/curses/gui-display.c:1305
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
#: src/gui/curses/gui-display.c:1323
#: src/gui/curses/gui-display.c:1326
msgid "-MORE-"
msgstr "-MÁS-"
#: src/gui/curses/gui-display.c:1563
#: src/gui/curses/gui-display.c:1565
msgid " [A] Accept"
msgstr " [A] Aceptar"
#: src/gui/curses/gui-display.c:1564 src/gui/curses/gui-display.c:1568
#: src/gui/curses/gui-display.c:1566 src/gui/curses/gui-display.c:1570
msgid " [C] Cancel"
msgstr " [C] Cancelar"
#: src/gui/curses/gui-display.c:1573
#: src/gui/curses/gui-display.c:1575
msgid " [R] Remove"
msgstr " [R] Eliminar"
#: src/gui/curses/gui-display.c:1577
#: src/gui/curses/gui-display.c:1579
msgid " [P] Purge old DCC"
msgstr " [P] Purgar los viejos DCC"
#: src/gui/curses/gui-display.c:1578
#: src/gui/curses/gui-display.c:1580
msgid " [Q] Close DCC view"
msgstr " [Q] Cerrar la vista DCC"
@@ -2185,159 +2185,163 @@ msgstr " [Q] Cerrar la vista DCC"
msgid "server"
msgstr "servidor"
#: src/gui/gui-common.c:334
#: src/gui/gui-common.c:340
msgid "Not enough memory for infobar message\n"
msgstr "No hay suficiente memoria para el mensaje de la barra de información\n"
#: src/gui/gui-common.c:509
#: src/gui/gui-common.c:515
msgid "Not enough memory for new line\n"
msgstr "No hay suficiente memoria para una nueva línea\n"
#: src/gui/gui-common.c:552
#: src/gui/gui-common.c:558
msgid "Not enough memory for new message\n"
msgstr "No hay suficiente memoria para el mensaje de la barra de información\n"
#: src/gui/gui-keyboard.c:43
#: src/gui/gui-keyboard.c:45
msgid "terminate line"
msgstr "terminar línea"
#: src/gui/gui-keyboard.c:45
#: src/gui/gui-keyboard.c:47
msgid "complete word"
msgstr "completar palabra"
#: src/gui/gui-keyboard.c:47
#: src/gui/gui-keyboard.c:49
msgid "delete previous char"
msgstr "borrar el carácter anterior"
#: src/gui/gui-keyboard.c:49
#: src/gui/gui-keyboard.c:51
msgid "delete next char"
msgstr "borrar el carácter siguiente"
#: src/gui/gui-keyboard.c:51
#: src/gui/gui-keyboard.c:53
msgid "delete until end of line"
msgstr "borrar hasta fin de línea"
#: src/gui/gui-keyboard.c:53
#: src/gui/gui-keyboard.c:55
msgid "delete until beginning of line"
msgstr "borrar hasta principio de línea"
#: src/gui/gui-keyboard.c:55
#: src/gui/gui-keyboard.c:57
msgid "delete entire line"
msgstr "borrar línea entera"
#: src/gui/gui-keyboard.c:57
#: src/gui/gui-keyboard.c:59
msgid "delete previous word"
msgstr "borrar la palabra anterior"
#: src/gui/gui-keyboard.c:59
#: src/gui/gui-keyboard.c:61
msgid "delete next word"
msgstr "borrar la palabra siguiente"
#: src/gui/gui-keyboard.c:61
#: src/gui/gui-keyboard.c:63
msgid "paste current clipboard content"
msgstr ""
#: src/gui/gui-keyboard.c:63
#: src/gui/gui-keyboard.c:65
msgid "transpose chars"
msgstr ""
#: src/gui/gui-keyboard.c:65
#: src/gui/gui-keyboard.c:67
msgid "go to beginning of line"
msgstr "ir al principio de línea"
#: src/gui/gui-keyboard.c:67
#: src/gui/gui-keyboard.c:69
msgid "go to end of line"
msgstr "ir al final de línea"
#: src/gui/gui-keyboard.c:69
#: src/gui/gui-keyboard.c:71
msgid "move one char left"
msgstr "mover un carácter a la izquierda"
#: src/gui/gui-keyboard.c:71
#: src/gui/gui-keyboard.c:73
msgid "move to previous word"
msgstr "mover a la palabra anterior"
#: src/gui/gui-keyboard.c:73
#: src/gui/gui-keyboard.c:75
msgid "move one char right"
msgstr "mover un carácter a la derecha"
#: src/gui/gui-keyboard.c:75
#: src/gui/gui-keyboard.c:77
msgid "move to next word"
msgstr "mover a la palabra siguiente"
#: src/gui/gui-keyboard.c:77
#: src/gui/gui-keyboard.c:79
msgid "call previous command in history"
msgstr "llamar al comando anterior en el historial"
#: src/gui/gui-keyboard.c:79
#: src/gui/gui-keyboard.c:81
msgid "call next command in history"
msgstr "llamar al comando siguiente en el historial"
#: src/gui/gui-keyboard.c:81
#: src/gui/gui-keyboard.c:83
msgid "scroll one page up"
msgstr "desplazarse una página hacia arriba"
#: src/gui/gui-keyboard.c:83
#: src/gui/gui-keyboard.c:85
msgid "scroll one page down"
msgstr "desplazarse una página hacia abajo"
#: src/gui/gui-keyboard.c:85
#: src/gui/gui-keyboard.c:87
msgid "clear infobar"
msgstr "limpiar barra de información"
#: src/gui/gui-keyboard.c:87
#: src/gui/gui-keyboard.c:89
msgid "scroll nicklist one page up"
msgstr "desplazar la lista de nicks una página hacia arriba"
#: src/gui/gui-keyboard.c:89
#: src/gui/gui-keyboard.c:91
msgid "scroll nicklist one page down"
msgstr "desplazar la lista de nicks una página hacia abajo"
#: src/gui/gui-keyboard.c:91
#: src/gui/gui-keyboard.c:93
msgid "display beginning of nicklist"
msgstr "mostrar el principio de la lista de nicks"
#: src/gui/gui-keyboard.c:93
#: src/gui/gui-keyboard.c:95
msgid "display end of nicklist"
msgstr "mostrar el final de la lista de nicks"
#: src/gui/gui-keyboard.c:95
#: src/gui/gui-keyboard.c:97
msgid "refresh screen"
msgstr "recargar la pantalla"
#: src/gui/gui-keyboard.c:97
#: src/gui/gui-keyboard.c:99
msgid "jump to buffer with activity"
msgstr "saltar al búfer con actividad"
#: src/gui/gui-keyboard.c:99
#: src/gui/gui-keyboard.c:101
msgid "jump to DCC buffer"
msgstr "saltar al búfer DCC"
#: src/gui/gui-keyboard.c:101
#: src/gui/gui-keyboard.c:103
msgid "jump to server buffer"
msgstr "saltar al búfer servidor"
#: src/gui/gui-keyboard.c:103
#: src/gui/gui-keyboard.c:105
msgid "jump to next server"
msgstr "saltar al servidor siguiente"
#: src/gui/gui-keyboard.c:105
#: src/gui/gui-keyboard.c:107
msgid "clear hotlist"
msgstr "limpiar hotlist"
#: src/gui/gui-keyboard.c:403 src/common/command.c:1471
#: src/gui/gui-keyboard.c:109
msgid "grab a key"
msgstr ""
#: src/gui/gui-keyboard.c:420 src/common/command.c:1471
#, 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:414
#: src/gui/gui-keyboard.c:431
#, 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 función inválido: \"%s"
"\")\n"
#: src/gui/gui-keyboard.c:427
#: src/gui/gui-keyboard.c:444
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s no hay suficiente memoria para atar la clave\n"
+55 -51
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.4-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2005-07-13 19:29+0200\n"
"PO-Revision-Date: 2005-07-13 19:32+0200\n"
"POT-Creation-Date: 2005-07-16 13:11+0200\n"
"PO-Revision-Date: 2005-07-16 13:11+0200\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -2119,7 +2119,7 @@ msgstr ""
"%s impossible d'ajouter la fonction pour le message \"%s\" (mémoire "
"insuffisante)\n"
#: src/gui/curses/gui-input.c:300
#: src/gui/curses/gui-input.c:337
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s le lag est élevé, déconnexion du serveur...\n"
@@ -2140,44 +2140,44 @@ msgstr "Mo"
msgid "Gb"
msgstr "Go"
#: src/gui/curses/gui-display.c:1116
#: src/gui/curses/gui-display.c:1119
msgid "(away)"
msgstr "(absent)"
#: src/gui/curses/gui-display.c:1233
#: src/gui/curses/gui-display.c:1236
msgid "[not connected]"
msgstr "[non connecté]"
#: src/gui/curses/gui-display.c:1249
#: src/gui/curses/gui-display.c:1252
msgid "Act: "
msgstr "Act: "
#: src/gui/curses/gui-display.c:1302
#: src/gui/curses/gui-display.c:1305
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
#: src/gui/curses/gui-display.c:1323
#: src/gui/curses/gui-display.c:1326
msgid "-MORE-"
msgstr "-PLUS-"
#: src/gui/curses/gui-display.c:1563
#: src/gui/curses/gui-display.c:1565
msgid " [A] Accept"
msgstr " [A] Accepter"
#: src/gui/curses/gui-display.c:1564 src/gui/curses/gui-display.c:1568
#: src/gui/curses/gui-display.c:1566 src/gui/curses/gui-display.c:1570
msgid " [C] Cancel"
msgstr " [C] Annuler"
#: src/gui/curses/gui-display.c:1573
#: src/gui/curses/gui-display.c:1575
msgid " [R] Remove"
msgstr " [R] Retirer"
#: src/gui/curses/gui-display.c:1577
#: src/gui/curses/gui-display.c:1579
msgid " [P] Purge old DCC"
msgstr " [P] Purger anciens DCC"
#: src/gui/curses/gui-display.c:1578
#: src/gui/curses/gui-display.c:1580
msgid " [Q] Close DCC view"
msgstr " [Q] Fermer la vue DCC"
@@ -2185,158 +2185,162 @@ msgstr " [Q] Fermer la vue DCC"
msgid "server"
msgstr "serveur"
#: src/gui/gui-common.c:334
#: src/gui/gui-common.c:340
msgid "Not enough memory for infobar message\n"
msgstr "Pas assez de mémoire pour un message de la barre d'infos\n"
#: src/gui/gui-common.c:509
#: src/gui/gui-common.c:515
msgid "Not enough memory for new line\n"
msgstr "Pas assez de mémoire pour une nouvelle ligne !\n"
#: src/gui/gui-common.c:552
#: src/gui/gui-common.c:558
msgid "Not enough memory for new message\n"
msgstr "Pas assez de mémoire pour un message de la barre d'infos\n"
#: src/gui/gui-keyboard.c:43
#: src/gui/gui-keyboard.c:45
msgid "terminate line"
msgstr "terminer la ligne"
#: src/gui/gui-keyboard.c:45
#: src/gui/gui-keyboard.c:47
msgid "complete word"
msgstr "compléter le mot"
#: src/gui/gui-keyboard.c:47
#: src/gui/gui-keyboard.c:49
msgid "delete previous char"
msgstr "effacer le caractère précédent"
#: src/gui/gui-keyboard.c:49
#: src/gui/gui-keyboard.c:51
msgid "delete next char"
msgstr "effacer le caractère suivant"
#: src/gui/gui-keyboard.c:51
#: src/gui/gui-keyboard.c:53
msgid "delete until end of line"
msgstr "effacer jusqu'à la fin de la ligne"
#: src/gui/gui-keyboard.c:53
#: src/gui/gui-keyboard.c:55
msgid "delete until beginning of line"
msgstr "effacer jusqu'au début de la ligne"
#: src/gui/gui-keyboard.c:55
#: src/gui/gui-keyboard.c:57
msgid "delete entire line"
msgstr "effacer la ligne entière"
#: src/gui/gui-keyboard.c:57
#: src/gui/gui-keyboard.c:59
msgid "delete previous word"
msgstr "effacer le mot précédent"
#: src/gui/gui-keyboard.c:59
#: src/gui/gui-keyboard.c:61
msgid "delete next word"
msgstr "effacer le mot suivant"
#: src/gui/gui-keyboard.c:61
#: src/gui/gui-keyboard.c:63
msgid "paste current clipboard content"
msgstr "coller le contenu du presse-papier"
#: src/gui/gui-keyboard.c:63
#: src/gui/gui-keyboard.c:65
msgid "transpose chars"
msgstr "inverser les caractères"
#: src/gui/gui-keyboard.c:65
#: src/gui/gui-keyboard.c:67
msgid "go to beginning of line"
msgstr "aller au début de la ligne"
#: src/gui/gui-keyboard.c:67
#: src/gui/gui-keyboard.c:69
msgid "go to end of line"
msgstr "aller à la fin de la ligne"
#: src/gui/gui-keyboard.c:69
#: src/gui/gui-keyboard.c:71
msgid "move one char left"
msgstr "se déplacer d'un caractère à gauche"
#: src/gui/gui-keyboard.c:71
#: src/gui/gui-keyboard.c:73
msgid "move to previous word"
msgstr "se déplacer au mot précédent"
#: src/gui/gui-keyboard.c:73
#: src/gui/gui-keyboard.c:75
msgid "move one char right"
msgstr "se déplacer d'un caractère à droite"
#: src/gui/gui-keyboard.c:75
#: src/gui/gui-keyboard.c:77
msgid "move to next word"
msgstr "se déplacer au mot suivant"
#: src/gui/gui-keyboard.c:77
#: src/gui/gui-keyboard.c:79
msgid "call previous command in history"
msgstr "appeler la commande précédente dans l'historique"
#: src/gui/gui-keyboard.c:79
#: src/gui/gui-keyboard.c:81
msgid "call next command in history"
msgstr "appeler la commande suivante dans l'historique"
#: src/gui/gui-keyboard.c:81
#: src/gui/gui-keyboard.c:83
msgid "scroll one page up"
msgstr "faire défiler d'une page vers le haut"
#: src/gui/gui-keyboard.c:83
#: src/gui/gui-keyboard.c:85
msgid "scroll one page down"
msgstr "faire défiler d'une page vers le bas"
#: src/gui/gui-keyboard.c:85
#: src/gui/gui-keyboard.c:87
msgid "clear infobar"
msgstr "effacer la barre d'infos"
#: src/gui/gui-keyboard.c:87
#: src/gui/gui-keyboard.c:89
msgid "scroll nicklist one page up"
msgstr "faire défiler la liste des pseudos d'une page vers le haut"
#: src/gui/gui-keyboard.c:89
#: src/gui/gui-keyboard.c:91
msgid "scroll nicklist one page down"
msgstr "faire défiler la liste des pseudos d'une page vers le bas"
#: src/gui/gui-keyboard.c:91
#: src/gui/gui-keyboard.c:93
msgid "display beginning of nicklist"
msgstr "afficher le début de la liste des pseudos"
#: src/gui/gui-keyboard.c:93
#: src/gui/gui-keyboard.c:95
msgid "display end of nicklist"
msgstr "afficher la fin de la liste des pseudos"
#: src/gui/gui-keyboard.c:95
#: src/gui/gui-keyboard.c:97
msgid "refresh screen"
msgstr "rafraichir l'écran"
#: src/gui/gui-keyboard.c:97
#: src/gui/gui-keyboard.c:99
msgid "jump to buffer with activity"
msgstr "sauter au tampon avec de l'activité"
#: src/gui/gui-keyboard.c:99
#: src/gui/gui-keyboard.c:101
msgid "jump to DCC buffer"
msgstr "sauter au tampon DCC"
#: src/gui/gui-keyboard.c:101
#: src/gui/gui-keyboard.c:103
msgid "jump to server buffer"
msgstr "sauter au tampon du serveur"
#: src/gui/gui-keyboard.c:103
#: src/gui/gui-keyboard.c:105
msgid "jump to next server"
msgstr "sauter au prochain serveur"
#: src/gui/gui-keyboard.c:105
#: src/gui/gui-keyboard.c:107
msgid "clear hotlist"
msgstr "effacer la liste d'activité"
#: src/gui/gui-keyboard.c:403 src/common/command.c:1471
#: src/gui/gui-keyboard.c:109
msgid "grab a key"
msgstr "capturer une touche"
#: src/gui/gui-keyboard.c:420 src/common/command.c:1471
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s impossible de créer la touche \"%s\"\n"
#: src/gui/gui-keyboard.c:414
#: src/gui/gui-keyboard.c:431
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s impossible de créer la touche \"%s\" (nom fonction incorrect: \"%s\")\n"
#: src/gui/gui-keyboard.c:427
#: src/gui/gui-keyboard.c:444
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s pas assez de mémoire pour la touche\n"
+54 -50
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2005-07-13 19:29+0200\n"
"POT-Creation-Date: 2005-07-16 13:11+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"
@@ -1984,7 +1984,7 @@ msgstr ""
msgid "%s unable to add handler for \"%s\" message (not enough memory)\n"
msgstr ""
#: src/gui/curses/gui-input.c:300
#: src/gui/curses/gui-input.c:337
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr ""
@@ -2005,44 +2005,44 @@ msgstr ""
msgid "Gb"
msgstr ""
#: src/gui/curses/gui-display.c:1116
#: src/gui/curses/gui-display.c:1119
msgid "(away)"
msgstr ""
#: src/gui/curses/gui-display.c:1233
#: src/gui/curses/gui-display.c:1236
msgid "[not connected]"
msgstr ""
#: src/gui/curses/gui-display.c:1249
#: src/gui/curses/gui-display.c:1252
msgid "Act: "
msgstr ""
#: src/gui/curses/gui-display.c:1302
#: src/gui/curses/gui-display.c:1305
#, c-format
msgid "Lag: %.1f"
msgstr ""
#: src/gui/curses/gui-display.c:1323
#: src/gui/curses/gui-display.c:1326
msgid "-MORE-"
msgstr ""
#: src/gui/curses/gui-display.c:1563
#: src/gui/curses/gui-display.c:1565
msgid " [A] Accept"
msgstr ""
#: src/gui/curses/gui-display.c:1564 src/gui/curses/gui-display.c:1568
#: src/gui/curses/gui-display.c:1566 src/gui/curses/gui-display.c:1570
msgid " [C] Cancel"
msgstr ""
#: src/gui/curses/gui-display.c:1573
#: src/gui/curses/gui-display.c:1575
msgid " [R] Remove"
msgstr ""
#: src/gui/curses/gui-display.c:1577
#: src/gui/curses/gui-display.c:1579
msgid " [P] Purge old DCC"
msgstr ""
#: src/gui/curses/gui-display.c:1578
#: src/gui/curses/gui-display.c:1580
msgid " [Q] Close DCC view"
msgstr ""
@@ -2050,157 +2050,161 @@ msgstr ""
msgid "server"
msgstr ""
#: src/gui/gui-common.c:334
#: src/gui/gui-common.c:340
msgid "Not enough memory for infobar message\n"
msgstr ""
#: src/gui/gui-common.c:509
#: src/gui/gui-common.c:515
msgid "Not enough memory for new line\n"
msgstr ""
#: src/gui/gui-common.c:552
#: src/gui/gui-common.c:558
msgid "Not enough memory for new message\n"
msgstr ""
#: src/gui/gui-keyboard.c:43
#: src/gui/gui-keyboard.c:45
msgid "terminate line"
msgstr ""
#: src/gui/gui-keyboard.c:45
#: src/gui/gui-keyboard.c:47
msgid "complete word"
msgstr ""
#: src/gui/gui-keyboard.c:47
#: src/gui/gui-keyboard.c:49
msgid "delete previous char"
msgstr ""
#: src/gui/gui-keyboard.c:49
#: src/gui/gui-keyboard.c:51
msgid "delete next char"
msgstr ""
#: src/gui/gui-keyboard.c:51
#: src/gui/gui-keyboard.c:53
msgid "delete until end of line"
msgstr ""
#: src/gui/gui-keyboard.c:53
#: src/gui/gui-keyboard.c:55
msgid "delete until beginning of line"
msgstr ""
#: src/gui/gui-keyboard.c:55
#: src/gui/gui-keyboard.c:57
msgid "delete entire line"
msgstr ""
#: src/gui/gui-keyboard.c:57
#: src/gui/gui-keyboard.c:59
msgid "delete previous word"
msgstr ""
#: src/gui/gui-keyboard.c:59
#: src/gui/gui-keyboard.c:61
msgid "delete next word"
msgstr ""
#: src/gui/gui-keyboard.c:61
#: src/gui/gui-keyboard.c:63
msgid "paste current clipboard content"
msgstr ""
#: src/gui/gui-keyboard.c:63
#: src/gui/gui-keyboard.c:65
msgid "transpose chars"
msgstr ""
#: src/gui/gui-keyboard.c:65
#: src/gui/gui-keyboard.c:67
msgid "go to beginning of line"
msgstr ""
#: src/gui/gui-keyboard.c:67
#: src/gui/gui-keyboard.c:69
msgid "go to end of line"
msgstr ""
#: src/gui/gui-keyboard.c:69
#: src/gui/gui-keyboard.c:71
msgid "move one char left"
msgstr ""
#: src/gui/gui-keyboard.c:71
#: src/gui/gui-keyboard.c:73
msgid "move to previous word"
msgstr ""
#: src/gui/gui-keyboard.c:73
#: src/gui/gui-keyboard.c:75
msgid "move one char right"
msgstr ""
#: src/gui/gui-keyboard.c:75
#: src/gui/gui-keyboard.c:77
msgid "move to next word"
msgstr ""
#: src/gui/gui-keyboard.c:77
#: src/gui/gui-keyboard.c:79
msgid "call previous command in history"
msgstr ""
#: src/gui/gui-keyboard.c:79
#: src/gui/gui-keyboard.c:81
msgid "call next command in history"
msgstr ""
#: src/gui/gui-keyboard.c:81
#: src/gui/gui-keyboard.c:83
msgid "scroll one page up"
msgstr ""
#: src/gui/gui-keyboard.c:83
#: src/gui/gui-keyboard.c:85
msgid "scroll one page down"
msgstr ""
#: src/gui/gui-keyboard.c:85
#: src/gui/gui-keyboard.c:87
msgid "clear infobar"
msgstr ""
#: src/gui/gui-keyboard.c:87
#: src/gui/gui-keyboard.c:89
msgid "scroll nicklist one page up"
msgstr ""
#: src/gui/gui-keyboard.c:89
#: src/gui/gui-keyboard.c:91
msgid "scroll nicklist one page down"
msgstr ""
#: src/gui/gui-keyboard.c:91
#: src/gui/gui-keyboard.c:93
msgid "display beginning of nicklist"
msgstr ""
#: src/gui/gui-keyboard.c:93
#: src/gui/gui-keyboard.c:95
msgid "display end of nicklist"
msgstr ""
#: src/gui/gui-keyboard.c:95
#: src/gui/gui-keyboard.c:97
msgid "refresh screen"
msgstr ""
#: src/gui/gui-keyboard.c:97
#: src/gui/gui-keyboard.c:99
msgid "jump to buffer with activity"
msgstr ""
#: src/gui/gui-keyboard.c:99
#: src/gui/gui-keyboard.c:101
msgid "jump to DCC buffer"
msgstr ""
#: src/gui/gui-keyboard.c:101
#: src/gui/gui-keyboard.c:103
msgid "jump to server buffer"
msgstr ""
#: src/gui/gui-keyboard.c:103
#: src/gui/gui-keyboard.c:105
msgid "jump to next server"
msgstr ""
#: src/gui/gui-keyboard.c:105
#: src/gui/gui-keyboard.c:107
msgid "clear hotlist"
msgstr ""
#: src/gui/gui-keyboard.c:403 src/common/command.c:1471
#: src/gui/gui-keyboard.c:109
msgid "grab a key"
msgstr ""
#: src/gui/gui-keyboard.c:420 src/common/command.c:1471
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr ""
#: src/gui/gui-keyboard.c:414
#: src/gui/gui-keyboard.c:431
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
#: src/gui/gui-keyboard.c:427
#: src/gui/gui-keyboard.c:444
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr ""
-3
View File
@@ -204,9 +204,6 @@ completion_build_list (t_completion *completion, void *channel)
if ((strcasecmp (completion->base_command, "key") == 0)
&& (completion->base_command_arg == 1))
{
weelist_add (&completion->completion_list,
&completion->last_completion,
"bind");
weelist_add (&completion->completion_list,
&completion->last_completion,
"unbind");
+1 -1
View File
@@ -112,7 +112,7 @@ fifo_exec (char *text)
if (text[0] == '*')
{
pos_msg = text + 1;
ptr_buffer = (gui_current_window->buffer->dcc) ? gui_buffers : gui_current_window->buffer;
ptr_buffer = (gui_current_window->buffer->has_input) ? gui_current_window->buffer : gui_buffers;
ptr_server = SERVER(ptr_buffer);
}
else
+40 -3
View File
@@ -92,9 +92,10 @@ gui_input_default_key_bindings ()
gui_key_bind ( /* ^right */ "meta-Oc", "next_word");
gui_key_bind ( /* m-h */ "meta-h", "hotlist_clear");
gui_key_bind ( /* m-j,m-d */ "meta-jmeta-d", "jump_dcc");
gui_key_bind ( /* m-r */ "meta-r", "delete_line");
gui_key_bind ( /* m-j,m-s */ "meta-jmeta-s", "jump_server");
gui_key_bind ( /* m-j,m-x */ "meta-jmeta-x", "jump_next_server");
gui_key_bind ( /* m-k */ "meta-k", "grab_key");
gui_key_bind ( /* m-r */ "meta-r", "delete_line");
/* keys binded with commands */
gui_key_bind ( /* m-left */ "meta-meta2-D", "/buffer -1");
@@ -123,6 +124,35 @@ gui_input_default_key_bindings ()
}
}
/*
* gui_input_grab_end: insert grabbed key in input buffer
*/
void
gui_input_grab_end ()
{
char *expanded_key;
/* get expanded name (for example: ^U => ctrl-u) */
expanded_key = gui_key_get_expanded_name (gui_key_buffer);
if (expanded_key)
{
if (gui_current_window->buffer->has_input)
{
gui_input_insert_string (expanded_key, -1);
gui_current_window->buffer->input_buffer_pos += strlen (expanded_key);
gui_draw_buffer_input (gui_current_window->buffer, 1);
}
free (expanded_key);
}
/* end grab mode */
gui_key_grab = 0;
gui_key_grab_count = 0;
gui_key_buffer[0] = '\0';
}
/*
* gui_input_read: read keyboard chars
*/
@@ -138,10 +168,17 @@ gui_input_read ()
to read also socket & co */
while (i < 8)
{
if (gui_key_grab && (gui_key_grab_count > 10))
gui_input_grab_end ();
key = getch ();
if (key == ERR)
{
if (gui_key_grab && (gui_key_grab_count > 0))
gui_input_grab_end ();
break;
}
if (key == KEY_RESIZE)
{
@@ -176,11 +213,11 @@ gui_input_read ()
}
}
if (strcmp (key_str, "^") == 0)
/*if (strcmp (key_str, "^") == 0)
{
key_str[1] = '^';
key_str[2] = '\0';
}
}*/
/*gui_printf (gui_current_window->buffer, "gui_input_read: key = %s (%d)\n", key_str, key);*/
+251 -199
View File
@@ -201,9 +201,15 @@ gui_buffer_new (t_gui_window *window, void *server, void *channel, int dcc,
log_start (new_buffer);
/* init input buffer */
new_buffer->input_buffer_alloc = INPUT_BUFFER_BLOCK_SIZE;
new_buffer->input_buffer = (char *) malloc (INPUT_BUFFER_BLOCK_SIZE);
new_buffer->input_buffer[0] = '\0';
new_buffer->has_input = (new_buffer->dcc) ? 0 : 1;
if (new_buffer->has_input)
{
new_buffer->input_buffer_alloc = INPUT_BUFFER_BLOCK_SIZE;
new_buffer->input_buffer = (char *) malloc (INPUT_BUFFER_BLOCK_SIZE);
new_buffer->input_buffer[0] = '\0';
}
else
new_buffer->input_buffer = NULL;
new_buffer->input_buffer_size = 0;
new_buffer->input_buffer_pos = 0;
new_buffer->input_buffer_1st_display = 0;
@@ -565,17 +571,59 @@ gui_input_optimize_buffer_size (t_gui_buffer *buffer)
{
int optimal_size;
optimal_size = ((buffer->input_buffer_size / INPUT_BUFFER_BLOCK_SIZE) *
INPUT_BUFFER_BLOCK_SIZE) + INPUT_BUFFER_BLOCK_SIZE;
if (buffer->input_buffer_alloc != optimal_size)
if (buffer->has_input)
{
buffer->input_buffer_alloc = optimal_size;
buffer->input_buffer = realloc (buffer->input_buffer, optimal_size);
optimal_size = ((buffer->input_buffer_size / INPUT_BUFFER_BLOCK_SIZE) *
INPUT_BUFFER_BLOCK_SIZE) + INPUT_BUFFER_BLOCK_SIZE;
if (buffer->input_buffer_alloc != optimal_size)
{
buffer->input_buffer_alloc = optimal_size;
buffer->input_buffer = realloc (buffer->input_buffer, optimal_size);
}
}
}
/*
* gui_input_clipboard_copy: copy string into clipboard
*/
void
gui_input_clipboard_copy (char *buffer, int size)
{
if (size <= 0)
return;
if (gui_input_clipboard != NULL)
free(gui_input_clipboard);
gui_input_clipboard = (char *) malloc( (size + 1) * sizeof(*gui_input_clipboard));
if (gui_input_clipboard)
{
memcpy(gui_input_clipboard, buffer, size);
gui_input_clipboard[size] = '\0';
}
}
/*
* gui_input_clipboard_paste: paste clipboard at cursor pos in input line
*/
void
gui_input_clipboard_paste ()
{
if (gui_current_window->buffer->has_input && gui_input_clipboard)
{
gui_input_insert_string (gui_input_clipboard, gui_current_window->buffer->input_buffer_pos);
gui_current_window->buffer->input_buffer_pos += strlen (gui_input_clipboard);
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_current_window->buffer->completion.position = -1;
}
}
/*
* gui_input_insert_string: insert a string into the input buffer
* if pos == -1, string is inserted at cursor position
*/
void
@@ -583,22 +631,28 @@ gui_input_insert_string (char *string, int pos)
{
int i, start, end, length;
length = strlen (string);
/* increase buffer size */
gui_current_window->buffer->input_buffer_size += length;
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
/* move end of string to the right */
start = pos + length;
end = gui_current_window->buffer->input_buffer_size - 1;
for (i = end; i >= start; i--)
gui_current_window->buffer->input_buffer[i] =
gui_current_window->buffer->input_buffer[i - length];
/* insert new string */
strncpy (gui_current_window->buffer->input_buffer + pos, string, length);
if (gui_current_window->buffer->has_input)
{
if (pos == -1)
pos = gui_current_window->buffer->input_buffer_pos;
length = strlen (string);
/* increase buffer size */
gui_current_window->buffer->input_buffer_size += length;
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
/* move end of string to the right */
start = pos + length;
end = gui_current_window->buffer->input_buffer_size - 1;
for (i = end; i >= start; i--)
gui_current_window->buffer->input_buffer[i] =
gui_current_window->buffer->input_buffer[i - length];
/* insert new string */
strncpy (gui_current_window->buffer->input_buffer + pos, string, length);
}
}
/*
@@ -683,7 +737,7 @@ gui_input_insert_char (int key)
break;
}
}
else
else if (gui_current_window->buffer->has_input)
{
/*gui_printf (gui_current_window->buffer,
"[Debug] key pressed = %d, hex = %02X, octal = %o\n", key, key, key);*/
@@ -707,7 +761,7 @@ gui_input_return ()
{
t_gui_buffer *ptr_buffer;
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_size > 0)
{
@@ -740,7 +794,7 @@ gui_input_tab ()
{
int i;
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
completion_search (&(gui_current_window->buffer->completion),
CHANNEL(gui_current_window->buffer),
@@ -837,7 +891,7 @@ gui_input_backspace ()
{
int i;
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos > 0)
{
@@ -867,7 +921,7 @@ gui_input_delete ()
{
int i;
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos <
gui_current_window->buffer->input_buffer_size)
@@ -897,46 +951,49 @@ gui_input_delete_previous_word ()
{
int i, j, num_char_deleted, num_char_end;
if (gui_current_window->buffer->input_buffer_pos > 0)
if (gui_current_window->buffer->has_input)
{
i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] == ' '))
i--;
if (i >= 0)
if (gui_current_window->buffer->input_buffer_pos > 0)
{
i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] != ' '))
(gui_current_window->buffer->input_buffer[i] == ' '))
i--;
if (i >= 0)
{
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] == ' '))
(gui_current_window->buffer->input_buffer[i] != ' '))
i--;
if (i >= 0)
{
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] == ' '))
i--;
}
}
}
if (i >= 0)
if (i >= 0)
i++;
i++;
i++;
num_char_deleted = gui_current_window->buffer->input_buffer_pos - i;
num_char_end = gui_current_window->buffer->input_buffer_size -
gui_current_window->buffer->input_buffer_pos;
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos - num_char_deleted,
num_char_deleted);
for (j = 0; j < num_char_end; j++)
gui_current_window->buffer->input_buffer[i + j] =
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos + j];
gui_current_window->buffer->input_buffer_size -= num_char_deleted;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_current_window->buffer->input_buffer_pos = i;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
num_char_deleted = gui_current_window->buffer->input_buffer_pos - i;
num_char_end = gui_current_window->buffer->input_buffer_size -
gui_current_window->buffer->input_buffer_pos;
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos - num_char_deleted,
num_char_deleted);
for (j = 0; j < num_char_end; j++)
gui_current_window->buffer->input_buffer[i + j] =
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos + j];
gui_current_window->buffer->input_buffer_size -= num_char_deleted;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_current_window->buffer->input_buffer_pos = i;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
}
}
@@ -949,28 +1006,31 @@ gui_input_delete_next_word ()
{
int i, j, num_char_deleted;
i = gui_current_window->buffer->input_buffer_pos;
while (i < gui_current_window->buffer->input_buffer_size)
if (gui_current_window->buffer->has_input)
{
if ((gui_current_window->buffer->input_buffer[i] == ' ')
&& i != gui_current_window->buffer->input_buffer_pos)
break;
i++;
i = gui_current_window->buffer->input_buffer_pos;
while (i < gui_current_window->buffer->input_buffer_size)
{
if ((gui_current_window->buffer->input_buffer[i] == ' ')
&& i != gui_current_window->buffer->input_buffer_pos)
break;
i++;
}
num_char_deleted = i - gui_current_window->buffer->input_buffer_pos;
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos, num_char_deleted);
for (j = i; j < gui_current_window->buffer->input_buffer_size; j++)
gui_current_window->buffer->input_buffer[j - num_char_deleted] =
gui_current_window->buffer->input_buffer[j];
gui_current_window->buffer->input_buffer_size -= num_char_deleted;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
num_char_deleted = i - gui_current_window->buffer->input_buffer_pos;
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos, num_char_deleted);
for (j = i; j < gui_current_window->buffer->input_buffer_size; j++)
gui_current_window->buffer->input_buffer[j - num_char_deleted] =
gui_current_window->buffer->input_buffer[j];
gui_current_window->buffer->input_buffer_size -= num_char_deleted;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
/*
@@ -980,25 +1040,28 @@ gui_input_delete_next_word ()
void
gui_input_delete_begin_of_line ()
{
if (gui_current_window->buffer->input_buffer_pos > 0)
int i;
if (gui_current_window->buffer->has_input)
{
int i;
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer,
gui_current_window->buffer->input_buffer_pos);
for (i = gui_current_window->buffer->input_buffer_pos;
i < gui_current_window->buffer->input_buffer_size; i++)
gui_current_window->buffer->input_buffer[i - gui_current_window->buffer->input_buffer_pos] =
gui_current_window->buffer->input_buffer[i];
gui_current_window->buffer->input_buffer_size -=
gui_current_window->buffer->input_buffer_pos;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_current_window->buffer->input_buffer_pos = 0;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
if (gui_current_window->buffer->input_buffer_pos > 0)
{
gui_input_clipboard_copy (gui_current_window->buffer->input_buffer,
gui_current_window->buffer->input_buffer_pos);
for (i = gui_current_window->buffer->input_buffer_pos;
i < gui_current_window->buffer->input_buffer_size; i++)
gui_current_window->buffer->input_buffer[i - gui_current_window->buffer->input_buffer_pos] =
gui_current_window->buffer->input_buffer[i];
gui_current_window->buffer->input_buffer_size -=
gui_current_window->buffer->input_buffer_pos;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_current_window->buffer->input_buffer_pos = 0;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
}
}
@@ -1009,16 +1072,19 @@ gui_input_delete_begin_of_line ()
void
gui_input_delete_end_of_line ()
{
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos,
gui_current_window->buffer->input_buffer_size -
gui_current_window->buffer->input_buffer_pos);
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' ';
gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
if (gui_current_window->buffer->has_input)
{
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos,
gui_current_window->buffer->input_buffer_size -
gui_current_window->buffer->input_buffer_pos);
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' ';
gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
}
/*
@@ -1028,12 +1094,15 @@ gui_input_delete_end_of_line ()
void
gui_input_delete_line ()
{
gui_current_window->buffer->input_buffer[0] = '\0';
gui_current_window->buffer->input_buffer_size = 0;
gui_current_window->buffer->input_buffer_pos = 0;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
if (gui_current_window->buffer->has_input)
{
gui_current_window->buffer->input_buffer[0] = '\0';
gui_current_window->buffer->input_buffer_size = 0;
gui_current_window->buffer->input_buffer_pos = 0;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
}
/*
@@ -1046,59 +1115,24 @@ gui_input_transpose_chars ()
char buf;
int curpos;
if (gui_current_window->buffer->input_buffer_pos > 0)
{
curpos = gui_current_window->buffer->input_buffer_pos;
if (curpos == gui_current_window->buffer->input_buffer_size)
curpos--;
else
gui_current_window->buffer->input_buffer_pos++;
buf = gui_current_window->buffer->input_buffer[curpos];
gui_current_window->buffer->input_buffer[curpos] =
gui_current_window->buffer->input_buffer[curpos-1];
gui_current_window->buffer->input_buffer[curpos-1] = buf;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_current_window->buffer->completion.position = -1;
}
}
/*
* gui_input_clipboard_paste: paste clipboard at cursor pos in input line
*/
void
gui_input_clipboard_paste ()
{
if (gui_input_clipboard)
if (gui_current_window->buffer->has_input)
{
gui_input_insert_string(gui_input_clipboard, gui_current_window->buffer->input_buffer_pos);
gui_current_window->buffer->input_buffer_pos += strlen(gui_input_clipboard);
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_current_window->buffer->completion.position = -1;
}
}
/*
* gui_input_clipboard_copy: copy string into clipboard
*/
void
gui_input_clipboard_copy (char *buffer, int size)
{
if (size <= 0)
return;
if (gui_input_clipboard != NULL)
free(gui_input_clipboard);
gui_input_clipboard = (char *) malloc( (size + 1) * sizeof(*gui_input_clipboard));
if (gui_input_clipboard)
{
memcpy(gui_input_clipboard, buffer, size);
gui_input_clipboard[size] = '\0';
if (gui_current_window->buffer->input_buffer_pos > 0)
{
curpos = gui_current_window->buffer->input_buffer_pos;
if (curpos == gui_current_window->buffer->input_buffer_size)
curpos--;
else
gui_current_window->buffer->input_buffer_pos++;
buf = gui_current_window->buffer->input_buffer[curpos];
gui_current_window->buffer->input_buffer[curpos] =
gui_current_window->buffer->input_buffer[curpos-1];
gui_current_window->buffer->input_buffer[curpos-1] = buf;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_current_window->buffer->completion.position = -1;
}
}
}
@@ -1109,7 +1143,7 @@ gui_input_clipboard_copy (char *buffer, int size)
void
gui_input_home ()
{
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos > 0)
{
@@ -1126,7 +1160,7 @@ gui_input_home ()
void
gui_input_end ()
{
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos <
gui_current_window->buffer->input_buffer_size)
@@ -1145,7 +1179,7 @@ gui_input_end ()
void
gui_input_left ()
{
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos > 0)
{
@@ -1164,22 +1198,25 @@ gui_input_previous_word ()
{
int i;
if (gui_current_window->buffer->input_buffer_pos > 0)
if (gui_current_window->buffer->has_input)
{
i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] == ' '))
i--;
if (i < 0)
gui_current_window->buffer->input_buffer_pos = 0;
else
if (gui_current_window->buffer->input_buffer_pos > 0)
{
i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] != ' '))
(gui_current_window->buffer->input_buffer[i] == ' '))
i--;
gui_current_window->buffer->input_buffer_pos = i + 1;
if (i < 0)
gui_current_window->buffer->input_buffer_pos = 0;
else
{
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] != ' '))
i--;
gui_current_window->buffer->input_buffer_pos = i + 1;
}
gui_draw_buffer_input (gui_current_window->buffer, 0);
}
gui_draw_buffer_input (gui_current_window->buffer, 0);
}
}
@@ -1190,7 +1227,7 @@ gui_input_previous_word ()
void
gui_input_right ()
{
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos <
gui_current_window->buffer->input_buffer_size)
@@ -1210,28 +1247,31 @@ gui_input_next_word ()
{
int i;
if (gui_current_window->buffer->input_buffer_pos <
gui_current_window->buffer->input_buffer_size + 1)
if (gui_current_window->buffer->has_input)
{
i = gui_current_window->buffer->input_buffer_pos;
while ((i <= gui_current_window->buffer->input_buffer_size) &&
(gui_current_window->buffer->input_buffer[i] == ' '))
i++;
if (i > gui_current_window->buffer->input_buffer_size)
gui_current_window->buffer->input_buffer_pos = i - 1;
else
if (gui_current_window->buffer->input_buffer_pos <
gui_current_window->buffer->input_buffer_size + 1)
{
i = gui_current_window->buffer->input_buffer_pos;
while ((i <= gui_current_window->buffer->input_buffer_size) &&
(gui_current_window->buffer->input_buffer[i] != ' '))
(gui_current_window->buffer->input_buffer[i] == ' '))
i++;
if (i > gui_current_window->buffer->input_buffer_size)
gui_current_window->buffer->input_buffer_pos =
gui_current_window->buffer->input_buffer_size;
gui_current_window->buffer->input_buffer_pos = i - 1;
else
gui_current_window->buffer->input_buffer_pos = i;
{
while ((i <= gui_current_window->buffer->input_buffer_size) &&
(gui_current_window->buffer->input_buffer[i] != ' '))
i++;
if (i > gui_current_window->buffer->input_buffer_size)
gui_current_window->buffer->input_buffer_pos =
gui_current_window->buffer->input_buffer_size;
else
gui_current_window->buffer->input_buffer_pos = i;
}
gui_draw_buffer_input (gui_current_window->buffer, 0);
}
gui_draw_buffer_input (gui_current_window->buffer, 0);
}
}
@@ -1260,7 +1300,7 @@ gui_input_up ()
}
}
}
else
else if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->ptr_history)
{
@@ -1323,7 +1363,7 @@ gui_input_down ()
}
}
}
else
else if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->ptr_history)
{
@@ -1400,7 +1440,7 @@ gui_input_jump_dcc ()
void
gui_input_jump_server ()
{
if (!gui_current_window->buffer->dcc)
if (SERVER(gui_current_window->buffer))
{
if (SERVER(gui_current_window->buffer)->buffer !=
gui_current_window->buffer)
@@ -1422,7 +1462,7 @@ gui_input_jump_next_server ()
t_irc_server *ptr_server;
t_gui_buffer *ptr_buffer;
if (!gui_current_window->buffer->dcc)
if (SERVER(gui_current_window->buffer))
{
ptr_server = SERVER(gui_current_window->buffer)->next_server;
if (!ptr_server)
@@ -1470,6 +1510,17 @@ gui_input_infobar_clear ()
gui_draw_buffer_infobar (gui_current_window->buffer, 1);
}
/*
* gui_input_grab_key: init "grab key mode" (next key will be inserted into input buffer)
*/
void
gui_input_grab_key ()
{
if (gui_current_window->buffer->has_input)
gui_key_init_grab ();
}
/*
* gui_switch_to_previous_buffer: switch to previous buffer
*/
@@ -1740,6 +1791,7 @@ gui_buffer_print_log (t_gui_buffer *buffer)
wee_log_printf (" notify_level . . . . : %d\n", buffer->notify_level);
wee_log_printf (" log_filename . . . . : '%s'\n", buffer->log_filename);
wee_log_printf (" log_file . . . . . . : 0x%X\n", buffer->log_file);
wee_log_printf (" has_input. . . . . . : %d\n", buffer->has_input);
wee_log_printf (" input_buffer . . . . : '%s'\n", buffer->input_buffer);
wee_log_printf (" input_buffer_alloc . : %d\n", buffer->input_buffer_alloc);
wee_log_printf (" input_buffer_size. . : %d\n", buffer->input_buffer_size);
+30 -5
View File
@@ -37,6 +37,8 @@ t_gui_key *gui_keys = NULL;
t_gui_key *last_gui_key = NULL;
char gui_key_buffer[128];
int gui_key_grab = 0;
int gui_key_grab_count = 0;
t_gui_key_function gui_key_functions[] =
{ { "return", gui_input_return,
@@ -57,9 +59,9 @@ t_gui_key_function gui_key_functions[] =
N_("delete previous word") },
{ "delete_next_word", gui_input_delete_next_word,
N_("delete next word") },
{ "clipboard_paste", gui_input_clipboard_paste,
{ "clipboard_paste", gui_input_clipboard_paste,
N_("paste current clipboard content") },
{ "transpose_chars", gui_input_transpose_chars,
{ "transpose_chars", gui_input_transpose_chars,
N_("transpose chars") },
{ "home", gui_input_home,
N_("go to beginning of line") },
@@ -103,6 +105,8 @@ t_gui_key_function gui_key_functions[] =
N_("jump to next server") },
{ "hotlist_clear", gui_input_hotlist_clear,
N_("clear hotlist") },
{ "grab_key", gui_input_grab_key,
N_("grab a key") },
{ NULL, NULL, NULL }
};
@@ -115,10 +119,23 @@ void
gui_key_init ()
{
gui_key_buffer[0] = '\0';
gui_key_grab = 0;
gui_key_grab_count = 0;
gui_input_default_key_bindings ();
}
/*
* gui_key_init_show: init "show mode"
*/
void
gui_key_init_grab ()
{
gui_key_grab = 1;
gui_key_grab_count = 0;
}
/*
* gui_key_get_internal_code: get internal code from user key name
* for example: return "^R" for "ctrl-R"
@@ -187,7 +204,7 @@ gui_key_get_expanded_name (char *key)
strcat (result, "meta-");
key += 2;
}
else if (key[0] == '^')
else if ((key[0] == '^') && (key[1]))
{
strcat (result, "ctrl-");
key++;
@@ -466,8 +483,18 @@ gui_key_pressed (char *key_str)
int first_key;
t_gui_key *ptr_key;
/* add key to buffer */
first_key = (gui_key_buffer[0] == '\0');
strcat (gui_key_buffer, key_str);
/* if we are in "show mode", increase counter and return */
if (gui_key_grab)
{
gui_key_grab_count++;
return 0;
}
/* look for key combo in key table */
ptr_key = gui_key_search_part (gui_key_buffer);
if (ptr_key)
{
@@ -482,8 +509,6 @@ gui_key_pressed (char *key_str)
else
(void)(ptr_key->function)();
}
//else
// gui_printf (gui_current_window->buffer, "partial key found\n");
return 0;
}
+11 -1
View File
@@ -104,6 +104,9 @@
#define NOTIFY_LEVEL_MAX 3
#define NOTIFY_LEVEL_DEFAULT NOTIFY_LEVEL_MAX
#define KEY_SHOW_MODE_DISPLAY 1
#define KEY_SHOW_MODE_BIND 2
typedef struct t_gui_message t_gui_message;
struct t_gui_message
@@ -180,6 +183,7 @@ struct t_gui_buffer
FILE *log_file; /* for logging buffer to file */
/* inupt buffer */
int has_input; /* = 1 if buffer has input (DCC has not)*/
char *input_buffer; /* input buffer */
int input_buffer_alloc; /* input buffer: allocated size in mem */
int input_buffer_size; /* buffer size (user input length) */
@@ -292,6 +296,9 @@ extern t_gui_infobar *gui_infobar;
extern t_gui_key *gui_keys;
extern t_gui_key *last_gui_key;
extern t_gui_key_function gui_key_functions[];
extern char gui_key_buffer[128];
extern int gui_key_grab;
extern int gui_key_grab_count;
extern char *gui_input_clipboard;
/* GUI independent functions: windows & buffers */
@@ -306,8 +313,9 @@ extern void gui_infobar_remove ();
extern void gui_buffer_free (t_gui_buffer *, int);
extern t_gui_line *gui_new_line (t_gui_buffer *);
extern t_gui_message *gui_new_message (t_gui_buffer *);
extern void gui_input_clipboard_paste ();
extern void gui_input_clipboard_copy (char *, int);
extern void gui_input_clipboard_paste ();
extern void gui_input_insert_string (char *, int);
extern void gui_input_insert_char ();
extern void gui_input_return ();
extern void gui_input_tab ();
@@ -333,6 +341,7 @@ extern void gui_input_jump_server ();
extern void gui_input_jump_next_server ();
extern void gui_input_hotlist_clear ();
extern void gui_input_infobar_clear ();
extern void gui_input_grab_key ();
extern void gui_switch_to_previous_buffer ();
extern void gui_switch_to_next_buffer ();
extern void gui_switch_to_previous_window ();
@@ -345,6 +354,7 @@ extern void gui_buffer_print_log (t_gui_buffer *);
/* GUI independent functions: keys */
extern void gui_key_init ();
extern void gui_key_init_grab ();
extern char *gui_key_get_internal_code (char *);
extern char *gui_key_get_expanded_name (char *);
extern void *gui_key_function_search_by_name (char *);
+3 -2
View File
@@ -1,7 +1,7 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
ChangeLog - 2005-07-14
ChangeLog - 2005-07-16
Version 0.1.4 (under dev!):
@@ -15,7 +15,8 @@ Version 0.1.4 (under dev!):
* topic completion now decodes UTF-8 string
* fixed bug with IRC URL on command line (irc://)
* new keyboard management: keys are setup in config file, new command
/key was added and some new default keys were added
/key was added and some new default keys were added, alt-k key is
used to grab key (useful for /key command)
* added seconds in infobar time (optional thanks to new setting)
* fixed some curses refreshs
* channels auto-prefixed by "#" (if no prefix found) for /join command
+55 -51
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.4-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2005-07-13 19:29+0200\n"
"PO-Revision-Date: 2005-07-13 19:30+0200\n"
"POT-Creation-Date: 2005-07-16 13:11+0200\n"
"PO-Revision-Date: 2005-07-16 13:12+0200\n"
"Last-Translator: Roberto González Cardenete <robert.glez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -2119,7 +2119,7 @@ msgstr ""
"%s no ha sido posible añadir el manejador para el mensaje \"%s\" (memoria "
"insuficiente)\n"
#: src/gui/curses/gui-input.c:300
#: src/gui/curses/gui-input.c:337
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s el lag (retraso) es alto, desconectando del servidor...\n"
@@ -2140,44 +2140,44 @@ msgstr "MB"
msgid "Gb"
msgstr "GB"
#: src/gui/curses/gui-display.c:1116
#: src/gui/curses/gui-display.c:1119
msgid "(away)"
msgstr "(ausente)"
#: src/gui/curses/gui-display.c:1233
#: src/gui/curses/gui-display.c:1236
msgid "[not connected]"
msgstr "[no conectado]"
#: src/gui/curses/gui-display.c:1249
#: src/gui/curses/gui-display.c:1252
msgid "Act: "
msgstr "Act: "
#: src/gui/curses/gui-display.c:1302
#: src/gui/curses/gui-display.c:1305
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
#: src/gui/curses/gui-display.c:1323
#: src/gui/curses/gui-display.c:1326
msgid "-MORE-"
msgstr "-MÁS-"
#: src/gui/curses/gui-display.c:1563
#: src/gui/curses/gui-display.c:1565
msgid " [A] Accept"
msgstr " [A] Aceptar"
#: src/gui/curses/gui-display.c:1564 src/gui/curses/gui-display.c:1568
#: src/gui/curses/gui-display.c:1566 src/gui/curses/gui-display.c:1570
msgid " [C] Cancel"
msgstr " [C] Cancelar"
#: src/gui/curses/gui-display.c:1573
#: src/gui/curses/gui-display.c:1575
msgid " [R] Remove"
msgstr " [R] Eliminar"
#: src/gui/curses/gui-display.c:1577
#: src/gui/curses/gui-display.c:1579
msgid " [P] Purge old DCC"
msgstr " [P] Purgar los viejos DCC"
#: src/gui/curses/gui-display.c:1578
#: src/gui/curses/gui-display.c:1580
msgid " [Q] Close DCC view"
msgstr " [Q] Cerrar la vista DCC"
@@ -2185,159 +2185,163 @@ msgstr " [Q] Cerrar la vista DCC"
msgid "server"
msgstr "servidor"
#: src/gui/gui-common.c:334
#: src/gui/gui-common.c:340
msgid "Not enough memory for infobar message\n"
msgstr "No hay suficiente memoria para el mensaje de la barra de información\n"
#: src/gui/gui-common.c:509
#: src/gui/gui-common.c:515
msgid "Not enough memory for new line\n"
msgstr "No hay suficiente memoria para una nueva línea\n"
#: src/gui/gui-common.c:552
#: src/gui/gui-common.c:558
msgid "Not enough memory for new message\n"
msgstr "No hay suficiente memoria para el mensaje de la barra de información\n"
#: src/gui/gui-keyboard.c:43
#: src/gui/gui-keyboard.c:45
msgid "terminate line"
msgstr "terminar línea"
#: src/gui/gui-keyboard.c:45
#: src/gui/gui-keyboard.c:47
msgid "complete word"
msgstr "completar palabra"
#: src/gui/gui-keyboard.c:47
#: src/gui/gui-keyboard.c:49
msgid "delete previous char"
msgstr "borrar el carácter anterior"
#: src/gui/gui-keyboard.c:49
#: src/gui/gui-keyboard.c:51
msgid "delete next char"
msgstr "borrar el carácter siguiente"
#: src/gui/gui-keyboard.c:51
#: src/gui/gui-keyboard.c:53
msgid "delete until end of line"
msgstr "borrar hasta fin de línea"
#: src/gui/gui-keyboard.c:53
#: src/gui/gui-keyboard.c:55
msgid "delete until beginning of line"
msgstr "borrar hasta principio de línea"
#: src/gui/gui-keyboard.c:55
#: src/gui/gui-keyboard.c:57
msgid "delete entire line"
msgstr "borrar línea entera"
#: src/gui/gui-keyboard.c:57
#: src/gui/gui-keyboard.c:59
msgid "delete previous word"
msgstr "borrar la palabra anterior"
#: src/gui/gui-keyboard.c:59
#: src/gui/gui-keyboard.c:61
msgid "delete next word"
msgstr "borrar la palabra siguiente"
#: src/gui/gui-keyboard.c:61
#: src/gui/gui-keyboard.c:63
msgid "paste current clipboard content"
msgstr ""
#: src/gui/gui-keyboard.c:63
#: src/gui/gui-keyboard.c:65
msgid "transpose chars"
msgstr ""
#: src/gui/gui-keyboard.c:65
#: src/gui/gui-keyboard.c:67
msgid "go to beginning of line"
msgstr "ir al principio de línea"
#: src/gui/gui-keyboard.c:67
#: src/gui/gui-keyboard.c:69
msgid "go to end of line"
msgstr "ir al final de línea"
#: src/gui/gui-keyboard.c:69
#: src/gui/gui-keyboard.c:71
msgid "move one char left"
msgstr "mover un carácter a la izquierda"
#: src/gui/gui-keyboard.c:71
#: src/gui/gui-keyboard.c:73
msgid "move to previous word"
msgstr "mover a la palabra anterior"
#: src/gui/gui-keyboard.c:73
#: src/gui/gui-keyboard.c:75
msgid "move one char right"
msgstr "mover un carácter a la derecha"
#: src/gui/gui-keyboard.c:75
#: src/gui/gui-keyboard.c:77
msgid "move to next word"
msgstr "mover a la palabra siguiente"
#: src/gui/gui-keyboard.c:77
#: src/gui/gui-keyboard.c:79
msgid "call previous command in history"
msgstr "llamar al comando anterior en el historial"
#: src/gui/gui-keyboard.c:79
#: src/gui/gui-keyboard.c:81
msgid "call next command in history"
msgstr "llamar al comando siguiente en el historial"
#: src/gui/gui-keyboard.c:81
#: src/gui/gui-keyboard.c:83
msgid "scroll one page up"
msgstr "desplazarse una página hacia arriba"
#: src/gui/gui-keyboard.c:83
#: src/gui/gui-keyboard.c:85
msgid "scroll one page down"
msgstr "desplazarse una página hacia abajo"
#: src/gui/gui-keyboard.c:85
#: src/gui/gui-keyboard.c:87
msgid "clear infobar"
msgstr "limpiar barra de información"
#: src/gui/gui-keyboard.c:87
#: src/gui/gui-keyboard.c:89
msgid "scroll nicklist one page up"
msgstr "desplazar la lista de nicks una página hacia arriba"
#: src/gui/gui-keyboard.c:89
#: src/gui/gui-keyboard.c:91
msgid "scroll nicklist one page down"
msgstr "desplazar la lista de nicks una página hacia abajo"
#: src/gui/gui-keyboard.c:91
#: src/gui/gui-keyboard.c:93
msgid "display beginning of nicklist"
msgstr "mostrar el principio de la lista de nicks"
#: src/gui/gui-keyboard.c:93
#: src/gui/gui-keyboard.c:95
msgid "display end of nicklist"
msgstr "mostrar el final de la lista de nicks"
#: src/gui/gui-keyboard.c:95
#: src/gui/gui-keyboard.c:97
msgid "refresh screen"
msgstr "recargar la pantalla"
#: src/gui/gui-keyboard.c:97
#: src/gui/gui-keyboard.c:99
msgid "jump to buffer with activity"
msgstr "saltar al búfer con actividad"
#: src/gui/gui-keyboard.c:99
#: src/gui/gui-keyboard.c:101
msgid "jump to DCC buffer"
msgstr "saltar al búfer DCC"
#: src/gui/gui-keyboard.c:101
#: src/gui/gui-keyboard.c:103
msgid "jump to server buffer"
msgstr "saltar al búfer servidor"
#: src/gui/gui-keyboard.c:103
#: src/gui/gui-keyboard.c:105
msgid "jump to next server"
msgstr "saltar al servidor siguiente"
#: src/gui/gui-keyboard.c:105
#: src/gui/gui-keyboard.c:107
msgid "clear hotlist"
msgstr "limpiar hotlist"
#: src/gui/gui-keyboard.c:403 src/common/command.c:1471
#: src/gui/gui-keyboard.c:109
msgid "grab a key"
msgstr ""
#: src/gui/gui-keyboard.c:420 src/common/command.c:1471
#, 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:414
#: src/gui/gui-keyboard.c:431
#, 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 función inválido: \"%s"
"\")\n"
#: src/gui/gui-keyboard.c:427
#: src/gui/gui-keyboard.c:444
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s no hay suficiente memoria para atar la clave\n"
+55 -51
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.4-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2005-07-13 19:29+0200\n"
"PO-Revision-Date: 2005-07-13 19:32+0200\n"
"POT-Creation-Date: 2005-07-16 13:11+0200\n"
"PO-Revision-Date: 2005-07-16 13:11+0200\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -2119,7 +2119,7 @@ msgstr ""
"%s impossible d'ajouter la fonction pour le message \"%s\" (mémoire "
"insuffisante)\n"
#: src/gui/curses/gui-input.c:300
#: src/gui/curses/gui-input.c:337
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s le lag est élevé, déconnexion du serveur...\n"
@@ -2140,44 +2140,44 @@ msgstr "Mo"
msgid "Gb"
msgstr "Go"
#: src/gui/curses/gui-display.c:1116
#: src/gui/curses/gui-display.c:1119
msgid "(away)"
msgstr "(absent)"
#: src/gui/curses/gui-display.c:1233
#: src/gui/curses/gui-display.c:1236
msgid "[not connected]"
msgstr "[non connecté]"
#: src/gui/curses/gui-display.c:1249
#: src/gui/curses/gui-display.c:1252
msgid "Act: "
msgstr "Act: "
#: src/gui/curses/gui-display.c:1302
#: src/gui/curses/gui-display.c:1305
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
#: src/gui/curses/gui-display.c:1323
#: src/gui/curses/gui-display.c:1326
msgid "-MORE-"
msgstr "-PLUS-"
#: src/gui/curses/gui-display.c:1563
#: src/gui/curses/gui-display.c:1565
msgid " [A] Accept"
msgstr " [A] Accepter"
#: src/gui/curses/gui-display.c:1564 src/gui/curses/gui-display.c:1568
#: src/gui/curses/gui-display.c:1566 src/gui/curses/gui-display.c:1570
msgid " [C] Cancel"
msgstr " [C] Annuler"
#: src/gui/curses/gui-display.c:1573
#: src/gui/curses/gui-display.c:1575
msgid " [R] Remove"
msgstr " [R] Retirer"
#: src/gui/curses/gui-display.c:1577
#: src/gui/curses/gui-display.c:1579
msgid " [P] Purge old DCC"
msgstr " [P] Purger anciens DCC"
#: src/gui/curses/gui-display.c:1578
#: src/gui/curses/gui-display.c:1580
msgid " [Q] Close DCC view"
msgstr " [Q] Fermer la vue DCC"
@@ -2185,158 +2185,162 @@ msgstr " [Q] Fermer la vue DCC"
msgid "server"
msgstr "serveur"
#: src/gui/gui-common.c:334
#: src/gui/gui-common.c:340
msgid "Not enough memory for infobar message\n"
msgstr "Pas assez de mémoire pour un message de la barre d'infos\n"
#: src/gui/gui-common.c:509
#: src/gui/gui-common.c:515
msgid "Not enough memory for new line\n"
msgstr "Pas assez de mémoire pour une nouvelle ligne !\n"
#: src/gui/gui-common.c:552
#: src/gui/gui-common.c:558
msgid "Not enough memory for new message\n"
msgstr "Pas assez de mémoire pour un message de la barre d'infos\n"
#: src/gui/gui-keyboard.c:43
#: src/gui/gui-keyboard.c:45
msgid "terminate line"
msgstr "terminer la ligne"
#: src/gui/gui-keyboard.c:45
#: src/gui/gui-keyboard.c:47
msgid "complete word"
msgstr "compléter le mot"
#: src/gui/gui-keyboard.c:47
#: src/gui/gui-keyboard.c:49
msgid "delete previous char"
msgstr "effacer le caractère précédent"
#: src/gui/gui-keyboard.c:49
#: src/gui/gui-keyboard.c:51
msgid "delete next char"
msgstr "effacer le caractère suivant"
#: src/gui/gui-keyboard.c:51
#: src/gui/gui-keyboard.c:53
msgid "delete until end of line"
msgstr "effacer jusqu'à la fin de la ligne"
#: src/gui/gui-keyboard.c:53
#: src/gui/gui-keyboard.c:55
msgid "delete until beginning of line"
msgstr "effacer jusqu'au début de la ligne"
#: src/gui/gui-keyboard.c:55
#: src/gui/gui-keyboard.c:57
msgid "delete entire line"
msgstr "effacer la ligne entière"
#: src/gui/gui-keyboard.c:57
#: src/gui/gui-keyboard.c:59
msgid "delete previous word"
msgstr "effacer le mot précédent"
#: src/gui/gui-keyboard.c:59
#: src/gui/gui-keyboard.c:61
msgid "delete next word"
msgstr "effacer le mot suivant"
#: src/gui/gui-keyboard.c:61
#: src/gui/gui-keyboard.c:63
msgid "paste current clipboard content"
msgstr "coller le contenu du presse-papier"
#: src/gui/gui-keyboard.c:63
#: src/gui/gui-keyboard.c:65
msgid "transpose chars"
msgstr "inverser les caractères"
#: src/gui/gui-keyboard.c:65
#: src/gui/gui-keyboard.c:67
msgid "go to beginning of line"
msgstr "aller au début de la ligne"
#: src/gui/gui-keyboard.c:67
#: src/gui/gui-keyboard.c:69
msgid "go to end of line"
msgstr "aller à la fin de la ligne"
#: src/gui/gui-keyboard.c:69
#: src/gui/gui-keyboard.c:71
msgid "move one char left"
msgstr "se déplacer d'un caractère à gauche"
#: src/gui/gui-keyboard.c:71
#: src/gui/gui-keyboard.c:73
msgid "move to previous word"
msgstr "se déplacer au mot précédent"
#: src/gui/gui-keyboard.c:73
#: src/gui/gui-keyboard.c:75
msgid "move one char right"
msgstr "se déplacer d'un caractère à droite"
#: src/gui/gui-keyboard.c:75
#: src/gui/gui-keyboard.c:77
msgid "move to next word"
msgstr "se déplacer au mot suivant"
#: src/gui/gui-keyboard.c:77
#: src/gui/gui-keyboard.c:79
msgid "call previous command in history"
msgstr "appeler la commande précédente dans l'historique"
#: src/gui/gui-keyboard.c:79
#: src/gui/gui-keyboard.c:81
msgid "call next command in history"
msgstr "appeler la commande suivante dans l'historique"
#: src/gui/gui-keyboard.c:81
#: src/gui/gui-keyboard.c:83
msgid "scroll one page up"
msgstr "faire défiler d'une page vers le haut"
#: src/gui/gui-keyboard.c:83
#: src/gui/gui-keyboard.c:85
msgid "scroll one page down"
msgstr "faire défiler d'une page vers le bas"
#: src/gui/gui-keyboard.c:85
#: src/gui/gui-keyboard.c:87
msgid "clear infobar"
msgstr "effacer la barre d'infos"
#: src/gui/gui-keyboard.c:87
#: src/gui/gui-keyboard.c:89
msgid "scroll nicklist one page up"
msgstr "faire défiler la liste des pseudos d'une page vers le haut"
#: src/gui/gui-keyboard.c:89
#: src/gui/gui-keyboard.c:91
msgid "scroll nicklist one page down"
msgstr "faire défiler la liste des pseudos d'une page vers le bas"
#: src/gui/gui-keyboard.c:91
#: src/gui/gui-keyboard.c:93
msgid "display beginning of nicklist"
msgstr "afficher le début de la liste des pseudos"
#: src/gui/gui-keyboard.c:93
#: src/gui/gui-keyboard.c:95
msgid "display end of nicklist"
msgstr "afficher la fin de la liste des pseudos"
#: src/gui/gui-keyboard.c:95
#: src/gui/gui-keyboard.c:97
msgid "refresh screen"
msgstr "rafraichir l'écran"
#: src/gui/gui-keyboard.c:97
#: src/gui/gui-keyboard.c:99
msgid "jump to buffer with activity"
msgstr "sauter au tampon avec de l'activité"
#: src/gui/gui-keyboard.c:99
#: src/gui/gui-keyboard.c:101
msgid "jump to DCC buffer"
msgstr "sauter au tampon DCC"
#: src/gui/gui-keyboard.c:101
#: src/gui/gui-keyboard.c:103
msgid "jump to server buffer"
msgstr "sauter au tampon du serveur"
#: src/gui/gui-keyboard.c:103
#: src/gui/gui-keyboard.c:105
msgid "jump to next server"
msgstr "sauter au prochain serveur"
#: src/gui/gui-keyboard.c:105
#: src/gui/gui-keyboard.c:107
msgid "clear hotlist"
msgstr "effacer la liste d'activité"
#: src/gui/gui-keyboard.c:403 src/common/command.c:1471
#: src/gui/gui-keyboard.c:109
msgid "grab a key"
msgstr "capturer une touche"
#: src/gui/gui-keyboard.c:420 src/common/command.c:1471
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s impossible de créer la touche \"%s\"\n"
#: src/gui/gui-keyboard.c:414
#: src/gui/gui-keyboard.c:431
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s impossible de créer la touche \"%s\" (nom fonction incorrect: \"%s\")\n"
#: src/gui/gui-keyboard.c:427
#: src/gui/gui-keyboard.c:444
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s pas assez de mémoire pour la touche\n"
+54 -50
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2005-07-13 19:29+0200\n"
"POT-Creation-Date: 2005-07-16 13:11+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"
@@ -1984,7 +1984,7 @@ msgstr ""
msgid "%s unable to add handler for \"%s\" message (not enough memory)\n"
msgstr ""
#: src/gui/curses/gui-input.c:300
#: src/gui/curses/gui-input.c:337
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr ""
@@ -2005,44 +2005,44 @@ msgstr ""
msgid "Gb"
msgstr ""
#: src/gui/curses/gui-display.c:1116
#: src/gui/curses/gui-display.c:1119
msgid "(away)"
msgstr ""
#: src/gui/curses/gui-display.c:1233
#: src/gui/curses/gui-display.c:1236
msgid "[not connected]"
msgstr ""
#: src/gui/curses/gui-display.c:1249
#: src/gui/curses/gui-display.c:1252
msgid "Act: "
msgstr ""
#: src/gui/curses/gui-display.c:1302
#: src/gui/curses/gui-display.c:1305
#, c-format
msgid "Lag: %.1f"
msgstr ""
#: src/gui/curses/gui-display.c:1323
#: src/gui/curses/gui-display.c:1326
msgid "-MORE-"
msgstr ""
#: src/gui/curses/gui-display.c:1563
#: src/gui/curses/gui-display.c:1565
msgid " [A] Accept"
msgstr ""
#: src/gui/curses/gui-display.c:1564 src/gui/curses/gui-display.c:1568
#: src/gui/curses/gui-display.c:1566 src/gui/curses/gui-display.c:1570
msgid " [C] Cancel"
msgstr ""
#: src/gui/curses/gui-display.c:1573
#: src/gui/curses/gui-display.c:1575
msgid " [R] Remove"
msgstr ""
#: src/gui/curses/gui-display.c:1577
#: src/gui/curses/gui-display.c:1579
msgid " [P] Purge old DCC"
msgstr ""
#: src/gui/curses/gui-display.c:1578
#: src/gui/curses/gui-display.c:1580
msgid " [Q] Close DCC view"
msgstr ""
@@ -2050,157 +2050,161 @@ msgstr ""
msgid "server"
msgstr ""
#: src/gui/gui-common.c:334
#: src/gui/gui-common.c:340
msgid "Not enough memory for infobar message\n"
msgstr ""
#: src/gui/gui-common.c:509
#: src/gui/gui-common.c:515
msgid "Not enough memory for new line\n"
msgstr ""
#: src/gui/gui-common.c:552
#: src/gui/gui-common.c:558
msgid "Not enough memory for new message\n"
msgstr ""
#: src/gui/gui-keyboard.c:43
#: src/gui/gui-keyboard.c:45
msgid "terminate line"
msgstr ""
#: src/gui/gui-keyboard.c:45
#: src/gui/gui-keyboard.c:47
msgid "complete word"
msgstr ""
#: src/gui/gui-keyboard.c:47
#: src/gui/gui-keyboard.c:49
msgid "delete previous char"
msgstr ""
#: src/gui/gui-keyboard.c:49
#: src/gui/gui-keyboard.c:51
msgid "delete next char"
msgstr ""
#: src/gui/gui-keyboard.c:51
#: src/gui/gui-keyboard.c:53
msgid "delete until end of line"
msgstr ""
#: src/gui/gui-keyboard.c:53
#: src/gui/gui-keyboard.c:55
msgid "delete until beginning of line"
msgstr ""
#: src/gui/gui-keyboard.c:55
#: src/gui/gui-keyboard.c:57
msgid "delete entire line"
msgstr ""
#: src/gui/gui-keyboard.c:57
#: src/gui/gui-keyboard.c:59
msgid "delete previous word"
msgstr ""
#: src/gui/gui-keyboard.c:59
#: src/gui/gui-keyboard.c:61
msgid "delete next word"
msgstr ""
#: src/gui/gui-keyboard.c:61
#: src/gui/gui-keyboard.c:63
msgid "paste current clipboard content"
msgstr ""
#: src/gui/gui-keyboard.c:63
#: src/gui/gui-keyboard.c:65
msgid "transpose chars"
msgstr ""
#: src/gui/gui-keyboard.c:65
#: src/gui/gui-keyboard.c:67
msgid "go to beginning of line"
msgstr ""
#: src/gui/gui-keyboard.c:67
#: src/gui/gui-keyboard.c:69
msgid "go to end of line"
msgstr ""
#: src/gui/gui-keyboard.c:69
#: src/gui/gui-keyboard.c:71
msgid "move one char left"
msgstr ""
#: src/gui/gui-keyboard.c:71
#: src/gui/gui-keyboard.c:73
msgid "move to previous word"
msgstr ""
#: src/gui/gui-keyboard.c:73
#: src/gui/gui-keyboard.c:75
msgid "move one char right"
msgstr ""
#: src/gui/gui-keyboard.c:75
#: src/gui/gui-keyboard.c:77
msgid "move to next word"
msgstr ""
#: src/gui/gui-keyboard.c:77
#: src/gui/gui-keyboard.c:79
msgid "call previous command in history"
msgstr ""
#: src/gui/gui-keyboard.c:79
#: src/gui/gui-keyboard.c:81
msgid "call next command in history"
msgstr ""
#: src/gui/gui-keyboard.c:81
#: src/gui/gui-keyboard.c:83
msgid "scroll one page up"
msgstr ""
#: src/gui/gui-keyboard.c:83
#: src/gui/gui-keyboard.c:85
msgid "scroll one page down"
msgstr ""
#: src/gui/gui-keyboard.c:85
#: src/gui/gui-keyboard.c:87
msgid "clear infobar"
msgstr ""
#: src/gui/gui-keyboard.c:87
#: src/gui/gui-keyboard.c:89
msgid "scroll nicklist one page up"
msgstr ""
#: src/gui/gui-keyboard.c:89
#: src/gui/gui-keyboard.c:91
msgid "scroll nicklist one page down"
msgstr ""
#: src/gui/gui-keyboard.c:91
#: src/gui/gui-keyboard.c:93
msgid "display beginning of nicklist"
msgstr ""
#: src/gui/gui-keyboard.c:93
#: src/gui/gui-keyboard.c:95
msgid "display end of nicklist"
msgstr ""
#: src/gui/gui-keyboard.c:95
#: src/gui/gui-keyboard.c:97
msgid "refresh screen"
msgstr ""
#: src/gui/gui-keyboard.c:97
#: src/gui/gui-keyboard.c:99
msgid "jump to buffer with activity"
msgstr ""
#: src/gui/gui-keyboard.c:99
#: src/gui/gui-keyboard.c:101
msgid "jump to DCC buffer"
msgstr ""
#: src/gui/gui-keyboard.c:101
#: src/gui/gui-keyboard.c:103
msgid "jump to server buffer"
msgstr ""
#: src/gui/gui-keyboard.c:103
#: src/gui/gui-keyboard.c:105
msgid "jump to next server"
msgstr ""
#: src/gui/gui-keyboard.c:105
#: src/gui/gui-keyboard.c:107
msgid "clear hotlist"
msgstr ""
#: src/gui/gui-keyboard.c:403 src/common/command.c:1471
#: src/gui/gui-keyboard.c:109
msgid "grab a key"
msgstr ""
#: src/gui/gui-keyboard.c:420 src/common/command.c:1471
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr ""
#: src/gui/gui-keyboard.c:414
#: src/gui/gui-keyboard.c:431
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
#: src/gui/gui-keyboard.c:427
#: src/gui/gui-keyboard.c:444
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr ""
-3
View File
@@ -204,9 +204,6 @@ completion_build_list (t_completion *completion, void *channel)
if ((strcasecmp (completion->base_command, "key") == 0)
&& (completion->base_command_arg == 1))
{
weelist_add (&completion->completion_list,
&completion->last_completion,
"bind");
weelist_add (&completion->completion_list,
&completion->last_completion,
"unbind");
+1 -1
View File
@@ -112,7 +112,7 @@ fifo_exec (char *text)
if (text[0] == '*')
{
pos_msg = text + 1;
ptr_buffer = (gui_current_window->buffer->dcc) ? gui_buffers : gui_current_window->buffer;
ptr_buffer = (gui_current_window->buffer->has_input) ? gui_current_window->buffer : gui_buffers;
ptr_server = SERVER(ptr_buffer);
}
else
+40 -3
View File
@@ -92,9 +92,10 @@ gui_input_default_key_bindings ()
gui_key_bind ( /* ^right */ "meta-Oc", "next_word");
gui_key_bind ( /* m-h */ "meta-h", "hotlist_clear");
gui_key_bind ( /* m-j,m-d */ "meta-jmeta-d", "jump_dcc");
gui_key_bind ( /* m-r */ "meta-r", "delete_line");
gui_key_bind ( /* m-j,m-s */ "meta-jmeta-s", "jump_server");
gui_key_bind ( /* m-j,m-x */ "meta-jmeta-x", "jump_next_server");
gui_key_bind ( /* m-k */ "meta-k", "grab_key");
gui_key_bind ( /* m-r */ "meta-r", "delete_line");
/* keys binded with commands */
gui_key_bind ( /* m-left */ "meta-meta2-D", "/buffer -1");
@@ -123,6 +124,35 @@ gui_input_default_key_bindings ()
}
}
/*
* gui_input_grab_end: insert grabbed key in input buffer
*/
void
gui_input_grab_end ()
{
char *expanded_key;
/* get expanded name (for example: ^U => ctrl-u) */
expanded_key = gui_key_get_expanded_name (gui_key_buffer);
if (expanded_key)
{
if (gui_current_window->buffer->has_input)
{
gui_input_insert_string (expanded_key, -1);
gui_current_window->buffer->input_buffer_pos += strlen (expanded_key);
gui_draw_buffer_input (gui_current_window->buffer, 1);
}
free (expanded_key);
}
/* end grab mode */
gui_key_grab = 0;
gui_key_grab_count = 0;
gui_key_buffer[0] = '\0';
}
/*
* gui_input_read: read keyboard chars
*/
@@ -138,10 +168,17 @@ gui_input_read ()
to read also socket & co */
while (i < 8)
{
if (gui_key_grab && (gui_key_grab_count > 10))
gui_input_grab_end ();
key = getch ();
if (key == ERR)
{
if (gui_key_grab && (gui_key_grab_count > 0))
gui_input_grab_end ();
break;
}
if (key == KEY_RESIZE)
{
@@ -176,11 +213,11 @@ gui_input_read ()
}
}
if (strcmp (key_str, "^") == 0)
/*if (strcmp (key_str, "^") == 0)
{
key_str[1] = '^';
key_str[2] = '\0';
}
}*/
/*gui_printf (gui_current_window->buffer, "gui_input_read: key = %s (%d)\n", key_str, key);*/
+251 -199
View File
@@ -201,9 +201,15 @@ gui_buffer_new (t_gui_window *window, void *server, void *channel, int dcc,
log_start (new_buffer);
/* init input buffer */
new_buffer->input_buffer_alloc = INPUT_BUFFER_BLOCK_SIZE;
new_buffer->input_buffer = (char *) malloc (INPUT_BUFFER_BLOCK_SIZE);
new_buffer->input_buffer[0] = '\0';
new_buffer->has_input = (new_buffer->dcc) ? 0 : 1;
if (new_buffer->has_input)
{
new_buffer->input_buffer_alloc = INPUT_BUFFER_BLOCK_SIZE;
new_buffer->input_buffer = (char *) malloc (INPUT_BUFFER_BLOCK_SIZE);
new_buffer->input_buffer[0] = '\0';
}
else
new_buffer->input_buffer = NULL;
new_buffer->input_buffer_size = 0;
new_buffer->input_buffer_pos = 0;
new_buffer->input_buffer_1st_display = 0;
@@ -565,17 +571,59 @@ gui_input_optimize_buffer_size (t_gui_buffer *buffer)
{
int optimal_size;
optimal_size = ((buffer->input_buffer_size / INPUT_BUFFER_BLOCK_SIZE) *
INPUT_BUFFER_BLOCK_SIZE) + INPUT_BUFFER_BLOCK_SIZE;
if (buffer->input_buffer_alloc != optimal_size)
if (buffer->has_input)
{
buffer->input_buffer_alloc = optimal_size;
buffer->input_buffer = realloc (buffer->input_buffer, optimal_size);
optimal_size = ((buffer->input_buffer_size / INPUT_BUFFER_BLOCK_SIZE) *
INPUT_BUFFER_BLOCK_SIZE) + INPUT_BUFFER_BLOCK_SIZE;
if (buffer->input_buffer_alloc != optimal_size)
{
buffer->input_buffer_alloc = optimal_size;
buffer->input_buffer = realloc (buffer->input_buffer, optimal_size);
}
}
}
/*
* gui_input_clipboard_copy: copy string into clipboard
*/
void
gui_input_clipboard_copy (char *buffer, int size)
{
if (size <= 0)
return;
if (gui_input_clipboard != NULL)
free(gui_input_clipboard);
gui_input_clipboard = (char *) malloc( (size + 1) * sizeof(*gui_input_clipboard));
if (gui_input_clipboard)
{
memcpy(gui_input_clipboard, buffer, size);
gui_input_clipboard[size] = '\0';
}
}
/*
* gui_input_clipboard_paste: paste clipboard at cursor pos in input line
*/
void
gui_input_clipboard_paste ()
{
if (gui_current_window->buffer->has_input && gui_input_clipboard)
{
gui_input_insert_string (gui_input_clipboard, gui_current_window->buffer->input_buffer_pos);
gui_current_window->buffer->input_buffer_pos += strlen (gui_input_clipboard);
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_current_window->buffer->completion.position = -1;
}
}
/*
* gui_input_insert_string: insert a string into the input buffer
* if pos == -1, string is inserted at cursor position
*/
void
@@ -583,22 +631,28 @@ gui_input_insert_string (char *string, int pos)
{
int i, start, end, length;
length = strlen (string);
/* increase buffer size */
gui_current_window->buffer->input_buffer_size += length;
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
/* move end of string to the right */
start = pos + length;
end = gui_current_window->buffer->input_buffer_size - 1;
for (i = end; i >= start; i--)
gui_current_window->buffer->input_buffer[i] =
gui_current_window->buffer->input_buffer[i - length];
/* insert new string */
strncpy (gui_current_window->buffer->input_buffer + pos, string, length);
if (gui_current_window->buffer->has_input)
{
if (pos == -1)
pos = gui_current_window->buffer->input_buffer_pos;
length = strlen (string);
/* increase buffer size */
gui_current_window->buffer->input_buffer_size += length;
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
/* move end of string to the right */
start = pos + length;
end = gui_current_window->buffer->input_buffer_size - 1;
for (i = end; i >= start; i--)
gui_current_window->buffer->input_buffer[i] =
gui_current_window->buffer->input_buffer[i - length];
/* insert new string */
strncpy (gui_current_window->buffer->input_buffer + pos, string, length);
}
}
/*
@@ -683,7 +737,7 @@ gui_input_insert_char (int key)
break;
}
}
else
else if (gui_current_window->buffer->has_input)
{
/*gui_printf (gui_current_window->buffer,
"[Debug] key pressed = %d, hex = %02X, octal = %o\n", key, key, key);*/
@@ -707,7 +761,7 @@ gui_input_return ()
{
t_gui_buffer *ptr_buffer;
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_size > 0)
{
@@ -740,7 +794,7 @@ gui_input_tab ()
{
int i;
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
completion_search (&(gui_current_window->buffer->completion),
CHANNEL(gui_current_window->buffer),
@@ -837,7 +891,7 @@ gui_input_backspace ()
{
int i;
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos > 0)
{
@@ -867,7 +921,7 @@ gui_input_delete ()
{
int i;
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos <
gui_current_window->buffer->input_buffer_size)
@@ -897,46 +951,49 @@ gui_input_delete_previous_word ()
{
int i, j, num_char_deleted, num_char_end;
if (gui_current_window->buffer->input_buffer_pos > 0)
if (gui_current_window->buffer->has_input)
{
i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] == ' '))
i--;
if (i >= 0)
if (gui_current_window->buffer->input_buffer_pos > 0)
{
i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] != ' '))
(gui_current_window->buffer->input_buffer[i] == ' '))
i--;
if (i >= 0)
{
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] == ' '))
(gui_current_window->buffer->input_buffer[i] != ' '))
i--;
if (i >= 0)
{
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] == ' '))
i--;
}
}
}
if (i >= 0)
if (i >= 0)
i++;
i++;
i++;
num_char_deleted = gui_current_window->buffer->input_buffer_pos - i;
num_char_end = gui_current_window->buffer->input_buffer_size -
gui_current_window->buffer->input_buffer_pos;
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos - num_char_deleted,
num_char_deleted);
for (j = 0; j < num_char_end; j++)
gui_current_window->buffer->input_buffer[i + j] =
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos + j];
gui_current_window->buffer->input_buffer_size -= num_char_deleted;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_current_window->buffer->input_buffer_pos = i;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
num_char_deleted = gui_current_window->buffer->input_buffer_pos - i;
num_char_end = gui_current_window->buffer->input_buffer_size -
gui_current_window->buffer->input_buffer_pos;
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos - num_char_deleted,
num_char_deleted);
for (j = 0; j < num_char_end; j++)
gui_current_window->buffer->input_buffer[i + j] =
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos + j];
gui_current_window->buffer->input_buffer_size -= num_char_deleted;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_current_window->buffer->input_buffer_pos = i;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
}
}
@@ -949,28 +1006,31 @@ gui_input_delete_next_word ()
{
int i, j, num_char_deleted;
i = gui_current_window->buffer->input_buffer_pos;
while (i < gui_current_window->buffer->input_buffer_size)
if (gui_current_window->buffer->has_input)
{
if ((gui_current_window->buffer->input_buffer[i] == ' ')
&& i != gui_current_window->buffer->input_buffer_pos)
break;
i++;
i = gui_current_window->buffer->input_buffer_pos;
while (i < gui_current_window->buffer->input_buffer_size)
{
if ((gui_current_window->buffer->input_buffer[i] == ' ')
&& i != gui_current_window->buffer->input_buffer_pos)
break;
i++;
}
num_char_deleted = i - gui_current_window->buffer->input_buffer_pos;
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos, num_char_deleted);
for (j = i; j < gui_current_window->buffer->input_buffer_size; j++)
gui_current_window->buffer->input_buffer[j - num_char_deleted] =
gui_current_window->buffer->input_buffer[j];
gui_current_window->buffer->input_buffer_size -= num_char_deleted;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
num_char_deleted = i - gui_current_window->buffer->input_buffer_pos;
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos, num_char_deleted);
for (j = i; j < gui_current_window->buffer->input_buffer_size; j++)
gui_current_window->buffer->input_buffer[j - num_char_deleted] =
gui_current_window->buffer->input_buffer[j];
gui_current_window->buffer->input_buffer_size -= num_char_deleted;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
/*
@@ -980,25 +1040,28 @@ gui_input_delete_next_word ()
void
gui_input_delete_begin_of_line ()
{
if (gui_current_window->buffer->input_buffer_pos > 0)
int i;
if (gui_current_window->buffer->has_input)
{
int i;
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer,
gui_current_window->buffer->input_buffer_pos);
for (i = gui_current_window->buffer->input_buffer_pos;
i < gui_current_window->buffer->input_buffer_size; i++)
gui_current_window->buffer->input_buffer[i - gui_current_window->buffer->input_buffer_pos] =
gui_current_window->buffer->input_buffer[i];
gui_current_window->buffer->input_buffer_size -=
gui_current_window->buffer->input_buffer_pos;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_current_window->buffer->input_buffer_pos = 0;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
if (gui_current_window->buffer->input_buffer_pos > 0)
{
gui_input_clipboard_copy (gui_current_window->buffer->input_buffer,
gui_current_window->buffer->input_buffer_pos);
for (i = gui_current_window->buffer->input_buffer_pos;
i < gui_current_window->buffer->input_buffer_size; i++)
gui_current_window->buffer->input_buffer[i - gui_current_window->buffer->input_buffer_pos] =
gui_current_window->buffer->input_buffer[i];
gui_current_window->buffer->input_buffer_size -=
gui_current_window->buffer->input_buffer_pos;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_current_window->buffer->input_buffer_pos = 0;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
}
}
@@ -1009,16 +1072,19 @@ gui_input_delete_begin_of_line ()
void
gui_input_delete_end_of_line ()
{
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos,
gui_current_window->buffer->input_buffer_size -
gui_current_window->buffer->input_buffer_pos);
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' ';
gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
if (gui_current_window->buffer->has_input)
{
gui_input_clipboard_copy(gui_current_window->buffer->input_buffer +
gui_current_window->buffer->input_buffer_pos,
gui_current_window->buffer->input_buffer_size -
gui_current_window->buffer->input_buffer_pos);
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' ';
gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ;
gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0';
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
}
/*
@@ -1028,12 +1094,15 @@ gui_input_delete_end_of_line ()
void
gui_input_delete_line ()
{
gui_current_window->buffer->input_buffer[0] = '\0';
gui_current_window->buffer->input_buffer_size = 0;
gui_current_window->buffer->input_buffer_pos = 0;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
if (gui_current_window->buffer->has_input)
{
gui_current_window->buffer->input_buffer[0] = '\0';
gui_current_window->buffer->input_buffer_size = 0;
gui_current_window->buffer->input_buffer_pos = 0;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_input_optimize_buffer_size (gui_current_window->buffer);
gui_current_window->buffer->completion.position = -1;
}
}
/*
@@ -1046,59 +1115,24 @@ gui_input_transpose_chars ()
char buf;
int curpos;
if (gui_current_window->buffer->input_buffer_pos > 0)
{
curpos = gui_current_window->buffer->input_buffer_pos;
if (curpos == gui_current_window->buffer->input_buffer_size)
curpos--;
else
gui_current_window->buffer->input_buffer_pos++;
buf = gui_current_window->buffer->input_buffer[curpos];
gui_current_window->buffer->input_buffer[curpos] =
gui_current_window->buffer->input_buffer[curpos-1];
gui_current_window->buffer->input_buffer[curpos-1] = buf;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_current_window->buffer->completion.position = -1;
}
}
/*
* gui_input_clipboard_paste: paste clipboard at cursor pos in input line
*/
void
gui_input_clipboard_paste ()
{
if (gui_input_clipboard)
if (gui_current_window->buffer->has_input)
{
gui_input_insert_string(gui_input_clipboard, gui_current_window->buffer->input_buffer_pos);
gui_current_window->buffer->input_buffer_pos += strlen(gui_input_clipboard);
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_current_window->buffer->completion.position = -1;
}
}
/*
* gui_input_clipboard_copy: copy string into clipboard
*/
void
gui_input_clipboard_copy (char *buffer, int size)
{
if (size <= 0)
return;
if (gui_input_clipboard != NULL)
free(gui_input_clipboard);
gui_input_clipboard = (char *) malloc( (size + 1) * sizeof(*gui_input_clipboard));
if (gui_input_clipboard)
{
memcpy(gui_input_clipboard, buffer, size);
gui_input_clipboard[size] = '\0';
if (gui_current_window->buffer->input_buffer_pos > 0)
{
curpos = gui_current_window->buffer->input_buffer_pos;
if (curpos == gui_current_window->buffer->input_buffer_size)
curpos--;
else
gui_current_window->buffer->input_buffer_pos++;
buf = gui_current_window->buffer->input_buffer[curpos];
gui_current_window->buffer->input_buffer[curpos] =
gui_current_window->buffer->input_buffer[curpos-1];
gui_current_window->buffer->input_buffer[curpos-1] = buf;
gui_draw_buffer_input (gui_current_window->buffer, 0);
gui_current_window->buffer->completion.position = -1;
}
}
}
@@ -1109,7 +1143,7 @@ gui_input_clipboard_copy (char *buffer, int size)
void
gui_input_home ()
{
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos > 0)
{
@@ -1126,7 +1160,7 @@ gui_input_home ()
void
gui_input_end ()
{
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos <
gui_current_window->buffer->input_buffer_size)
@@ -1145,7 +1179,7 @@ gui_input_end ()
void
gui_input_left ()
{
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos > 0)
{
@@ -1164,22 +1198,25 @@ gui_input_previous_word ()
{
int i;
if (gui_current_window->buffer->input_buffer_pos > 0)
if (gui_current_window->buffer->has_input)
{
i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] == ' '))
i--;
if (i < 0)
gui_current_window->buffer->input_buffer_pos = 0;
else
if (gui_current_window->buffer->input_buffer_pos > 0)
{
i = gui_current_window->buffer->input_buffer_pos - 1;
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] != ' '))
(gui_current_window->buffer->input_buffer[i] == ' '))
i--;
gui_current_window->buffer->input_buffer_pos = i + 1;
if (i < 0)
gui_current_window->buffer->input_buffer_pos = 0;
else
{
while ((i >= 0) &&
(gui_current_window->buffer->input_buffer[i] != ' '))
i--;
gui_current_window->buffer->input_buffer_pos = i + 1;
}
gui_draw_buffer_input (gui_current_window->buffer, 0);
}
gui_draw_buffer_input (gui_current_window->buffer, 0);
}
}
@@ -1190,7 +1227,7 @@ gui_input_previous_word ()
void
gui_input_right ()
{
if (!gui_current_window->buffer->dcc)
if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->input_buffer_pos <
gui_current_window->buffer->input_buffer_size)
@@ -1210,28 +1247,31 @@ gui_input_next_word ()
{
int i;
if (gui_current_window->buffer->input_buffer_pos <
gui_current_window->buffer->input_buffer_size + 1)
if (gui_current_window->buffer->has_input)
{
i = gui_current_window->buffer->input_buffer_pos;
while ((i <= gui_current_window->buffer->input_buffer_size) &&
(gui_current_window->buffer->input_buffer[i] == ' '))
i++;
if (i > gui_current_window->buffer->input_buffer_size)
gui_current_window->buffer->input_buffer_pos = i - 1;
else
if (gui_current_window->buffer->input_buffer_pos <
gui_current_window->buffer->input_buffer_size + 1)
{
i = gui_current_window->buffer->input_buffer_pos;
while ((i <= gui_current_window->buffer->input_buffer_size) &&
(gui_current_window->buffer->input_buffer[i] != ' '))
(gui_current_window->buffer->input_buffer[i] == ' '))
i++;
if (i > gui_current_window->buffer->input_buffer_size)
gui_current_window->buffer->input_buffer_pos =
gui_current_window->buffer->input_buffer_size;
gui_current_window->buffer->input_buffer_pos = i - 1;
else
gui_current_window->buffer->input_buffer_pos = i;
{
while ((i <= gui_current_window->buffer->input_buffer_size) &&
(gui_current_window->buffer->input_buffer[i] != ' '))
i++;
if (i > gui_current_window->buffer->input_buffer_size)
gui_current_window->buffer->input_buffer_pos =
gui_current_window->buffer->input_buffer_size;
else
gui_current_window->buffer->input_buffer_pos = i;
}
gui_draw_buffer_input (gui_current_window->buffer, 0);
}
gui_draw_buffer_input (gui_current_window->buffer, 0);
}
}
@@ -1260,7 +1300,7 @@ gui_input_up ()
}
}
}
else
else if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->ptr_history)
{
@@ -1323,7 +1363,7 @@ gui_input_down ()
}
}
}
else
else if (gui_current_window->buffer->has_input)
{
if (gui_current_window->buffer->ptr_history)
{
@@ -1400,7 +1440,7 @@ gui_input_jump_dcc ()
void
gui_input_jump_server ()
{
if (!gui_current_window->buffer->dcc)
if (SERVER(gui_current_window->buffer))
{
if (SERVER(gui_current_window->buffer)->buffer !=
gui_current_window->buffer)
@@ -1422,7 +1462,7 @@ gui_input_jump_next_server ()
t_irc_server *ptr_server;
t_gui_buffer *ptr_buffer;
if (!gui_current_window->buffer->dcc)
if (SERVER(gui_current_window->buffer))
{
ptr_server = SERVER(gui_current_window->buffer)->next_server;
if (!ptr_server)
@@ -1470,6 +1510,17 @@ gui_input_infobar_clear ()
gui_draw_buffer_infobar (gui_current_window->buffer, 1);
}
/*
* gui_input_grab_key: init "grab key mode" (next key will be inserted into input buffer)
*/
void
gui_input_grab_key ()
{
if (gui_current_window->buffer->has_input)
gui_key_init_grab ();
}
/*
* gui_switch_to_previous_buffer: switch to previous buffer
*/
@@ -1740,6 +1791,7 @@ gui_buffer_print_log (t_gui_buffer *buffer)
wee_log_printf (" notify_level . . . . : %d\n", buffer->notify_level);
wee_log_printf (" log_filename . . . . : '%s'\n", buffer->log_filename);
wee_log_printf (" log_file . . . . . . : 0x%X\n", buffer->log_file);
wee_log_printf (" has_input. . . . . . : %d\n", buffer->has_input);
wee_log_printf (" input_buffer . . . . : '%s'\n", buffer->input_buffer);
wee_log_printf (" input_buffer_alloc . : %d\n", buffer->input_buffer_alloc);
wee_log_printf (" input_buffer_size. . : %d\n", buffer->input_buffer_size);
+30 -5
View File
@@ -37,6 +37,8 @@ t_gui_key *gui_keys = NULL;
t_gui_key *last_gui_key = NULL;
char gui_key_buffer[128];
int gui_key_grab = 0;
int gui_key_grab_count = 0;
t_gui_key_function gui_key_functions[] =
{ { "return", gui_input_return,
@@ -57,9 +59,9 @@ t_gui_key_function gui_key_functions[] =
N_("delete previous word") },
{ "delete_next_word", gui_input_delete_next_word,
N_("delete next word") },
{ "clipboard_paste", gui_input_clipboard_paste,
{ "clipboard_paste", gui_input_clipboard_paste,
N_("paste current clipboard content") },
{ "transpose_chars", gui_input_transpose_chars,
{ "transpose_chars", gui_input_transpose_chars,
N_("transpose chars") },
{ "home", gui_input_home,
N_("go to beginning of line") },
@@ -103,6 +105,8 @@ t_gui_key_function gui_key_functions[] =
N_("jump to next server") },
{ "hotlist_clear", gui_input_hotlist_clear,
N_("clear hotlist") },
{ "grab_key", gui_input_grab_key,
N_("grab a key") },
{ NULL, NULL, NULL }
};
@@ -115,10 +119,23 @@ void
gui_key_init ()
{
gui_key_buffer[0] = '\0';
gui_key_grab = 0;
gui_key_grab_count = 0;
gui_input_default_key_bindings ();
}
/*
* gui_key_init_show: init "show mode"
*/
void
gui_key_init_grab ()
{
gui_key_grab = 1;
gui_key_grab_count = 0;
}
/*
* gui_key_get_internal_code: get internal code from user key name
* for example: return "^R" for "ctrl-R"
@@ -187,7 +204,7 @@ gui_key_get_expanded_name (char *key)
strcat (result, "meta-");
key += 2;
}
else if (key[0] == '^')
else if ((key[0] == '^') && (key[1]))
{
strcat (result, "ctrl-");
key++;
@@ -466,8 +483,18 @@ gui_key_pressed (char *key_str)
int first_key;
t_gui_key *ptr_key;
/* add key to buffer */
first_key = (gui_key_buffer[0] == '\0');
strcat (gui_key_buffer, key_str);
/* if we are in "show mode", increase counter and return */
if (gui_key_grab)
{
gui_key_grab_count++;
return 0;
}
/* look for key combo in key table */
ptr_key = gui_key_search_part (gui_key_buffer);
if (ptr_key)
{
@@ -482,8 +509,6 @@ gui_key_pressed (char *key_str)
else
(void)(ptr_key->function)();
}
//else
// gui_printf (gui_current_window->buffer, "partial key found\n");
return 0;
}
+11 -1
View File
@@ -104,6 +104,9 @@
#define NOTIFY_LEVEL_MAX 3
#define NOTIFY_LEVEL_DEFAULT NOTIFY_LEVEL_MAX
#define KEY_SHOW_MODE_DISPLAY 1
#define KEY_SHOW_MODE_BIND 2
typedef struct t_gui_message t_gui_message;
struct t_gui_message
@@ -180,6 +183,7 @@ struct t_gui_buffer
FILE *log_file; /* for logging buffer to file */
/* inupt buffer */
int has_input; /* = 1 if buffer has input (DCC has not)*/
char *input_buffer; /* input buffer */
int input_buffer_alloc; /* input buffer: allocated size in mem */
int input_buffer_size; /* buffer size (user input length) */
@@ -292,6 +296,9 @@ extern t_gui_infobar *gui_infobar;
extern t_gui_key *gui_keys;
extern t_gui_key *last_gui_key;
extern t_gui_key_function gui_key_functions[];
extern char gui_key_buffer[128];
extern int gui_key_grab;
extern int gui_key_grab_count;
extern char *gui_input_clipboard;
/* GUI independent functions: windows & buffers */
@@ -306,8 +313,9 @@ extern void gui_infobar_remove ();
extern void gui_buffer_free (t_gui_buffer *, int);
extern t_gui_line *gui_new_line (t_gui_buffer *);
extern t_gui_message *gui_new_message (t_gui_buffer *);
extern void gui_input_clipboard_paste ();
extern void gui_input_clipboard_copy (char *, int);
extern void gui_input_clipboard_paste ();
extern void gui_input_insert_string (char *, int);
extern void gui_input_insert_char ();
extern void gui_input_return ();
extern void gui_input_tab ();
@@ -333,6 +341,7 @@ extern void gui_input_jump_server ();
extern void gui_input_jump_next_server ();
extern void gui_input_hotlist_clear ();
extern void gui_input_infobar_clear ();
extern void gui_input_grab_key ();
extern void gui_switch_to_previous_buffer ();
extern void gui_switch_to_next_buffer ();
extern void gui_switch_to_previous_window ();
@@ -345,6 +354,7 @@ extern void gui_buffer_print_log (t_gui_buffer *);
/* GUI independent functions: keys */
extern void gui_key_init ();
extern void gui_key_init_grab ();
extern char *gui_key_get_internal_code (char *);
extern char *gui_key_get_expanded_name (char *);
extern void *gui_key_function_search_by_name (char *);