core: add options weechat.look.word_chars_{highlight|input} (closes #55, task #9459)

v2.8-utf8proc
Sébastien Helleu 2015-04-11 18:53:44 +02:00
parent c899254019
commit b2a68af077
26 changed files with 661 additions and 61 deletions

View File

@ -19,6 +19,8 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
=== New features
* core: add options weechat.look.word_chars_{highlight|input}
(closes #55, task #9459)
* core: display a warning on startup if the locale can not be set (closes #373)
* core: allow "*" as plugin name in command /plugin reload to reload all
plugins with options

View File

@ -17,6 +17,23 @@ https://weechat.org/files/changelog/ChangeLog-devel.html[ChangeLog]
(file 'ChangeLog.asciidoc' in sources).
== Version 1.2 (under dev)
The word chars are now customizable with two options:
* weechat.look.word_chars_highlight
* weechat.look.word_chars_input
The behavior has changed for command line: now any non-word char is used as
delimiter for keys to move to previous/next word or delete previous/next word.
You can restore the old behavior (only use spaces as delimiters) with this
command:
----
/set weechat.look.word_chars_input "!\u00A0,!\x20,*"
----
== Version 1.1.1 (2015-01-25)
Bug fix and maintenance release.

View File

@ -912,6 +912,16 @@
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette (Standardwert: `"WeeChat ${info:version}"`)
* [[option_weechat.look.word_chars_highlight]] *weechat.look.word_chars_highlight*
** Beschreibung: `comma-separated list of chars (or range of chars) that are considered part or words for highlights; each item can be a single char, a range of chars (format: a-z), a class of wide character (for example "alnum", see man wctype); a "!" before the item makes it negative (ie the char is NOT considered part of words); the value "*" matches any char; unicode chars are allowed with the format \u1234, for example \u00A0 for unbreakable space (see /help print for supported formats)`
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette (Standardwert: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.look.word_chars_input]] *weechat.look.word_chars_input*
** Beschreibung: `comma-separated list of chars (or range of chars) that are considered part or words for command line; each item can be a single char, a range of chars (format: a-z), a class of wide character (for example "alnum", see man wctype); a "!" before the item makes it negative (ie the char is NOT considered part of words); the value "*" matches any char; unicode chars are allowed with the format \u1234, for example \u00A0 for unbreakable space (see /help print for supported formats)`
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette (Standardwert: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.network.connection_timeout]] *weechat.network.connection_timeout*
** Beschreibung: `Zeitüberschreitung (in Sekunden) für eine Verbindung zu einem entfernten Rechner (mittels einem Kindprozess)`
** Typ: integer

View File

@ -912,6 +912,16 @@
** type: string
** values: any string (default value: `"WeeChat ${info:version}"`)
* [[option_weechat.look.word_chars_highlight]] *weechat.look.word_chars_highlight*
** description: `comma-separated list of chars (or range of chars) that are considered part or words for highlights; each item can be a single char, a range of chars (format: a-z), a class of wide character (for example "alnum", see man wctype); a "!" before the item makes it negative (ie the char is NOT considered part of words); the value "*" matches any char; unicode chars are allowed with the format \u1234, for example \u00A0 for unbreakable space (see /help print for supported formats)`
** type: string
** values: any string (default value: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.look.word_chars_input]] *weechat.look.word_chars_input*
** description: `comma-separated list of chars (or range of chars) that are considered part or words for command line; each item can be a single char, a range of chars (format: a-z), a class of wide character (for example "alnum", see man wctype); a "!" before the item makes it negative (ie the char is NOT considered part of words); the value "*" matches any char; unicode chars are allowed with the format \u1234, for example \u00A0 for unbreakable space (see /help print for supported formats)`
** type: string
** values: any string (default value: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.network.connection_timeout]] *weechat.network.connection_timeout*
** description: `timeout (in seconds) for connection to a remote host (made in a child process)`
** type: integer

View File

