diff options
36 files changed, 397 insertions, 135 deletions
@@ -11,6 +11,9 @@ http://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes] == Version 0.4.3 (under dev) +* core: rename buffer property "highlight_tags" to "highlight_tags_restrict", + new behavior for buffer property "highlight_tags" (force highlight on tags), + rename option irc.look.highlight_tags to irc.look.highlight_tags_restrict * core: use "+" separator to make a logical "and" between tags in command /filter, option weechat.look.highlight_tags and buffer property "highlight_tags" diff --git a/doc/de/autogen/plugin_api/hdata.txt b/doc/de/autogen/plugin_api/hdata.txt index 579619e60..1e078985a 100644 --- a/doc/de/autogen/plugin_api/hdata.txt +++ b/doc/de/autogen/plugin_api/hdata.txt @@ -537,6 +537,9 @@ *** 'highlight_words' (string) *** 'highlight_regex' (string) *** 'highlight_regex_compiled' (pointer) +*** 'highlight_tags_restrict' (string) +*** 'highlight_tags_restrict_count' (integer) +*** 'highlight_tags_restrict_array' (pointer, array_size: "highlight_tags_restrict_count") *** 'highlight_tags' (string) *** 'highlight_tags_count' (integer) *** 'highlight_tags_array' (pointer, array_size: "highlight_tags_count") diff --git a/doc/de/autogen/user/irc_options.txt b/doc/de/autogen/user/irc_options.txt index 072af1372..7ade2ce82 100644 --- a/doc/de/autogen/user/irc_options.txt +++ b/doc/de/autogen/user/irc_options.txt @@ -168,8 +168,8 @@ ** Typ: Zeichenkette ** Werte: beliebige Zeichenkette (Standardwert: `"$nick"`) -* [[option_irc.look.highlight_tags]] *irc.look.highlight_tags* -** Beschreibung: `durch Kommata getrennte Liste von Schlagwörtern, welche eine Nachricht hervorheben sollen (Highlight) (normalerweise trifft dies auf jede Nachricht eines Users zu, ausgenommen Nachrichten vom Server,..)` +* [[option_irc.look.highlight_tags_restrict]] *irc.look.highlight_tags_restrict* +** Beschreibung: `restrict highlights to these tags on irc buffers (to have highlight on user messages but not server messages); tags must be separated by a comma and "+" can be used to make a logical "and" between tags; tags can start or end with "*" to match more than one tag; an empty value allows highlight on any tag` ** Typ: Zeichenkette ** Werte: beliebige Zeichenkette (Standardwert: `"irc_privmsg,irc_notice"`) diff --git a/doc/en/autogen/plugin_api/hdata.txt b/doc/en/autogen/plugin_api/hdata.txt index 5b8995aa5..3cb1ca8c4 100644 --- a/doc/en/autogen/plugin_api/hdata.txt +++ b/doc/en/autogen/plugin_api/hdata.txt @@ -537,6 +537,9 @@ *** 'highlight_words' (string) *** 'highlight_regex' (string) *** 'highlight_regex_compiled' (pointer) +*** 'highlight_tags_restrict' (string) +*** 'highlight_tags_restrict_count' (integer) +*** 'highlight_tags_restrict_array' (pointer, array_size: "highlight_tags_restrict_count") *** 'highlight_tags' (string) *** 'highlight_tags_count' (integer) *** 'highlight_tags_array' (pointer, array_size: "highlight_tags_count") diff --git a/doc/en/autogen/user/irc_options.txt b/doc/en/autogen/user/irc_options.txt index 4f27958cf..1c73e0cd4 100644 --- a/doc/en/autogen/user/irc_options.txt +++ b/doc/en/autogen/user/irc_options.txt @@ -168,8 +168,8 @@ ** type: string ** values: any string (default value: `"$nick"`) -* [[option_irc.look.highlight_tags]] *irc.look.highlight_tags* -** description: `comma separated list of tags for messages that may produce highlight (usually any message from another user, not server messages,..)` +* [[option_irc.look.highlight_tags_restrict]] *irc.look.highlight_tags_restrict* +** description: `restrict highlights to these tags on irc buffers (to have highlight on user messages but not server messages); tags must be separated by a comma and "+" can be used to make a logical "and" between tags; tags can start or end with "*" to match more than one tag; an empty value allows highlight on any tag` ** type: string ** values: any string (default value: `"irc_privmsg,irc_notice"`) diff --git a/doc/en/weechat_plugin_api.en.txt b/doc/en/weechat_plugin_api.en.txt index d93953b45..07b577f1b 100644 --- a/doc/en/weechat_plugin_api.en.txt +++ b/doc/en/weechat_plugin_api.en.txt @@ -9983,7 +9983,8 @@ Arguments: ** 'text_search_input': input saved before text search ** 'highlight_words': list of words to highlight ** 'highlight_regex': regular expression for highlight -** 'highlight_tags': list of tags to highlight +** 'highlight_tags_restrict': restrict highlights to messages with these tags +** 'highlight_tags': force highlight on messages with these tags ** 'hotlist_max_level_nicks': max hotlist level for some nicks ** 'localvar_xxx': get content of local variable "xxx" (replace "xxx" by the name of variable to read) @@ -10153,10 +10154,15 @@ Arguments: | highlight_regex | any string | Regular expression for highlight +| highlight_tags_restrict | comma separated list of tags | + Restrict highlights to messages with these tags in this buffer + (it is possible to combine many tags as a logical "and" with separator "+", + for example: "nick_toto+irc_action") + | highlight_tags | comma separated list of tags | - Comma separated list of tags to highlight in this buffer - (_WeeChat ≥ 0.4.3_: it is possible to combine many tags as a logical "and" - with separator "+", for example: "nick_toto+irc_action") + Force highlight on messages with these tags in this buffer + (it is possible to combine many tags as a logical "and" with separator "+", + for example: "nick_toto+irc_action") | hotlist_max_level_nicks | comma separated list of "nick:level" | Comma separated list of nicks with max level for hotlist on this buffer diff --git a/doc/fr/autogen/plugin_api/hdata.txt b/doc/fr/autogen/plugin_api/hdata.txt index 346260692..9109636f7 100644 --- a/doc/fr/autogen/plugin_api/hdata.txt +++ b/doc/fr/autogen/plugin_api/hdata.txt @@ -537,6 +537,9 @@ *** 'highlight_words' (string) *** 'highlight_regex' (string) *** 'highlight_regex_compiled' (pointer) +*** 'highlight_tags_restrict' (string) +*** 'highlight_tags_restrict_count' (integer) +*** 'highlight_tags_restrict_array' (pointer, array_size: "highlight_tags_restrict_count") *** 'highlight_tags' (string) *** 'highlight_tags_count' (integer) *** 'highlight_tags_array' (pointer, array_size: "highlight_tags_count") diff --git a/doc/fr/autogen/user/irc_options.txt b/doc/fr/autogen/user/irc_options.txt index ef03c0ac0..261b68b1d 100644 --- a/doc/fr/autogen/user/irc_options.txt +++ b/doc/fr/autogen/user/irc_options.txt @@ -168,8 +168,8 @@ ** type: chaîne ** valeurs: toute chaîne (valeur par défaut: `"$nick"`) -* [[option_irc.look.highlight_tags]] *irc.look.highlight_tags* -** description: `liste des tags pour les messages qui peuvent produire un highlight (séparés par des virgules, typiquement tout message venant d'un autre utilisateur, pas les messages du serveur, ...)` +* [[option_irc.look.highlight_tags_restrict]] *irc.look.highlight_tags_restrict* +** description: `restreindre les highlights à ces tags sur les tampons irc (pour avoir un highlight seulement sur les messages utilisateur et pas les messages du serveur); les tags doivent être séparés par des virgules et "+" peut être utilisé pour faire un "et" logique entre tags; les tags peuvent commencer ou se terminer par "*" pour correspondre à plus d'un tag; une valeur vide autorise le highlight sur n'importe quel tag` ** type: chaîne ** valeurs: toute chaîne (valeur par défaut: `"irc_privmsg,irc_notice"`) diff --git a/doc/fr/weechat_plugin_api.fr.txt b/doc/fr/weechat_plugin_api.fr.txt index f8bb13ca4..8daa538a4 100644 --- a/doc/fr/weechat_plugin_api.fr.txt +++ b/doc/fr/weechat_plugin_api.fr.txt @@ -10154,7 +10154,9 @@ Paramètres : ** 'text_search_input' : texte saisi sauvegardé avant la recherche de texte ** 'highlight_words' : liste des mots pour le highlight ** 'highlight_regex' : expression régulière pour le highlight -** 'highlight_tags' : liste des étiquettes pour le highlight +** 'highlight_tags_restrict' : restreindre les highlights aux messages + comportant ces étiquettes +** 'highlight_tags' : forcer le highlight pour les messages avec ces étiquettes ** 'hotlist_max_level_nicks' : niveau maximum pour la hotlist pour certains pseudos ** 'localvar_xxx' : contenu de la variable locale "xxx" (remplacer "xxx" par le @@ -10333,11 +10335,15 @@ Paramètres : | highlight_regex | toute chaîne | Expression régulière pour le highlight +| highlight_tags_restrict | liste d'étiquettes ("tags") séparées par des virgules | + Restreindre les highlights aux messages avec ces étiquettes dans ce tampon + (il est possible de combiner plusieurs étiquettes sous forme d'un "et" logique + avec le séparateur "+", par exemple : "nick_toto+irc_action") + | highlight_tags | liste d'étiquettes ("tags") séparées par des virgules | - Liste d'étiquettes ("tags") à mettre en valeur pour ce tampon - (_WeeChat ≥ 0.4.3_ : il est possible de combiner plusieurs tags sous forme - d'un "et" logique avec le séparateur "+", par exemple : - "nick_toto+irc_action") + Forcer le highlight pour les messages avec ces étiquettes dans ce tampon + (il est possible de combiner plusieurs étiquettes sous forme d'un "et" logique + avec le séparateur "+", par exemple : "nick_toto+irc_action") | hotlist_max_level_nicks | liste de "pseudo:niveau" séparés par des virgules | Liste de pseudos avec niveau max pour la hotlist sur ce tampon (le niveau peut diff --git a/doc/it/autogen/plugin_api/hdata.txt b/doc/it/autogen/plugin_api/hdata.txt index 2b62596bc..f61ce9960 100644 --- a/doc/it/autogen/plugin_api/hdata.txt +++ b/doc/it/autogen/plugin_api/hdata.txt @@ -537,6 +537,9 @@ *** 'highlight_words' (string) *** 'highlight_regex' (string) *** 'highlight_regex_compiled' (pointer) +*** 'highlight_tags_restrict' (string) +*** 'highlight_tags_restrict_count' (integer) +*** 'highlight_tags_restrict_array' (pointer, array_size: "highlight_tags_restrict_count") *** 'highlight_tags' (string) *** 'highlight_tags_count' (integer) *** 'highlight_tags_array' (pointer, array_size: "highlight_tags_count") diff --git a/doc/it/autogen/user/irc_options.txt b/doc/it/autogen/user/irc_options.txt index 08df42b78..4730959e6 100644 --- a/doc/it/autogen/user/irc_options.txt +++ b/doc/it/autogen/user/irc_options.txt @@ -168,8 +168,8 @@ ** tipo: stringa ** valori: qualsiasi stringa (valore predefinito: `"$nick"`) -* [[option_irc.look.highlight_tags]] *irc.look.highlight_tags* -** descrizione: `elenco separato da liste di tag per i messaggi che potrebbero generare notifiche (di solito qualsiasi messaggio da altri utenti, non quelli dal server...)` +* [[option_irc.look.highlight_tags_restrict]] *irc.look.highlight_tags_restrict* +** descrizione: `restrict highlights to these tags on irc buffers (to have highlight on user messages but not server messages); tags must be separated by a comma and "+" can be used to make a logical "and" between tags; tags can start or end with "*" to match more than one tag; an empty value allows highlight on any tag` ** tipo: stringa ** valori: qualsiasi stringa (valore predefinito: `"irc_privmsg,irc_notice"`) diff --git a/doc/it/weechat_plugin_api.it.txt b/doc/it/weechat_plugin_api.it.txt index 0005870fa..c391dcb8b 100644 --- a/doc/it/weechat_plugin_api.it.txt +++ b/doc/it/weechat_plugin_api.it.txt @@ -10141,7 +10141,10 @@ Argomenti: ** 'text_search_input': input salvato prima della ricerca nel testo ** 'highlight_words': elenco di parole da evidenziare ** 'highlight_regex': espressione regolare per l'evento -** 'highlight_tags': elenco di tag da evidenziare +// TRANSLATION MISSING +** 'highlight_tags_restrict': restrict highlights to messages with these tags +// TRANSLATION MISSING +** 'highlight_tags': force highlight on messages with these tags ** 'hotlist_max_level_nicks': livello massimo della hotlist per alcuni nick ** 'localvar_xxx': ottiene il contenuto della variabile locale "xxx" (sostituire "xxx" con il nome della variabile da leggere) @@ -10315,7 +10318,7 @@ Argomenti: queste parole vengono aggiunte alle parole evidenziate esistenti nel buffer -| highlight_words_del | elenco di parole separate da virgole| +| highlight_words_del | elenco di parole separate da virgole | Elenco di parole separate da virgole da rimuovere dalle parole evidenziate nel buffer @@ -10323,10 +10326,16 @@ Argomenti: Espressione regolare per l'evento // TRANSLATION MISSING +| highlight_tags_restrict | elenco separato da virgole di tag | + Restrict highlights to messages with these tags in this buffer + (it is possible to combine many tags as a logical "and" with separator "+", + for example: "nick_toto+irc_action") + +// TRANSLATION MISSING | highlight_tags | elenco separato da virgole di tag | - Elenco separato da virgole di tag da evidenziare in questo buffer - (_WeeChat ≥ 0.4.3_: it is possible to combine many tags as a logical "and" - with separator "+", for example: "nick_toto+irc_action") + Force highlight on messages with these tags in this buffer + (it is possible to combine many tags as a logical "and" with separator "+", + for example: "nick_toto+irc_action") | hotlist_max_level_nicks | elenco separado da virgole di "nick:livello" | Elenco separato da virgole di nick con il livello massimo per la hotlist diff --git a/doc/ja/autogen/plugin_api/hdata.txt b/doc/ja/autogen/plugin_api/hdata.txt index 37e41f79b..8e1fd7d5e 100644 --- a/doc/ja/autogen/plugin_api/hdata.txt +++ b/doc/ja/autogen/plugin_api/hdata.txt @@ -537,6 +537,9 @@ *** 'highlight_words' (string) *** 'highlight_regex' (string) *** 'highlight_regex_compiled' (pointer) +*** 'highlight_tags_restrict' (string) +*** 'highlight_tags_restrict_count' (integer) +*** 'highlight_tags_restrict_array' (pointer, array_size: "highlight_tags_restrict_count") *** 'highlight_tags' (string) *** 'highlight_tags_count' (integer) *** 'highlight_tags_array' (pointer, array_size: "highlight_tags_count") diff --git a/doc/ja/autogen/user/irc_options.txt b/doc/ja/autogen/user/irc_options.txt index 34fa3d5b3..11a92848f 100644 --- a/doc/ja/autogen/user/irc_options.txt +++ b/doc/ja/autogen/user/irc_options.txt @@ -168,8 +168,8 @@ ** タイプ: 文字列 ** 値: 未制約文字列 (デフォルト値: `"$nick"`) -* [[option_irc.look.highlight_tags]] *irc.look.highlight_tags* -** 説明: `ハイライトされるメッセージにつけられたタグのコンマ区切りリスト (通例、他のユーザからの任意のメッセージ、サーバメッセージをのぞく、...)` +* [[option_irc.look.highlight_tags_restrict]] *irc.look.highlight_tags_restrict* +** 説明: `restrict highlights to these tags on irc buffers (to have highlight on user messages but not server messages); tags must be separated by a comma and "+" can be used to make a logical "and" between tags; tags can start or end with "*" to match more than one tag; an empty value allows highlight on any tag` ** タイプ: 文字列 ** 値: 未制約文字列 (デフォルト値: `"irc_privmsg,irc_notice"`) @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-11-09 10:18+0100\n" "Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -6365,11 +6365,12 @@ msgid "" msgstr "" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" -"čárkami oddělený seznam tagů pro zprávy, které mohou vyprodukovat zvýraznění " -"(obvykle jakákoliv zpráva od jiného uživatele, ne zprávy serveru,...)" msgid "display server away message in away bar item" msgstr "zobrazit zprávu nepřítomnosti na serveru v položce nepřítomnosti pole" @@ -9948,6 +9949,14 @@ msgid "Constants" msgstr "" #~ msgid "" +#~ "comma separated list of tags for messages that may produce highlight " +#~ "(usually any message from another user, not server messages,..)" +#~ msgstr "" +#~ "čárkami oddělený seznam tagů pro zprávy, které mohou vyprodukovat " +#~ "zvýraznění (obvykle jakákoliv zpráva od jiného uživatele, ne zprávy " +#~ "serveru,...)" + +#~ msgid "" #~ "comma separated list of tags to highlight (case insensitive comparison, " #~ "examples: \"irc_notice\" for IRC notices, \"nick_flashcode\" for messages " #~ "from nick \"FlashCode\")" @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.3-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-11-20 15:12+0100\n" "Last-Translator: Nils Görs <weechatter@arcor.de>\n" "Language-Team: German <weechatter@arcor.de>\n" @@ -7143,12 +7143,12 @@ msgstr "" "Highlight für den Nick. Beispiel: \"$nick\", \"(?-i)$nick\"" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" -"durch Kommata getrennte Liste von Schlagwörtern, welche eine Nachricht " -"hervorheben sollen (Highlight) (normalerweise trifft dies auf jede Nachricht " -"eines Users zu, ausgenommen Nachrichten vom Server,..)" msgid "display server away message in away bar item" msgstr "Abwesenheitsnachricht in der Away-Bar-Item anzeigen" @@ -11002,6 +11002,14 @@ msgid "Constants" msgstr "Konstanten" #~ msgid "" +#~ "comma separated list of tags for messages that may produce highlight " +#~ "(usually any message from another user, not server messages,..)" +#~ msgstr "" +#~ "durch Kommata getrennte Liste von Schlagwörtern, welche eine Nachricht " +#~ "hervorheben sollen (Highlight) (normalerweise trifft dies auf jede " +#~ "Nachricht eines Users zu, ausgenommen Nachrichten vom Server,..)" + +#~ msgid "" #~ "comma separated list of tags to highlight (case insensitive comparison, " #~ "examples: \"irc_notice\" for IRC notices, \"nick_flashcode\" for messages " #~ "from nick \"FlashCode\")" @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-11-09 10:18+0100\n" "Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -6621,12 +6621,12 @@ msgstr "" "del apodo, ejemplos: \"$nick\", \"(?-i)$nick\"" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" -"lista de etiquetas (separadas por comas) para mensajes que podrían ser " -"realzados (usualmente cualquier mensaje de otro usuario, no mensajes del " -"servidor...)" msgid "display server away message in away bar item" msgstr "mostrar mensaje de ausencia en el elemento de barra \"away\"" @@ -10210,6 +10210,14 @@ msgid "Constants" msgstr "Constantes" #~ msgid "" +#~ "comma separated list of tags for messages that may produce highlight " +#~ "(usually any message from another user, not server messages,..)" +#~ msgstr "" +#~ "lista de etiquetas (separadas por comas) para mensajes que podrían ser " +#~ "realzados (usualmente cualquier mensaje de otro usuario, no mensajes del " +#~ "servidor...)" + +#~ msgid "" #~ "comma separated list of tags to highlight (case insensitive comparison, " #~ "examples: \"irc_notice\" for IRC notices, \"nick_flashcode\" for messages " #~ "from nick \"FlashCode\")" @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" -"PO-Revision-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" +"PO-Revision-Date: 2013-12-14 12:33+0100\n" "Last-Translator: Sebastien Helleu <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language: fr\n" @@ -6982,12 +6982,18 @@ msgstr "" "\"(?-i)$nick\"" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" -"liste des tags pour les messages qui peuvent produire un highlight (séparés " -"par des virgules, typiquement tout message venant d'un autre utilisateur, " -"pas les messages du serveur, ...)" +"restreindre les highlights à ces tags sur les tampons irc (pour avoir un " +"highlight seulement sur les messages utilisateur et pas les messages du " +"serveur); les tags doivent être séparés par des virgules et \"+\" peut être " +"utilisé pour faire un \"et\" logique entre tags; les tags peuvent commencer " +"ou se terminer par \"*\" pour correspondre à plus d'un tag; une valeur vide " +"autorise le highlight sur n'importe quel tag" msgid "display server away message in away bar item" msgstr "" @@ -10759,6 +10765,14 @@ msgid "Constants" msgstr "Constantes" #~ msgid "" +#~ "comma separated list of tags for messages that may produce highlight " +#~ "(usually any message from another user, not server messages,..)" +#~ msgstr "" +#~ "liste des tags pour les messages qui peuvent produire un highlight " +#~ "(séparés par des virgules, typiquement tout message venant d'un autre " +#~ "utilisateur, pas les messages du serveur, ...)" + +#~ msgid "" #~ "comma separated list of tags to highlight (case insensitive comparison, " #~ "examples: \"irc_notice\" for IRC notices, \"nick_flashcode\" for messages " #~ "from nick \"FlashCode\")" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-11-09 10:18+0100\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -5897,8 +5897,11 @@ msgid "" msgstr "" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" #, fuzzy @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-11-09 10:18+0100\n" "Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -6758,12 +6758,12 @@ msgstr "" "\"" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" -"elenco separato da liste di tag per i messaggi che potrebbero generare " -"notifiche (di solito qualsiasi messaggio da altri utenti, non quelli dal " -"server...)" msgid "display server away message in away bar item" msgstr "mostra il messaggio di assenza del server nell'elemento barra di away" @@ -10358,6 +10358,14 @@ msgid "Constants" msgstr "Costanti" #~ msgid "" +#~ "comma separated list of tags for messages that may produce highlight " +#~ "(usually any message from another user, not server messages,..)" +#~ msgstr "" +#~ "elenco separato da liste di tag per i messaggi che potrebbero generare " +#~ "notifiche (di solito qualsiasi messaggio da altri utenti, non quelli dal " +#~ "server...)" + +#~ msgid "" #~ "comma separated list of tags to highlight (case insensitive comparison, " #~ "examples: \"irc_notice\" for IRC notices, \"nick_flashcode\" for messages " #~ "from nick \"FlashCode\")" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-11-09 10:18+0100\n" "Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n" "Language-Team: Japanese <https://github.com/l/WeeChat>\n" @@ -6683,11 +6683,12 @@ msgstr "" "無効にする、例: \"$nick\", \"(?-i)$nick\"" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" -"ハイライトされるメッセージにつけられたタグのコンマ区切りリスト (通例、他の" -"ユーザからの任意のメッセージ、サーバメッセージをのぞく、...)" msgid "display server away message in away bar item" msgstr "サーバの離席メッセージを離席バーアイテムに表示" @@ -10334,6 +10335,13 @@ msgid "Constants" msgstr "定数" #~ msgid "" +#~ "comma separated list of tags for messages that may produce highlight " +#~ "(usually any message from another user, not server messages,..)" +#~ msgstr "" +#~ "ハイライトされるメッセージにつけられたタグのコンマ区切りリスト (通例、他の" +#~ "ユーザからの任意のメッセージ、サーバメッセージをのぞく、...)" + +#~ msgid "" #~ "comma separated list of tags to highlight (case insensitive comparison, " #~ "examples: \"irc_notice\" for IRC notices, \"nick_flashcode\" for messages " #~ "from nick \"FlashCode\")" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-11-11 09:07+0100\n" "Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -6840,12 +6840,12 @@ msgstr "" "podświetlenia nicka, przykłady: \"$nick\", \"(?-i)$nick\"" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" -"oddzielona przecinkami lista tagów dla wiadomości mogących powodować " -"podświetlenie (zazwyczaj dowolna wiadomość od innego użytkownika, nie " -"wiadomość od serwera...)" msgid "display server away message in away bar item" msgstr "wyświetla wiadomość o nieobecności dla serwera w elemencie paska" @@ -10534,6 +10534,14 @@ msgid "Constants" msgstr "Stałe" #~ msgid "" +#~ "comma separated list of tags for messages that may produce highlight " +#~ "(usually any message from another user, not server messages,..)" +#~ msgstr "" +#~ "oddzielona przecinkami lista tagów dla wiadomości mogących powodować " +#~ "podświetlenie (zazwyczaj dowolna wiadomość od innego użytkownika, nie " +#~ "wiadomość od serwera...)" + +#~ msgid "" #~ "comma separated list of tags to highlight (case insensitive comparison, " #~ "examples: \"irc_notice\" for IRC notices, \"nick_flashcode\" for messages " #~ "from nick \"FlashCode\")" diff --git a/po/pt_BR.po b/po/pt_BR.po index f8ddceae3..fa5dd9b3e 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-11-09 10:18+0100\n" "Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -6114,8 +6114,11 @@ msgid "" msgstr "" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" msgid "display server away message in away bar item" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-11-09 10:18+0100\n" "Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -5921,8 +5921,11 @@ msgid "" msgstr "" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" #, fuzzy @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-11-09 10:13+0100\n" "Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -5218,8 +5218,11 @@ msgid "" msgstr "" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" msgid "display server away message in away bar item" diff --git a/po/weechat.pot b/po/weechat.pot index 15a177c56..4fa016237 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-12-14 11:41+0100\n" +"POT-Creation-Date: 2013-12-14 12:31+0100\n" "PO-Revision-Date: 2013-02-14 18:20+0100\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -5175,8 +5175,11 @@ msgid "" msgstr "" msgid "" -"comma separated list of tags for messages that may produce highlight " -"(usually any message from another user, not server messages,..)" +"restrict highlights to these tags on irc buffers (to have highlight on user " +"messages but not server messages); tags must be separated by a comma and \"+" +"\" can be used to make a logical \"and\" between tags; tags can start or end " +"with \"*\" to match more than one tag; an empty value allows highlight on " +"any tag" msgstr "" msgid "display server away message in away bar item" diff --git a/src/core/wee-infolist.c b/src/core/wee-infolist.c index c2aa0c6c6..3392ffeca 100644 --- a/src/core/wee-infolist.c +++ b/src/core/wee-infolist.c @@ -549,6 +549,29 @@ infolist_time (struct t_infolist *infolist, const char *var) } /* + * Searches for a variable in current infolist item. + */ + +struct t_infolist_var * +infolist_search_var (struct t_infolist *infolist, const char *var) +{ + struct t_infolist_var *ptr_var; + + if (!infolist || !infolist->ptr_item || !var || !var[0]) + return NULL; + + for (ptr_var = infolist->ptr_item->vars; ptr_var; + ptr_var = ptr_var->next_var) + { + if (string_strcasecmp (ptr_var->name, var) == 0) + return ptr_var; + } + + /* variable not found */ + return NULL; +} + +/* * Frees a variable in item. */ diff --git a/src/core/wee-infolist.h b/src/core/wee-infolist.h index 13a05eee5..772ac4a72 100644 --- a/src/core/wee-infolist.h +++ b/src/core/wee-infolist.h @@ -101,6 +101,8 @@ extern void *infolist_buffer (struct t_infolist *infolist, const char *var, int *size); extern time_t infolist_time (struct t_infolist *infolist, const char *var); +extern struct t_infolist_var *infolist_search_var (struct t_infolist *infolist, + const char *var); extern void infolist_free (struct t_infolist *infolist); extern void infolist_free_all_plugin (struct t_weechat_plugin *plugin); extern void infolist_print_log (); diff --git a/src/core/wee-upgrade.c b/src/core/wee-upgrade.c index 09af3d0b2..6c1c87477 100644 --- a/src/core/wee-upgrade.c +++ b/src/core/wee-upgrade.c @@ -521,8 +521,23 @@ upgrade_weechat_read_cb (void *data, infolist_string (infolist, "highlight_words")); gui_buffer_set_highlight_regex (upgrade_current_buffer, infolist_string (infolist, "highlight_regex")); - gui_buffer_set_highlight_tags (upgrade_current_buffer, - infolist_string (infolist, "highlight_tags")); + if (infolist_search_var (infolist, + "highlight_tags_restrict")) + { + /* WeeChat >= 0.4.3 */ + gui_buffer_set_highlight_tags_restrict (upgrade_current_buffer, + infolist_string (infolist, + "highlight_tags_restrict")); + gui_buffer_set_highlight_tags (upgrade_current_buffer, + infolist_string (infolist, + "highlight_tags")); + } + else + { + /* WeeChat <= 0.4.2 */ + gui_buffer_set_highlight_tags_restrict (upgrade_current_buffer, + infolist_string (infolist, "highlight_tags")); + } gui_buffer_set_hotlist_max_level_nicks (upgrade_current_buffer, infolist_string (infolist, "hotlist_max_level_nicks")); index = 0; diff --git a/src/gui/gui-buffer.c b/src/gui/gui-buffer.c index c9e33e88e..1080996aa 100644 --- a/src/gui/gui-buffer.c +++ b/src/gui/gui-buffer.c @@ -88,8 +88,8 @@ char *gui_buffer_properties_get_integer[] = }; char *gui_buffer_properties_get_string[] = { "plugin", "name", "full_name", "short_name", "title", "input", - "text_search_input", "highlight_words", "highlight_regex", "highlight_tags", - "hotlist_max_level_nicks", + "text_search_input", "highlight_words", "highlight_regex", + "highlight_tags_restrict", "highlight_tags", "hotlist_max_level_nicks", NULL }; char *gui_buffer_properties_get_pointer[] = @@ -101,9 +101,9 @@ char *gui_buffer_properties_set[] = "short_name", "type", "notify", "title", "time_for_each_line", "nicklist", "nicklist_case_sensitive", "nicklist_display_groups", "highlight_words", "highlight_words_add", "highlight_words_del", "highlight_regex", - "highlight_tags", "hotlist_max_level_nicks", "hotlist_max_level_nicks_add", - "hotlist_max_level_nicks_del", "input", "input_pos", - "input_get_unknown_commands", + "highlight_tags_restrict", "highlight_tags", "hotlist_max_level_nicks", + "hotlist_max_level_nicks_add", "hotlist_max_level_nicks_del", + "input", "input_pos", "input_get_unknown_commands", NULL }; @@ -643,6 +643,9 @@ gui_buffer_new (struct t_weechat_plugin *plugin, new_buffer->highlight_words = NULL; new_buffer->highlight_regex = NULL; new_buffer->highlight_regex_compiled = NULL; + new_buffer->highlight_tags_restrict = NULL; + new_buffer->highlight_tags_restrict_count = 0; + new_buffer->highlight_tags_restrict_array = NULL; new_buffer->highlight_tags = NULL; new_buffer->highlight_tags_count = 0; new_buffer->highlight_tags_array = NULL; @@ -1034,6 +1037,8 @@ gui_buffer_get_string (struct t_gui_buffer *buffer, const char *property) return buffer->highlight_words; else if (string_strcasecmp (property, "highlight_regex") == 0) return buffer->highlight_regex; + else if (string_strcasecmp (property, "highlight_tags_restrict") == 0) + return buffer->highlight_tags_restrict; else if (string_strcasecmp (property, "highlight_tags") == 0) return buffer->highlight_tags; else if (string_strcasecmp (property, "hotlist_max_level_nicks") == 0) @@ -1406,12 +1411,66 @@ gui_buffer_set_highlight_regex (struct t_gui_buffer *buffer, } /* + * Sets tags to restrict highlights for a buffer. + */ + +void +gui_buffer_set_highlight_tags_restrict (struct t_gui_buffer *buffer, + const char *new_tags) +{ + int i; + char **tags_array; + + if (buffer->highlight_tags_restrict) + { + free (buffer->highlight_tags_restrict); + buffer->highlight_tags_restrict = NULL; + } + if (buffer->highlight_tags_restrict_array) + { + for (i = 0; i < buffer->highlight_tags_restrict_count; i++) + { + string_free_split (buffer->highlight_tags_restrict_array[i]); + } + free (buffer->highlight_tags_restrict_array); + buffer->highlight_tags_restrict_array = NULL; + } + buffer->highlight_tags_restrict_count = 0; + + if (!new_tags) + return; + + buffer->highlight_tags_restrict = strdup (new_tags); + if (!buffer->highlight_tags_restrict) + return; + + tags_array = string_split (buffer->highlight_tags_restrict, ",", 0, 0, + &buffer->highlight_tags_restrict_count); + if (tags_array) + { + buffer->highlight_tags_restrict_array = + malloc (buffer->highlight_tags_restrict_count * + sizeof (*buffer->highlight_tags_restrict_array)); + if (buffer->highlight_tags_restrict_array) + { + for (i = 0; i < buffer->highlight_tags_restrict_count; i++) + { + buffer->highlight_tags_restrict_array[i] = string_split (tags_array[i], + "+", 0, 0, + NULL); + } + } + string_free_split (tags_array); + } +} + +/* * Sets highlight tags for a buffer. */ void gui_buffer_set_highlight_tags (struct t_gui_buffer *buffer, - const char *new_highlight_tags) + const char *new_tags) { int i; char **tags_array; @@ -1432,10 +1491,10 @@ gui_buffer_set_highlight_tags (struct t_gui_buffer *buffer, } buffer->highlight_tags_count = 0; - if (!new_highlight_tags) + if (!new_tags) return; - buffer->highlight_tags = strdup (new_highlight_tags); + buffer->highlight_tags = strdup (new_tags); if (!buffer->highlight_tags) return; @@ -1443,8 +1502,9 @@ gui_buffer_set_highlight_tags (struct t_gui_buffer *buffer, &buffer->highlight_tags_count); if (tags_array) { - buffer->highlight_tags_array = malloc (buffer->highlight_tags_count * - sizeof (*buffer->highlight_tags_array)); + buffer->highlight_tags_array = + malloc (buffer->highlight_tags_count * + sizeof (*buffer->highlight_tags_array)); if (buffer->highlight_tags_array) { for (i = 0; i < buffer->highlight_tags_count; i++) @@ -1751,6 +1811,10 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property, { gui_buffer_set_highlight_regex (buffer, value); } + else if (string_strcasecmp (property, "highlight_tags_restrict") == 0) + { + gui_buffer_set_highlight_tags_restrict (buffer, value); + } else if (string_strcasecmp (property, "highlight_tags") == 0) { gui_buffer_set_highlight_tags (buffer, value); @@ -2486,6 +2550,16 @@ gui_buffer_close (struct t_gui_buffer *buffer) regfree (buffer->highlight_regex_compiled); free (buffer->highlight_regex_compiled); } + if (buffer->highlight_tags_restrict) + free (buffer->highlight_tags_restrict); + if (buffer->highlight_tags_restrict_array) + { + for (i = 0; i < buffer->highlight_tags_restrict_count; i++) + { + string_free_split (buffer->highlight_tags_restrict_array[i]); + } + free (buffer->highlight_tags_restrict_array); + } if (buffer->highlight_tags) free (buffer->highlight_tags); if (buffer->highlight_tags_array) @@ -3693,6 +3767,9 @@ gui_buffer_hdata_buffer_cb (void *data, const char *hdata_name) HDATA_VAR(struct t_gui_buffer, highlight_words, STRING, 0, NULL, NULL); HDATA_VAR(struct t_gui_buffer, highlight_regex, STRING, 0, NULL, NULL); HDATA_VAR(struct t_gui_buffer, highlight_regex_compiled, POINTER, 0, NULL, NULL); + HDATA_VAR(struct t_gui_buffer, highlight_tags_restrict, STRING, 0, NULL, NULL); + HDATA_VAR(struct t_gui_buffer, highlight_tags_restrict_count, INTEGER, 0, NULL, NULL); + HDATA_VAR(struct t_gui_buffer, highlight_tags_restrict_array, POINTER, 0, "highlight_tags_restrict_count", NULL); HDATA_VAR(struct t_gui_buffer, highlight_tags, STRING, 0, NULL, NULL); HDATA_VAR(struct t_gui_buffer, highlight_tags_count, INTEGER, 0, NULL, NULL); HDATA_VAR(struct t_gui_buffer, highlight_tags_array, POINTER, 0, "highlight_tags_count", NULL); @@ -3879,6 +3956,8 @@ gui_buffer_add_to_infolist (struct t_infolist *infolist, return 0; if (!infolist_new_var_pointer (ptr_item, "highlight_regex_compiled", buffer->highlight_regex_compiled)) return 0; + if (!infolist_new_var_string (ptr_item, "highlight_tags_restrict", buffer->highlight_tags_restrict)) + return 0; if (!infolist_new_var_string (ptr_item, "highlight_tags", buffer->highlight_tags)) return 0; if (!infolist_new_var_string (ptr_item, "hotlist_max_level_nicks", hashtable_get_string (buffer->hotlist_max_level_nicks, "keys_values"))) @@ -4081,6 +4160,9 @@ gui_buffer_print_log () log_printf (" highlight_words . . . . : '%s'", ptr_buffer->highlight_words); log_printf (" highlight_regex . . . . : '%s'", ptr_buffer->highlight_regex); log_printf (" highlight_regex_compiled: 0x%lx", ptr_buffer->highlight_regex_compiled); + log_printf (" highlight_tags_restrict. . . : '%s'", ptr_buffer->highlight_tags_restrict); + log_printf (" highlight_tags_restrict_count: %d", ptr_buffer->highlight_tags_restrict_count); + log_printf (" highlight_tags_restrict_array: 0x%lx", ptr_buffer->highlight_tags_restrict_array); log_printf (" highlight_tags. . . . . : '%s'", ptr_buffer->highlight_tags); log_printf (" highlight_tags_count. . : %d", ptr_buffer->highlight_tags_count); log_printf (" highlight_tags_array. . : 0x%lx", ptr_buffer->highlight_tags_array); diff --git a/src/gui/gui-buffer.h b/src/gui/gui-buffer.h index 70ca1696b..1ab93f06d 100644 --- a/src/gui/gui-buffer.h +++ b/src/gui/gui-buffer.h @@ -177,10 +177,12 @@ struct t_gui_buffer char *highlight_words; /* list of words to highlight */ char *highlight_regex; /* regex for highlight */ regex_t *highlight_regex_compiled; /* compiled regex */ - char *highlight_tags; /* tags to highlight */ - int highlight_tags_count; /* number of tags to highlight */ - /* (if 0, any tag is highlighted) */ - char ***highlight_tags_array; /* tags to highlight */ + char *highlight_tags_restrict; /* restrict highlight to these tags */ + int highlight_tags_restrict_count; /* number of restricted tags */ + char ***highlight_tags_restrict_array; /* array with restricted tags */ + char *highlight_tags; /* force highlight on these tags */ + int highlight_tags_count; /* number of highlight tags */ + char ***highlight_tags_array; /* array with highlight tags */ /* hotlist settings for buffer */ struct t_hashtable *hotlist_max_level_nicks; /* max hotlist level for */ @@ -263,8 +265,10 @@ extern void gui_buffer_set_highlight_words (struct t_gui_buffer *buffer, const char *new_highlight_words); extern void gui_buffer_set_highlight_regex (struct t_gui_buffer *buffer, const char *new_highlight_regex); +extern void gui_buffer_set_highlight_tags_restrict (struct t_gui_buffer *buffer, + const char *new_tags); extern void gui_buffer_set_highlight_tags (struct t_gui_buffer *buffer, - const char *new_highlight_tags); + const char *new_tags); extern void gui_buffer_set_hotlist_max_level_nicks (struct t_gui_buffer *buffer, const char *new_hotlist_max_level_nicks); extern void gui_buffer_set_unread (struct t_gui_buffer *buffer); diff --git a/src/gui/gui-line.c b/src/gui/gui-line.c index f6e4d863f..4a2460c64 100644 --- a/src/gui/gui-line.c +++ b/src/gui/gui-line.c @@ -699,23 +699,15 @@ gui_line_has_highlight (struct t_gui_line *line) return 0; /* - * check if highlight is forced by a tag (with option highlight_tags) or - * disabled for line; also check if the line is an action message (for - * example tag "irc_action") and get pointer on the nick (tag "nick_xxx"), - * these info will be used later (see below) + * check if highlight is disabled for line; also check if the line is an + * action message (for example tag "irc_action") and get pointer on the nick + * (tag "nick_xxx"), these info will be used later (see below) */ no_highlight = 0; action = 0; ptr_nick = NULL; for (i = 0; i < line->data->tags_count; i++) { - if (config_highlight_tags - && gui_line_match_tags (line->data, - config_num_highlight_tags, - config_highlight_tags)) - { - return 1; - } if (strcmp (line->data->tags_array[i], GUI_CHAT_TAG_NO_HIGHLIGHT) == 0) no_highlight = 1; else if (strncmp (line->data->tags_array[i], "nick_", 5) == 0) @@ -734,14 +726,38 @@ gui_line_has_highlight (struct t_gui_line *line) return 0; /* + * check if highlight is forced by a tag + * (with global option "weechat.look.highlight_tags") + */ + if (config_highlight_tags + && gui_line_match_tags (line->data, + config_num_highlight_tags, + config_highlight_tags)) + { + return 1; + } + + /* + * check if highlight is forced by a tag + * (with buffer property "highlight_tags") + */ + if (line->data->buffer->highlight_tags + && gui_line_match_tags (line->data, + line->data->buffer->highlight_tags_count, + line->data->buffer->highlight_tags_array)) + { + return 1; + } + + /* * check that line matches highlight tags, if any (if no tag is specified, * then any tag is allowed) */ - if (line->data->buffer->highlight_tags_count > 0) + if (line->data->buffer->highlight_tags_restrict_count > 0) { if (!gui_line_match_tags (line->data, - line->data->buffer->highlight_tags_count, - line->data->buffer->highlight_tags_array)) + line->data->buffer->highlight_tags_restrict_count, + line->data->buffer->highlight_tags_restrict_array)) return 0; } diff --git a/src/plugins/irc/irc-channel.c b/src/plugins/irc/irc-channel.c index f30696881..28a51e724 100644 --- a/src/plugins/irc/irc-channel.c +++ b/src/plugins/irc/irc-channel.c @@ -253,11 +253,11 @@ irc_channel_new (struct t_irc_server *server, int channel_type, (channel_type == IRC_CHANNEL_TYPE_CHANNEL) ? weechat_config_string (irc_config_look_highlight_channel) : weechat_config_string (irc_config_look_highlight_pv)); - if (weechat_config_string (irc_config_look_highlight_tags) - && weechat_config_string (irc_config_look_highlight_tags)[0]) + if (weechat_config_string (irc_config_look_highlight_tags_restrict) + && weechat_config_string (irc_config_look_highlight_tags_restrict)[0]) { - weechat_buffer_set (new_buffer, "highlight_tags", - weechat_config_string (irc_config_look_highlight_tags)); + weechat_buffer_set (new_buffer, "highlight_tags_restrict", + weechat_config_string (irc_config_look_highlight_tags_restrict)); } } diff --git a/src/plugins/irc/irc-config.c b/src/plugins/irc/irc-config.c index 49d06b575..6b3b1f818 100644 --- a/src/plugins/irc/irc-config.c +++ b/src/plugins/irc/irc-config.c @@ -69,7 +69,7 @@ struct t_config_option *irc_config_look_display_pv_back; struct t_config_option *irc_config_look_highlight_server; struct t_config_option *irc_config_look_highlight_channel; struct t_config_option *irc_config_look_highlight_pv; -struct t_config_option *irc_config_look_highlight_tags; +struct t_config_option *irc_config_look_highlight_tags_restrict; struct t_config_option *irc_config_look_item_away_message; struct t_config_option *irc_config_look_item_channel_modes_hide_key; struct t_config_option *irc_config_look_item_display_server; @@ -488,12 +488,12 @@ irc_config_change_look_item_nick_prefix (void *data, } /* - * Callback for changes on option "irc.look.highlight_tags". + * Callback for changes on option "irc.look.highlight_tags_restrict". */ void -irc_config_change_look_highlight_tags (void *data, - struct t_config_option *option) +irc_config_change_look_highlight_tags_restrict (void *data, + struct t_config_option *option) { struct t_irc_server *ptr_server; struct t_irc_channel *ptr_channel; @@ -507,16 +507,16 @@ irc_config_change_look_highlight_tags (void *data, { if (ptr_server->buffer) { - weechat_buffer_set (ptr_server->buffer, "highlight_tags", - weechat_config_string (irc_config_look_highlight_tags)); + weechat_buffer_set (ptr_server->buffer, "highlight_tags_restrict", + weechat_config_string (irc_config_look_highlight_tags_restrict)); } for (ptr_channel = ptr_server->channels; ptr_channel; ptr_channel = ptr_channel->next_channel) { if (ptr_channel->buffer) { - weechat_buffer_set (ptr_channel->buffer, "highlight_tags", - weechat_config_string (irc_config_look_highlight_tags)); + weechat_buffer_set (ptr_channel->buffer, "highlight_tags_restrict", + weechat_config_string (irc_config_look_highlight_tags_restrict)); } } } @@ -2343,14 +2343,17 @@ irc_config_init () "disables default highlight on nick, examples: \"$nick\", " "\"(?-i)$nick\""), NULL, 0, 0, "$nick", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL); - irc_config_look_highlight_tags = weechat_config_new_option ( - irc_config_file, ptr_section, - "highlight_tags", "string", - N_("comma separated list of tags for messages that may produce " - "highlight (usually any message from another user, not server " - "messages,..)"), + irc_config_look_highlight_tags_restrict = weechat_config_new_option ( + irc_config_file, ptr_section, + "highlight_tags_restrict", "string", + N_("restrict highlights to these tags on irc buffers (to have " + "highlight on user messages but not server messages); tags " + "must be separated by a comma and \"+\" can be used to make a " + "logical \"and\" between tags; tags can start or end with \"*\" " + "to match more than one tag; an empty value allows highlight on any " + "tag"), NULL, 0, 0, "irc_privmsg,irc_notice", NULL, 0, NULL, NULL, - &irc_config_change_look_highlight_tags, NULL, NULL, NULL); + &irc_config_change_look_highlight_tags_restrict, NULL, NULL, NULL); irc_config_look_item_away_message = weechat_config_new_option ( irc_config_file, ptr_section, "item_away_message", "boolean", diff --git a/src/plugins/irc/irc-config.h b/src/plugins/irc/irc-config.h index 6a0759455..0a5e13e0d 100644 --- a/src/plugins/irc/irc-config.h +++ b/src/plugins/irc/irc-config.h @@ -117,7 +117,7 @@ extern struct t_config_option *irc_config_look_display_pv_back; extern struct t_config_option *irc_config_look_highlight_server; extern struct t_config_option *irc_config_look_highlight_channel; extern struct t_config_option *irc_config_look_highlight_pv; -extern struct t_config_option *irc_config_look_highlight_tags; +extern struct t_config_option *irc_config_look_highlight_tags_restrict; extern struct t_config_option *irc_config_look_item_away_message; extern struct t_config_option *irc_config_look_item_channel_modes_hide_key; extern struct t_config_option *irc_config_look_item_display_server; diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index 0f5055c80..0fb4815ff 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -3460,11 +3460,11 @@ irc_server_create_buffer (struct t_irc_server *server) /* set highlights settings on server buffer */ weechat_buffer_set (server->buffer, "highlight_words_add", weechat_config_string (irc_config_look_highlight_server)); - if (weechat_config_string (irc_config_look_highlight_tags) - && weechat_config_string (irc_config_look_highlight_tags)[0]) + if (weechat_config_string (irc_config_look_highlight_tags_restrict) + && weechat_config_string (irc_config_look_highlight_tags_restrict)[0]) { - weechat_buffer_set (server->buffer, "highlight_tags", - weechat_config_string (irc_config_look_highlight_tags)); + weechat_buffer_set (server->buffer, "highlight_tags_restrict", + weechat_config_string (irc_config_look_highlight_tags_restrict)); } irc_server_set_buffer_title (server); |