@ -912,6 +912,16 @@
** type: chaîne
** valeurs: toute chaîne (valeur par défaut: `"WeeChat ${info:version}"`)
* [[option_weechat.look.word_chars_highlight]] *weechat.look.word_chars_highlight*
** description: `liste de caractères séparés pas des virgules (ou intervalle de caractères) qui sont considérés comme faisant partie des mots pour les highlights ; chaque élément peut être un simple caractère, un intervalle de caractères (format : a-z), une classe de caractère large (par exemple "alnum", voir man wctype) ; un "!" avant un élément le rend négatif (c'est-à-dire le caractère ne fait PAS partie des mots) ; la valeur "*" correspond à n'importe quel caractère ; les caractères unicode sont autorisés avec le format \u1234, par exemple \u00A0 pour l'espace insécable (voir /help print pour les formats supportés)`
** type: chaîne
** valeurs: toute chaîne (valeur par défaut: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.look.word_chars_input]] *weechat.look.word_chars_input*
** description: `liste de caractères séparés pas des virgules (ou intervalle de caractères) qui sont considérés comme faisant partie des mots pour la ligne de commande ; chaque élément peut être un simple caractère, un intervalle de caractères (format : a-z), une classe de caractère large (par exemple "alnum", voir man wctype) ; un "!" avant un élément le rend négatif (c'est-à-dire le caractère ne fait PAS partie des mots) ; la valeur "*" correspond à n'importe quel caractère ; les caractères unicode sont autorisés avec le format \u1234, par exemple \u00A0 pour l'espace insécable (voir /help print pour les formats supportés)`
** type: chaîne
** valeurs: toute chaîne (valeur par défaut: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.network.connection_timeout]] *weechat.network.connection_timeout*
** description: `délai d'attente maximum (en secondes) pour la connexion à une machine distante (effectuée dans un processus fils)`
** type: entier

View File

@ -912,6 +912,16 @@
** tipo: stringa
** valori: qualsiasi stringa (valore predefinito: `"WeeChat ${info:version}"`)
* [[option_weechat.look.word_chars_highlight]] *weechat.look.word_chars_highlight*
** descrizione: `comma-separated list of chars (or range of chars) that are considered part or words for highlights; each item can be a single char, a range of chars (format: a-z), a class of wide character (for example "alnum", see man wctype); a "!" before the item makes it negative (ie the char is NOT considered part of words); the value "*" matches any char; unicode chars are allowed with the format \u1234, for example \u00A0 for unbreakable space (see /help print for supported formats)`
** tipo: stringa
** valori: qualsiasi stringa (valore predefinito: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.look.word_chars_input]] *weechat.look.word_chars_input*
** descrizione: `comma-separated list of chars (or range of chars) that are considered part or words for command line; each item can be a single char, a range of chars (format: a-z), a class of wide character (for example "alnum", see man wctype); a "!" before the item makes it negative (ie the char is NOT considered part of words); the value "*" matches any char; unicode chars are allowed with the format \u1234, for example \u00A0 for unbreakable space (see /help print for supported formats)`
** tipo: stringa
** valori: qualsiasi stringa (valore predefinito: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.network.connection_timeout]] *weechat.network.connection_timeout*
** descrizione: `timeout (in secondi) per la connessione ad un host remoto (eseguita in un processo figlio)`
** tipo: intero

View File

@ -912,6 +912,16 @@
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"WeeChat ${info:version}"`)
* [[option_weechat.look.word_chars_highlight]] *weechat.look.word_chars_highlight*
** 説明: `comma-separated list of chars (or range of chars) that are considered part or words for highlights; each item can be a single char, a range of chars (format: a-z), a class of wide character (for example "alnum", see man wctype); a "!" before the item makes it negative (ie the char is NOT considered part of words); the value "*" matches any char; unicode chars are allowed with the format \u1234, for example \u00A0 for unbreakable space (see /help print for supported formats)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.look.word_chars_input]] *weechat.look.word_chars_input*
** 説明: `comma-separated list of chars (or range of chars) that are considered part or words for command line; each item can be a single char, a range of chars (format: a-z), a class of wide character (for example "alnum", see man wctype); a "!" before the item makes it negative (ie the char is NOT considered part of words); the value "*" matches any char; unicode chars are allowed with the format \u1234, for example \u00A0 for unbreakable space (see /help print for supported formats)`
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.network.connection_timeout]] *weechat.network.connection_timeout*
** 説明: `リモートホストへの接続タイムアウト時間 (秒単位) (子プロセスが行う)`
** タイプ: 整数

View File

@ -912,6 +912,16 @@
** typ: ciąg
** wartości: dowolny ciąg (domyślna wartość: `"WeeChat ${info:version}"`)
* [[option_weechat.look.word_chars_highlight]] *weechat.look.word_chars_highlight*
** opis: `comma-separated list of chars (or range of chars) that are considered part or words for highlights; each item can be a single char, a range of chars (format: a-z), a class of wide character (for example "alnum", see man wctype); a "!" before the item makes it negative (ie the char is NOT considered part of words); the value "*" matches any char; unicode chars are allowed with the format \u1234, for example \u00A0 for unbreakable space (see /help print for supported formats)`
** typ: ciąg
** wartości: dowolny ciąg (domyślna wartość: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.look.word_chars_input]] *weechat.look.word_chars_input*
** opis: `comma-separated list of chars (or range of chars) that are considered part or words for command line; each item can be a single char, a range of chars (format: a-z), a class of wide character (for example "alnum", see man wctype); a "!" before the item makes it negative (ie the char is NOT considered part of words); the value "*" matches any char; unicode chars are allowed with the format \u1234, for example \u00A0 for unbreakable space (see /help print for supported formats)`
** typ: ciąg
** wartości: dowolny ciąg (domyślna wartość: `"!\u00A0,-,_,|,alnum"`)
* [[option_weechat.network.connection_timeout]] *weechat.network.connection_timeout*
** opis: `czas oczekiwania (w sekundach) na połączenie ze zdalnym serwerem (wykonywane w procesie potomnym)`
** typ: liczba

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-03-21 08:41+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -3339,6 +3339,26 @@ msgid ""
"will keep title unchanged (note: content is evaluated, see /help eval)"
msgstr "příkaz spuštěný při startu WeeChat, před načtením pluginů"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid "text color for '+' when scrolling bars"
msgstr "barva textu pro '+' při posouvání polí"

View File

@ -24,7 +24,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-03-31 09:13+0200\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <>\n"
@ -3958,6 +3958,26 @@ msgstr ""
"Programmstart gesetzt; ein leerer Eintrag belässt den original Fenstertitel "
"(Hinweis: Inhalt wird evaluiert, siehe /help eval)"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid "text color for '+' when scrolling bars"
msgstr "Farbe des '+' beim Scrollen von Info-Bars"

View File

@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-03-21 08:41+0100\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -3535,6 +3535,26 @@ msgid ""
"will keep title unchanged (note: content is evaluated, see /help eval)"
msgstr "comando ejecutado cuando WeeChat inicia, antes de cargar los plugins"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid "text color for '+' when scrolling bars"
msgstr "color del '+' cuando se desplaza las barras"

View File

@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"PO-Revision-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-04-11 18:42+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n"
@ -3843,6 +3843,44 @@ msgstr ""
"démarrage ; une chaîne vide gardera le titre inchangé (note : le contenu est "
"évalué, voir /help eval)"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
"liste de caractères séparés pas des virgules (ou intervalle de caractères) "
"qui sont considérés comme faisant partie des mots pour les highlights ; "
"chaque élément peut être un simple caractère, un intervalle de caractères "
"(format : a-z), une classe de caractère large (par exemple \"alnum\", voir "
"man wctype) ; un \"!\" avant un élément le rend négatif (c'est-à-dire le "
"caractère ne fait PAS partie des mots) ; la valeur \"*\" correspond à "
"n'importe quel caractère ; les caractères unicode sont autorisés avec le "
"format \\u1234, par exemple \\u00A0 pour l'espace insécable (voir /help "
"print pour les formats supportés)"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
"liste de caractères séparés pas des virgules (ou intervalle de caractères) "
"qui sont considérés comme faisant partie des mots pour la ligne de "
"commande ; chaque élément peut être un simple caractère, un intervalle de "
"caractères (format : a-z), une classe de caractère large (par exemple \"alnum"
"\", voir man wctype) ; un \"!\" avant un élément le rend négatif (c'est-à-"
"dire le caractère ne fait PAS partie des mots) ; la valeur \"*\" correspond "
"à n'importe quel caractère ; les caractères unicode sont autorisés avec le "
"format \\u1234, par exemple \\u00A0 pour l'espace insécable (voir /help "
"print pour les formats supportés)"
msgid "text color for '+' when scrolling bars"
msgstr "couleur du texte pour les '+' lors du défilement des barres"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-03-21 08:41+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -2934,6 +2934,26 @@ msgstr ""
"ablak címsorának beállítása (Curses GUI esetén a terminálé) a program nevére "
"és verziójára"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
#, fuzzy
msgid "text color for '+' when scrolling bars"
msgstr "a '+' jel színe téma görgetésekor"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-03-21 08:41+0100\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -3645,6 +3645,26 @@ msgstr ""
"password per il server (nota: il contenuto viene valutato, consultare /help "
"eval)"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid "text color for '+' when scrolling bars"
msgstr "colore del testo '+' allo scorrimento delle barre"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-04-01 23:14+0900\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/weechat/tree/translation_ja>\n"
@ -40,11 +40,11 @@ msgid "max chars"
msgstr "最大文字数"
msgid ""
"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
"color number or an alias; attributes are allowed before color (for text "
"color only, not background): \"*\" for bold, \"!\" for reverse, \"/\" for "
"italic, \"_\" for underline"
"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
"terminal color number or an alias; attributes are allowed before color (for "
"text color only, not background): \"*\" for bold, \"!\" for reverse, \"/\" "
"for italic, \"_\" for underline"
msgstr ""
"WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、"
"brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号ま"
@ -3704,6 +3704,26 @@ msgstr ""
"合、タイトルは変更されません (注意: 値は評価されます、/help eval を参照してく"
"ださい)"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid "text color for '+' when scrolling bars"
msgstr "バーをスクロールする際の '+' のテキスト色"
@ -5986,8 +6006,8 @@ msgstr ""
" - 内部サーバ名 (/server add で作成されたもの、利用推奨)\n"
" - ホスト名/ポート番号又は IP アドレス/ポート番号、デフォルトの"
"ポート番号は 6667\n"
" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:password]@]"
"irc.example.org[:port][/#channel1][,#channel2[...]]\n"
" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:"
"password]@]irc.example.org[:port][/#channel1][,#channel2[...]]\n"
" 注意: アドレス/IP/URL を指定した場合、サーバを一時的に作ります "
"(保存しません)、/help irc.look.temporary_servers を参照してください。\n"
" option: サーバに関するオプション (ブール型オプションでは、value は無視さ"
@ -11028,8 +11048,8 @@ msgid ""
"Examples (you can also look at default triggers with /trigger listdefault):\n"
" add text attributes *bold*, _underline_ and /italic/ (only in user "
"messages):\n"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==\\*"
"(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"=="
"\\*(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
"underline}${re:1}${color:-underline}_== ==/(\\S+)/==/${color:"
"italic}${re:1}${color:-italic}/\"\n"
" hide nicklist bar on small terminals:\n"
@ -11105,8 +11125,8 @@ msgstr ""
"\n"
"例 (/trigger listdefault でデフォルトトリガを見ることができます):\n"
" テキスト属性 *太字*、_下線_、/イタリック/ を追加 (ユーザメッセージのみ):\n"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==\\*"
"(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"=="
"\\*(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
"underline}${re:1}${color:-underline}_== ==/(\\S+)/==/${color:"
"italic}${re:1}${color:-italic}/\"\n"
" 狭い端末ではニックネームリストバーを隠す:\n"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-03-21 08:41+0100\n"
"Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -3790,6 +3790,26 @@ msgstr ""
"tytuł dla okna (terminal dla GUI Curses), ustawiany na starcie; pusty ciąg "
"pozostawi tytuł bez zmian (zawartość jest przetwarzana, zobacz /help eval)"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid "text color for '+' when scrolling bars"
msgstr "kolor '+' przy przewijaniu pasków"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-03-21 08:41+0100\n"
"Last-Translator: Eduardo Elias <camponez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -3537,6 +3537,26 @@ msgstr ""
"comando executado quando o WeeChat inicia, antes do carregamento dos plugins "
"(nota: conteúdo é avaliado, veja /help eval)"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid "text color for '+' when scrolling bars"
msgstr "cor de texto para '+' quando estiver rolando barras"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-03-21 08:41+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -2964,6 +2964,26 @@ msgstr ""
"устанавливать заголовок окна (терминала при интерфейсе Curses) с именем и "
"версией"
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
#, fuzzy
msgid "text color for '+' when scrolling bars"
msgstr "цвет '+' при прокрутке топика"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2015-03-10 21:33+0100\n"
"Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -2662,6 +2662,26 @@ msgid ""
"will keep title unchanged (note: content is evaluated, see /help eval)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid "text color for '+' when scrolling bars"
msgstr ""

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2015-03-30 19:14+0200\n"
"POT-Creation-Date: 2015-04-11 18:40+0200\n"
"PO-Revision-Date: 2014-08-16 10:27+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -2659,6 +2659,26 @@ msgid ""
"will keep title unchanged (note: content is evaluated, see /help eval)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for highlights; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid ""
"comma-separated list of chars (or range of chars) that are considered part "
"or words for command line; each item can be a single char, a range of chars "
"(format: a-z), a class of wide character (for example \"alnum\", see man "
"wctype); a \"!\" before the item makes it negative (ie the char is NOT "
"considered part of words); the value \"*\" matches any char; unicode chars "
"are allowed with the format \\u1234, for example \\u00A0 for unbreakable "
"space (see /help print for supported formats)"
msgstr ""
msgid "text color for '+' when scrolling bars"
msgstr ""

View File

@ -178,6 +178,8 @@ struct t_config_option *config_look_window_auto_zoom;
struct t_config_option *config_look_window_separator_horizontal;
struct t_config_option *config_look_window_separator_vertical;
struct t_config_option *config_look_window_title;
struct t_config_option *config_look_word_chars_highlight;
struct t_config_option *config_look_word_chars_input;
/* config, colors section */
@ -292,6 +294,10 @@ int config_num_highlight_tags = 0;
char **config_plugin_extensions = NULL;
int config_num_plugin_extensions = 0;
char config_tab_spaces[TAB_MAX_WIDTH + 1];
struct t_config_look_word_char_item *config_word_chars_highlight = NULL;
int config_word_chars_highlight_count = 0;
struct t_config_look_word_char_item *config_word_chars_input = NULL;
int config_word_chars_input_count = 0;
/*
@ -381,6 +387,131 @@ config_change_window_title (void *data, struct t_config_option *option)
}
}
/*
* Sets word chars array with a word chars option.
*/
void
config_set_word_chars (const char *str_word_chars,
struct t_config_look_word_char_item **word_chars,
int *word_chars_count)
{
char **items, *item, *item2, *ptr_item, *pos;
int i;
if (*word_chars)
{
free (*word_chars);
*word_chars = NULL;
}
*word_chars_count = 0;
if (!str_word_chars || !str_word_chars[0])
return;
items = string_split (str_word_chars, ",", 0, 0, word_chars_count);
if (!items)
{
*word_chars_count = 0;
return;
}
if (*word_chars_count == 0)
return;
*word_chars = malloc (
sizeof ((*word_chars)[0]) * (*word_chars_count));
if (!*word_chars)
return;
for (i = 0; i < *word_chars_count; i++)
{
/* init structure */
(*word_chars)[i].exclude = 0;
(*word_chars)[i].wc_class = (wctype_t)0;
(*word_chars)[i].char1 = 0;
(*word_chars)[i].char2 = 0;
ptr_item = items[i];
if ((ptr_item[0] == '!') && ptr_item[1])
{
(*word_chars)[i].exclude = 1;
ptr_item++;
}
if (strcmp (ptr_item, "*") != 0)
{
pos = strchr (ptr_item, '-');
if (pos && (pos > ptr_item) && pos[1])
{
/* range: char1 -> char2 */
/* char1 */
item = string_strndup (ptr_item, pos - ptr_item);
item2 = string_convert_escaped_chars (item);
(*word_chars)[i].char1 = utf8_wide_char (item2);
if (item)
free (item);
if (item2)
free (item2);
/* char2 */
item = strdup (pos + 1);
item2 = string_convert_escaped_chars (item);
(*word_chars)[i].char2 = utf8_wide_char (item2);
if (item)
free (item);
if (item2)
free (item2);
}
else
{
/* one char or wide character class */
(*word_chars)[i].wc_class = wctype (ptr_item);
if ((*word_chars)[i].wc_class == (wctype_t)0)
{
item = string_convert_escaped_chars (ptr_item);
(*word_chars)[i].char1 = utf8_wide_char (item);
(*word_chars)[i].char2 = (*word_chars)[i].char1;
if (item)
free (item);
}
}
}
}
string_free_split (items);
}
/*
* Callback for changes on option "weechat.look.word_chars_highlight".
*/
void
config_change_word_chars_highlight (void *data, struct t_config_option *option)
{
/* make C compiler happy */
(void) data;
(void) option;
config_set_word_chars (CONFIG_STRING(config_look_word_chars_highlight),
&config_word_chars_highlight,
&config_word_chars_highlight_count);
}
/*
* Callback for changes on option "weechat.look.word_chars_input".
*/
void
config_change_word_chars_input (void *data, struct t_config_option *option)
{
/* make C compiler happy */
(void) data;
(void) option;
config_set_word_chars (CONFIG_STRING(config_look_word_chars_input),
&config_word_chars_input,
&config_word_chars_input_count);
}
/*
* Callback for changes on options that require a refresh of buffers.
*/
@ -2742,6 +2873,34 @@ config_weechat_init_options ()
"(note: content is evaluated, see /help eval)"),
NULL, 0, 0, "WeeChat ${info:version}", NULL, 0, NULL, NULL,
&config_change_window_title, NULL, NULL, NULL);
config_look_word_chars_highlight = config_file_new_option (
weechat_config_file, ptr_section,
"word_chars_highlight", "string",
N_("comma-separated list of chars (or range of chars) that are "
"considered part or words for highlights; "
"each item can be a single char, a range of chars (format: a-z), "
"a class of wide character (for example \"alnum\", "
"see man wctype); a \"!\" before the item makes it negative "
"(ie the char is NOT considered part of words); the value \"*\" "
"matches any char; unicode chars are allowed with the format "
"\\u1234, for example \\u00A0 for unbreakable space "
"(see /help print for supported formats)"),
NULL, 0, 0, "!\\u00A0,-,_,|,alnum", NULL, 0, NULL, NULL,
&config_change_word_chars_highlight, NULL, NULL, NULL);
config_look_word_chars_input = config_file_new_option (
weechat_config_file, ptr_section,
"word_chars_input", "string",
N_("comma-separated list of chars (or range of chars) that are "
"considered part or words for command line; "
"each item can be a single char, a range of chars (format: a-z), "
"a class of wide character (for example \"alnum\", "
"see man wctype); a \"!\" before the item makes it negative "
"(ie the char is NOT considered part of words); the value \"*\" "
"matches any char; unicode chars are allowed with the format "
"\\u1234, for example \\u00A0 for unbreakable space "
"(see /help print for supported formats)"),
NULL, 0, 0, "!\\u00A0,-,_,|,alnum", NULL, 0, NULL, NULL,
&config_change_word_chars_input, NULL, NULL, NULL);
/* palette */
ptr_section = config_file_new_section (weechat_config_file, "palette",
@ -3525,6 +3684,10 @@ config_weechat_init ()
config_change_highlight_tags (NULL, NULL);
if (!config_plugin_extensions)
config_change_plugin_extension (NULL, NULL);
if (!config_word_chars_highlight)
config_change_word_chars_highlight (NULL, NULL);
if (!config_word_chars_input)
config_change_word_chars_input (NULL, NULL);
return rc;
}
@ -3600,4 +3763,18 @@ config_weechat_free ()
config_plugin_extensions = NULL;
config_num_plugin_extensions = 0;
}
if (config_word_chars_highlight)
{
free (config_word_chars_highlight);
config_word_chars_highlight = NULL;
config_word_chars_highlight_count = 0;
}
if (config_word_chars_input)
{
free (config_word_chars_input);
config_word_chars_input = NULL;
config_word_chars_input_count = 0;
}
}

View File

@ -22,6 +22,7 @@
#define WEECHAT_CONFIG_H 1
#include <regex.h>
#include <wctype.h>
#include "wee-config-file.h"
struct t_gui_buffer;
@ -105,6 +106,14 @@ enum t_config_look_save_layout_on_exit
CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_ALL,
};
struct t_config_look_word_char_item
{
char exclude; /* 1 if char is NOT a word char */
wctype_t wc_class; /* class of wide characters (wctype) */
wint_t char1; /* first char of range */
wint_t char2; /* second char of range */
};
extern struct t_config_file *weechat_config_file;
extern struct t_config_section *weechat_config_section_color;
extern struct t_config_section *weechat_config_section_proxy;
@ -215,6 +224,8 @@ extern struct t_config_option *config_look_window_auto_zoom;
extern struct t_config_option *config_look_window_separator_horizontal;
extern struct t_config_option *config_look_window_separator_vertical;
extern struct t_config_option *config_look_window_title;
extern struct t_config_option *config_look_word_chars_highlight;
extern struct t_config_option *config_look_word_chars_input;
extern struct t_config_option *config_color_bar_more;
extern struct t_config_option *config_color_chat;
@ -315,6 +326,10 @@ extern int config_num_highlight_tags;
extern char **config_plugin_extensions;
extern int config_num_plugin_extensions;
extern char config_tab_spaces[];
extern struct t_config_look_word_char_item *config_word_chars_highlight;
extern int config_word_chars_highlight_count;
extern struct t_config_look_word_char_item *config_word_chars_input;
extern int config_word_chars_input_count;
extern struct t_config_option *config_weechat_debug_get (const char *plugin_name);
extern int config_weechat_debug_set (const char *plugin_name,

View File

@ -747,34 +747,91 @@ string_convert_escaped_chars (const char *string)
/*
* Checks if first char of string is a "word char".
*
* The word chars are customizable with options "weechat.look.word_chars_*".
*
* Returns:
* 1: first char is a word char
* 0: first char is not a word char
*/
int
string_is_word_char (const char *string)
string_is_word_char (const char *string,
struct t_config_look_word_char_item *word_chars,
int word_chars_count)
{
wint_t c = utf8_wide_char (string);
wint_t c;
int i, match;
c = utf8_wide_char (string);
if (c == WEOF)
return 0;
if (iswalnum (c))
return 1;
switch (c)
for (i = 0; i < word_chars_count; i++)
{
case '-':
case '_':
case '|':
return 1;
if (word_chars[i].wc_class != (wctype_t)0)
{
match = iswctype (c, word_chars[i].wc_class);
}
else
{
if ((word_chars[i].char1 == 0)
&& (word_chars[i].char2 == 0))
{
match = 1;
}
else
{
match = ((c >= word_chars[i].char1) &&
(c <= word_chars[i].char2));
}
}
if (match)
return (word_chars[i].exclude) ? 0 : 1;
}
/* not a 'word char' */
/* not a word char */
return 0;
}
/*
* Checks if first char of string is a "word char" (for highlight).
*
* The word chars for highlights are customizable with option
* "weechat.look.word_chars_highlight".
*
* Returns:
* 1: first char is a word char
* 0: first char is not a word char
*/
int
string_is_word_char_highlight (const char *string)
{
return string_is_word_char (string,
config_word_chars_highlight,
config_word_chars_highlight_count);
}
/*
* Checks if first char of string is a "word char" (for input).
*
* The word chars for input are customizable with option
* "weechat.look.word_chars_input".
*
* Returns:
* 1: first char is a word char
* 0: first char is not a word char
*/
int
string_is_word_char_input (const char *string)
{
return string_is_word_char (string,
config_word_chars_input,
config_word_chars_input_count);
}
/*
* Converts a mask (string with only "*" as wildcard) to a regex, paying
* attention to special chars in a regex.
@ -1004,8 +1061,8 @@ string_has_highlight (const char *string, const char *highlight_words)
if (!match_pre)
match_pre = match - 1;
match_post = match + length;
startswith = ((match == msg) || (!string_is_word_char (match_pre)));
endswith = ((!match_post[0]) || (!string_is_word_char (match_post)));
startswith = ((match == msg) || (!string_is_word_char_highlight (match_pre)));
endswith = ((!match_post[0]) || (!string_is_word_char_highlight (match_post)));
if ((wildcard_start && wildcard_end) ||
(!wildcard_start && !wildcard_end &&
startswith && endswith) ||
@ -1063,13 +1120,13 @@ string_has_highlight_regex_compiled (const char *string, regex_t *regex)
if (!startswith)
{
match_pre = utf8_prev_char (string, string + regex_match.rm_so);
startswith = !string_is_word_char (match_pre);
startswith = !string_is_word_char_highlight (match_pre);
}
endswith = 0;
if (startswith)
{
endswith = ((regex_match.rm_eo == (int)strlen (string))
|| !string_is_word_char (string + regex_match.rm_eo));
|| !string_is_word_char_highlight (string + regex_match.rm_eo));
}
if (startswith && endswith)
return 1;

View File

@ -48,7 +48,8 @@ extern char *string_remove_quotes (const char *string, const char *quotes);
extern char *string_strip (const char *string, int left, int right,
const char *chars);
extern char *string_convert_escaped_chars (const char *string);
extern int string_is_word_char (const char *string);
extern int string_is_word_char_highlight (const char *string);
extern int string_is_word_char_input (const char *string);
extern char *string_mask_to_regex (const char *mask);
extern const char *string_regex_flags (const char *regex, int default_flags,
int *flags);

View File

@ -814,19 +814,19 @@ gui_input_delete_previous_word (struct t_gui_buffer *buffer)
start = utf8_add_offset (buffer->input_buffer,
buffer->input_buffer_pos - 1);
string = start;
while (string && (string[0] == ' '))
while (string && !string_is_word_char_input (string))
{
string = utf8_prev_char (buffer->input_buffer, string);
}
if (string)
{
while (string && (string[0] != ' '))
while (string && string_is_word_char_input (string))
{
string = utf8_prev_char (buffer->input_buffer, string);
}
if (string)
{
while (string && (string[0] == ' '))
while (string && !string_is_word_char_input (string))
{
string = utf8_prev_char (buffer->input_buffer, string);
}
@ -875,7 +875,7 @@ gui_input_delete_next_word (struct t_gui_buffer *buffer)
length_deleted = 0;
while (string[0])
{
if ((string[0] == ' ') && (string > start))
if (!string_is_word_char_input (string) && (string > start))
break;
string = utf8_next_char (string);
length_deleted++;
@ -1087,13 +1087,13 @@ gui_input_move_previous_word (struct t_gui_buffer *buffer)
{
pos = utf8_add_offset (buffer->input_buffer,
buffer->input_buffer_pos - 1);
while (pos && (pos[0] == ' '))
while (pos && !string_is_word_char_input (pos))
{
pos = utf8_prev_char (buffer->input_buffer, pos);
}
if (pos)
{
while (pos && (pos[0] != ' '))
while (pos && string_is_word_char_input (pos))
{
pos = utf8_prev_char (buffer->input_buffer, pos);
}
@ -1126,13 +1126,13 @@ gui_input_move_next_word (struct t_gui_buffer *buffer)
{
pos = utf8_add_offset (buffer->input_buffer,
buffer->input_buffer_pos);
while (pos[0] && (pos[0] == ' '))
while (pos[0] && !string_is_word_char_input (pos))
{
pos = utf8_next_char (pos);
}
if (pos[0])
{
while (pos[0] && (pos[0] != ' '))
while (pos[0] && string_is_word_char_input (pos))
{
pos = utf8_next_char (pos);
}

View File

@ -36,6 +36,9 @@ extern "C"
#define ONE_GB (ONE_MB * 1000ULL)
#define ONE_TB (ONE_GB * 1000ULL)
#define WEE_IS_WORD_CHAR(__result, __str) \
LONGS_EQUAL(__result, string_is_word_char_highlight (__str)); \
LONGS_EQUAL(__result, string_is_word_char_input (__str));
#define WEE_HAS_HL_STR(__result, __str, __words) \
LONGS_EQUAL(__result, string_has_highlight (__str, __words));
@ -415,23 +418,28 @@ TEST(String, ConvertEscapedChars)
/*
* Tests functions:
* string_is_word_char
* string_is_word_char_highlight
* string_is_word_char_input
*/
TEST(String, IsWordChar)
{
LONGS_EQUAL(0, string_is_word_char (NULL));
LONGS_EQUAL(0, string_is_word_char (""));
LONGS_EQUAL(0, string_is_word_char ("&abc"));
LONGS_EQUAL(0, string_is_word_char ("+abc"));
LONGS_EQUAL(0, string_is_word_char ("$abc"));
LONGS_EQUAL(0, string_is_word_char ("*abc"));
LONGS_EQUAL(0, string_is_word_char ("/abc"));
WEE_IS_WORD_CHAR(0, NULL);
WEE_IS_WORD_CHAR(0, "");
WEE_IS_WORD_CHAR(0, " abc"); /* space */
WEE_IS_WORD_CHAR(0, "\u00A0abc"); /* unbreakable space */
WEE_IS_WORD_CHAR(0, "&abc");
WEE_IS_WORD_CHAR(0, "+abc");
WEE_IS_WORD_CHAR(0, "$abc");
WEE_IS_WORD_CHAR(0, "*abc");
WEE_IS_WORD_CHAR(0, "/abc");
WEE_IS_WORD_CHAR(0, "\\abc");
LONGS_EQUAL(1, string_is_word_char ("abc"));
LONGS_EQUAL(1, string_is_word_char ("-abc"));
LONGS_EQUAL(1, string_is_word_char ("_abc"));
LONGS_EQUAL(1, string_is_word_char ("|abc"));
WEE_IS_WORD_CHAR(1, "abc");
WEE_IS_WORD_CHAR(1, "1abc");
WEE_IS_WORD_CHAR(1, "-abc");
WEE_IS_WORD_CHAR(1, "_abc");
WEE_IS_WORD_CHAR(1, "|abc");
}
/*
@ -531,11 +539,16 @@ TEST(String, Highlight)
WEE_HAS_HL_STR(0, "", "");
WEE_HAS_HL_STR(0, "test", "");
WEE_HAS_HL_STR(0, "", "test");
WEE_HAS_HL_STR(0, "test-here", "test");
WEE_HAS_HL_STR(0, "this is a test here", "abc,def");
WEE_HAS_HL_STR(1, "test", "test");
WEE_HAS_HL_STR(1, "this is a test", "test");
WEE_HAS_HL_STR(1, "test here", "test");
WEE_HAS_HL_STR(1, "test: here", "test");
WEE_HAS_HL_STR(1, "test : here", "test");
WEE_HAS_HL_STR(1, "test\u00A0here", "test"); /* unbreakable space */
WEE_HAS_HL_STR(1, "test\u00A0:here", "test"); /* unbreakable space */
WEE_HAS_HL_STR(1, "this is a test here", "test");
WEE_HAS_HL_STR(0, "this is a test here", "abc,def");
WEE_HAS_HL_STR(1, "this is a test here", "abc,test");
/*