diff --git a/ChangeLog b/ChangeLog index 407ee3a2e..c38d4130c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -40,6 +40,8 @@ Version 0.3.5 (under dev!) * core: allow background for nick colors (using ":") * api: add new function buffer_match_list * aspell: fix spellers used after switch of window (bug #32811) +* irc: replace options irc.color.nick_prefix_{op|halfop|voice|user} by a single + option irc.color.nick_prefixes (task #10888) * irc: fix local variable "away" on server buffer (set/delete it each time away is set or removed on server) * irc: add new options irc.look.buffer_switch_autojoin and diff --git a/NEWS b/NEWS index 74f873c59..e4d1026e2 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,7 @@ WeeChat News ============ Sébastien Helleu -v0.3.5-dev, 2011-01-31 +v0.3.5-dev, 2011-03-23 Version 0.3.5 (under dev!) @@ -12,6 +12,10 @@ Important release notes: * if you have some colors defined in section "palette" with version 0.3.4, you should remove all colors defined, and add new aliases (it's not needed any more to add colors before using them) +* colors for nick prefixes (char for op, voice, ..) are defined in a single + option 'irc.color.nick_prefixes', therefore following options will be lost: + 'irc.color.nick_prefix_op', 'irc.color.nick_prefix_halfop', + 'irc.color.nick_prefix_voice', 'irc.color.nick_prefix_user' Version 0.3.4 (2011-01-16) -------------------------- @@ -20,8 +24,8 @@ Important release notes: * if you are using `/upgrade` from a previous release: ** some nick prefixes can be wrong, so it is recommended to do `/allchan names` -** nick colors are defined with a new option "weechat.color.chat_nick_colors", - therefore old options "weechat.color.chat_nick_color1..10" will be lost when +** nick colors are defined with a new option 'weechat.color.chat_nick_colors', + therefore old options 'weechat.color.chat_nick_color1..10' will be lost when upgrading ** nick colors in messages displayed will be wrong if you changed some nick colors (old default colors will be used) diff --git a/doc/de/autogen/user/irc_options.txt b/doc/de/autogen/user/irc_options.txt index a7835e93e..b9d5b8271 100644 --- a/doc/de/autogen/user/irc_options.txt +++ b/doc/de/autogen/user/irc_options.txt @@ -38,25 +38,10 @@ ** Typ: Farbe ** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute werden vor einer Farbe gesetzt (ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `green`) -* *irc.color.nick_prefix_halfop* -** Beschreibung: `Textfarbe für den Nick-Präfix des halfop in einem Channel` -** Typ: Farbe -** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute werden vor einer Farbe gesetzt (ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `lightmagenta`) - -* *irc.color.nick_prefix_op* -** Beschreibung: `Textfarbe für den Nick-Präfix von op/admin/owner in einem Channel` -** Typ: Farbe -** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute werden vor einer Farbe gesetzt (ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `lightgreen`) - -* *irc.color.nick_prefix_user* -** Beschreibung: `Textfarbe für den Nick-Präfix eines Users in einem Channel` -** Typ: Farbe -** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute werden vor einer Farbe gesetzt (ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `blue`) - -* *irc.color.nick_prefix_voice* -** Beschreibung: `Textfarbe für den Nick-Präfix für einen User mit Voice Rechten in einem Channel` -** Typ: Farbe -** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute werden vor einer Farbe gesetzt (ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `yellow`) +* *irc.color.nick_prefixes* +** Beschreibung: `color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), format is: "o:color1;h:color2;v:color3" (if a mode is not found, WeeChat will try with next modes received from server ("PREFIX"); a special mode "*" can be used as default color if no mode has been found in list)` +** Typ: Zeichenkette +** Werte: beliebige Zeichenkette (Standardwert: `"q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"`) * *irc.color.nick_suffix* ** Beschreibung: `Farbe für den Nick Suffix (Suffix ist die editierbare Zeichenkette die nach dem Nick steht)` diff --git a/doc/en/autogen/user/irc_options.txt b/doc/en/autogen/user/irc_options.txt index 7e41948f2..4f8372231 100644 --- a/doc/en/autogen/user/irc_options.txt +++ b/doc/en/autogen/user/irc_options.txt @@ -38,25 +38,10 @@ ** type: color ** values: 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 underline (default value: `green`) -* *irc.color.nick_prefix_halfop* -** description: `color for prefix of nick which is halfop on channel` -** type: color -** values: 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 underline (default value: `lightmagenta`) - -* *irc.color.nick_prefix_op* -** description: `color for prefix of nick which is op/admin/owner on channel` -** type: color -** values: 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 underline (default value: `lightgreen`) - -* *irc.color.nick_prefix_user* -** description: `color for prefix of nick which is user on channel` -** type: color -** values: 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 underline (default value: `blue`) - -* *irc.color.nick_prefix_voice* -** description: `color for prefix of nick which has voice on channel` -** type: color -** values: 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 underline (default value: `yellow`) +* *irc.color.nick_prefixes* +** description: `color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), format is: "o:color1;h:color2;v:color3" (if a mode is not found, WeeChat will try with next modes received from server ("PREFIX"); a special mode "*" can be used as default color if no mode has been found in list)` +** type: string +** values: any string (default value: `"q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"`) * *irc.color.nick_suffix* ** description: `color for nick suffix (suffix is custom string displayed after nick)` diff --git a/doc/fr/autogen/user/irc_options.txt b/doc/fr/autogen/user/irc_options.txt index 7c84d81f1..f56a50f53 100644 --- a/doc/fr/autogen/user/irc_options.txt +++ b/doc/fr/autogen/user/irc_options.txt @@ -38,25 +38,10 @@ ** type: couleur ** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `green`) -* *irc.color.nick_prefix_halfop* -** description: `couleur pour le préfixe d'un pseudo qui est halfop sur le canal` -** type: couleur -** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `lightmagenta`) - -* *irc.color.nick_prefix_op* -** description: `couleur pour le préfixe d'un pseudo qui est op/admin/owner sur le canal` -** type: couleur -** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `lightgreen`) - -* *irc.color.nick_prefix_user* -** description: `couleur pour le préfixe d'un pseudo qui est user sur le canal` -** type: couleur -** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `blue`) - -* *irc.color.nick_prefix_voice* -** description: `couleur pour le préfixe d'un pseudo qui a le voice sur le canal` -** type: couleur -** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `yellow`) +* *irc.color.nick_prefixes* +** description: `couleur pour les préfixes du pseudo en utilisant les caractères de mode (o=op, h=halfop, v=voice, ...), le format est: "o:couleur1;h:couleur2;v:couleur3" (si un mode n'est pas trouvé, WeeChat essaiera avec les modes suivants reçus du serveur ("PREFIX"); un mode spécial "*" peut être utilisé comme couleur par défaut si aucun mode n'est trouvé dans la liste)` +** type: chaîne +** valeurs: toute chaîne (valeur par défaut: `"q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"`) * *irc.color.nick_suffix* ** description: `couleur pour le suffixe du pseudo (le suffixe est une chaîne personnalisée affichée après le pseudo)` diff --git a/doc/it/autogen/user/irc_options.txt b/doc/it/autogen/user/irc_options.txt index 5422dd08d..06d242bdb 100644 --- a/doc/it/autogen/user/irc_options.txt +++ b/doc/it/autogen/user/irc_options.txt @@ -38,25 +38,10 @@ ** tipo: colore ** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `green`) -* *irc.color.nick_prefix_halfop* -** descrizione: `colore per il prefisso del nick che è halfop sul canale` -** tipo: colore -** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `lightmagenta`) - -* *irc.color.nick_prefix_op* -** descrizione: `colore per il prefisso del nick che è operatore/amministratore/proprietario del canale` -** tipo: colore -** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `lightgreen`) - -* *irc.color.nick_prefix_user* -** descrizione: `colore per il prefisso del nick che è utente sul canale` -** tipo: colore -** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `blue`) - -* *irc.color.nick_prefix_voice* -** descrizione: `colore per il prefisso del nick che ha il voice sul canale` -** tipo: colore -** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `yellow`) +* *irc.color.nick_prefixes* +** descrizione: `color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), format is: "o:color1;h:color2;v:color3" (if a mode is not found, WeeChat will try with next modes received from server ("PREFIX"); a special mode "*" can be used as default color if no mode has been found in list)` +** tipo: stringa +** valori: qualsiasi stringa (valore predefinito: `"q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"`) * *irc.color.nick_suffix* ** descrizione: `colore per il suffisso del nick (il suffisso è la stringa personalizzata visualizzata dopo il nick)` diff --git a/po/cs.po b/po/cs.po index 0fb310f29..d439bb717 100644 --- a/po/cs.po +++ b/po/cs.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-03-18 15:29+0100\n" +"POT-Creation-Date: 2011-03-23 16:22+0100\n" "PO-Revision-Date: 2011-02-07 17:29+0100\n" "Last-Translator: Jiri Golembiovsky \n" "Language-Team: weechat-dev \n" @@ -5130,19 +5130,12 @@ msgstr "barva textu vezprávách připojení" msgid "color for text in part/quit messages" msgstr "barva textu ve zprávách odchodu/ukončení" -msgid "color for prefix of nick which is op/admin/owner on channel" +msgid "" +"color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), " +"format is: \"o:color1;h:color2;v:color3\" (if a mode is not found, WeeChat " +"will try with next modes received from server (\"PREFIX\"); a special mode " +"\"*\" can be used as default color if no mode has been found in list)" msgstr "" -"barva prefixu přezdívky, která je operátorem/administratorem/vlastníkem na " -"kanálu" - -msgid "color for prefix of nick which is halfop on channel" -msgstr "barva prefixu přezdívky, která je částečným operátorem na kanálu" - -msgid "color for prefix of nick which has voice on channel" -msgstr "barva prefixu přezdívky, která může mluvit na kanálu" - -msgid "color for prefix of nick which is user on channel" -msgstr "barva prefixu přezdívky, která je uživatelem na kanálu" msgid "color for nick prefix (prefix is custom string displayed before nick)" msgstr "" @@ -7468,6 +7461,20 @@ msgstr "" msgid "Pointer" msgstr "Ukazatel" +#~ msgid "color for prefix of nick which is op/admin/owner on channel" +#~ msgstr "" +#~ "barva prefixu přezdívky, která je operátorem/administratorem/vlastníkem " +#~ "na kanálu" + +#~ msgid "color for prefix of nick which is halfop on channel" +#~ msgstr "barva prefixu přezdívky, která je částečným operátorem na kanálu" + +#~ msgid "color for prefix of nick which has voice on channel" +#~ msgstr "barva prefixu přezdívky, která může mluvit na kanálu" + +#~ msgid "color for prefix of nick which is user on channel" +#~ msgstr "barva prefixu přezdívky, která je uživatelem na kanálu" + #, fuzzy #~ msgid "comma separated list of tags that will force highlight" #~ msgstr "čárkami oddělený seznam slovníků, které použít pro tento buffer" diff --git a/po/de.po b/po/de.po index 98b5404c8..5116c0914 100644 --- a/po/de.po +++ b/po/de.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-03-18 15:29+0100\n" +"POT-Creation-Date: 2011-03-23 16:22+0100\n" "PO-Revision-Date: 2011-03-12 10:15+0100\n" "Last-Translator: Nils G.\n" "Language-Team: weechat-dev \n" @@ -5374,19 +5374,12 @@ msgstr "" "Textfarbe in der die Meldungen für das Verlassen/Beenden eines Channels " "angezeigt werden soll" -msgid "color for prefix of nick which is op/admin/owner on channel" -msgstr "Textfarbe für den Nick-Präfix von op/admin/owner in einem Channel" - -msgid "color for prefix of nick which is halfop on channel" -msgstr "Textfarbe für den Nick-Präfix des halfop in einem Channel" - -msgid "color for prefix of nick which has voice on channel" +msgid "" +"color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), " +"format is: \"o:color1;h:color2;v:color3\" (if a mode is not found, WeeChat " +"will try with next modes received from server (\"PREFIX\"); a special mode " +"\"*\" can be used as default color if no mode has been found in list)" msgstr "" -"Textfarbe für den Nick-Präfix für einen User mit Voice Rechten in einem " -"Channel" - -msgid "color for prefix of nick which is user on channel" -msgstr "Textfarbe für den Nick-Präfix eines Users in einem Channel" msgid "color for nick prefix (prefix is custom string displayed before nick)" msgstr "" @@ -7800,6 +7793,20 @@ msgstr "Hashtable (Ausgabe)" msgid "Pointer" msgstr "Pointer" +#~ msgid "color for prefix of nick which is op/admin/owner on channel" +#~ msgstr "Textfarbe für den Nick-Präfix von op/admin/owner in einem Channel" + +#~ msgid "color for prefix of nick which is halfop on channel" +#~ msgstr "Textfarbe für den Nick-Präfix des halfop in einem Channel" + +#~ msgid "color for prefix of nick which has voice on channel" +#~ msgstr "" +#~ "Textfarbe für den Nick-Präfix für einen User mit Voice Rechten in einem " +#~ "Channel" + +#~ msgid "color for prefix of nick which is user on channel" +#~ msgstr "Textfarbe für den Nick-Präfix eines Users in einem Channel" + #, fuzzy #~ msgid "comma separated list of tags that will force highlight" #~ msgstr "" diff --git a/po/es.po b/po/es.po index d5199065d..396162288 100644 --- a/po/es.po +++ b/po/es.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-03-18 15:29+0100\n" +"POT-Creation-Date: 2011-03-23 16:22+0100\n" "PO-Revision-Date: 2011-02-07 17:29+0100\n" "Last-Translator: Elián Hanisch \n" "Language-Team: weechat-dev \n" @@ -5261,18 +5261,12 @@ msgstr "color para el texto en mensajes de unión" msgid "color for text in part/quit messages" msgstr "color para el texto en mensajes de salida/abandono" -msgid "color for prefix of nick which is op/admin/owner on channel" +msgid "" +"color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), " +"format is: \"o:color1;h:color2;v:color3\" (if a mode is not found, WeeChat " +"will try with next modes received from server (\"PREFIX\"); a special mode " +"\"*\" can be used as default color if no mode has been found in list)" msgstr "" -"color del prefijo del apodo cuando este es op/administrador/dueño del canal" - -msgid "color for prefix of nick which is halfop on channel" -msgstr "color del prefijo del apodo cuando es semi-op del canal" - -msgid "color for prefix of nick which has voice on channel" -msgstr "color del prefijo del apodo cuando tiene voz en el canal" - -msgid "color for prefix of nick which is user on channel" -msgstr "color del prefijo del apodo cuando es un usuario del canal" msgid "color for nick prefix (prefix is custom string displayed before nick)" msgstr "" @@ -7652,6 +7646,20 @@ msgstr "Tabla hash (salida)" msgid "Pointer" msgstr "Puntero" +#~ msgid "color for prefix of nick which is op/admin/owner on channel" +#~ msgstr "" +#~ "color del prefijo del apodo cuando este es op/administrador/dueño del " +#~ "canal" + +#~ msgid "color for prefix of nick which is halfop on channel" +#~ msgstr "color del prefijo del apodo cuando es semi-op del canal" + +#~ msgid "color for prefix of nick which has voice on channel" +#~ msgstr "color del prefijo del apodo cuando tiene voz en el canal" + +#~ msgid "color for prefix of nick which is user on channel" +#~ msgstr "color del prefijo del apodo cuando es un usuario del canal" + #, fuzzy #~ msgid "comma separated list of tags that will force highlight" #~ msgstr "lista separada por comas de diccionarios para usar en este buffer" diff --git a/po/fr.po b/po/fr.po index d56ff4e78..a4d91a667 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-03-18 15:29+0100\n" -"PO-Revision-Date: 2011-03-18 15:30+0100\n" +"POT-Creation-Date: 2011-03-23 16:22+0100\n" +"PO-Revision-Date: 2011-03-23 10:34+0100\n" "Last-Translator: Sebastien Helleu \n" "Language-Team: weechat-dev \n" "Language: French\n" @@ -5271,18 +5271,17 @@ msgstr "couleur pour le texte dans les messages join" msgid "color for text in part/quit messages" msgstr "couleur pour le texte dans les messages part/quit" -msgid "color for prefix of nick which is op/admin/owner on channel" +msgid "" +"color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), " +"format is: \"o:color1;h:color2;v:color3\" (if a mode is not found, WeeChat " +"will try with next modes received from server (\"PREFIX\"); a special mode " +"\"*\" can be used as default color if no mode has been found in list)" msgstr "" -"couleur pour le préfixe d'un pseudo qui est op/admin/owner sur le canal" - -msgid "color for prefix of nick which is halfop on channel" -msgstr "couleur pour le préfixe d'un pseudo qui est halfop sur le canal" - -msgid "color for prefix of nick which has voice on channel" -msgstr "couleur pour le préfixe d'un pseudo qui a le voice sur le canal" - -msgid "color for prefix of nick which is user on channel" -msgstr "couleur pour le préfixe d'un pseudo qui est user sur le canal" +"couleur pour les préfixes du pseudo en utilisant les caractères de mode " +"(o=op, h=halfop, v=voice, ...), le format est: \"o:couleur1;h:couleur2;v:" +"couleur3\" (si un mode n'est pas trouvé, WeeChat essaiera avec les modes " +"suivants reçus du serveur (\"PREFIX\"); un mode spécial \"*\" peut être " +"utilisé comme couleur par défaut si aucun mode n'est trouvé dans la liste)" msgid "color for nick prefix (prefix is custom string displayed before nick)" msgstr "" @@ -7662,6 +7661,19 @@ msgstr "Hashtable (sortie)" msgid "Pointer" msgstr "Pointeur" +#~ msgid "color for prefix of nick which is op/admin/owner on channel" +#~ msgstr "" +#~ "couleur pour le préfixe d'un pseudo qui est op/admin/owner sur le canal" + +#~ msgid "color for prefix of nick which is halfop on channel" +#~ msgstr "couleur pour le préfixe d'un pseudo qui est halfop sur le canal" + +#~ msgid "color for prefix of nick which has voice on channel" +#~ msgstr "couleur pour le préfixe d'un pseudo qui a le voice sur le canal" + +#~ msgid "color for prefix of nick which is user on channel" +#~ msgstr "couleur pour le préfixe d'un pseudo qui est user sur le canal" + #~ msgid "comma separated list of tags that will force highlight" #~ msgstr "liste des tags (séparés par des virgules) qui forcent un highlight" diff --git a/po/hu.po b/po/hu.po index 6fc3c8cbf..fda2f878a 100644 --- a/po/hu.po +++ b/po/hu.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-03-18 15:29+0100\n" +"POT-Creation-Date: 2011-03-23 16:22+0100\n" "PO-Revision-Date: 2011-02-07 17:29+0100\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -4798,16 +4798,11 @@ msgstr "új üzenetet tartalmazó ablak színe" msgid "color for text in part/quit messages" msgstr "alapértelmezett kilépő üzenet" -msgid "color for prefix of nick which is op/admin/owner on channel" -msgstr "" - -msgid "color for prefix of nick which is halfop on channel" -msgstr "" - -msgid "color for prefix of nick which has voice on channel" -msgstr "" - -msgid "color for prefix of nick which is user on channel" +msgid "" +"color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), " +"format is: \"o:color1;h:color2;v:color3\" (if a mode is not found, WeeChat " +"will try with next modes received from server (\"PREFIX\"); a special mode " +"\"*\" can be used as default color if no mode has been found in list)" msgstr "" msgid "color for nick prefix (prefix is custom string displayed before nick)" diff --git a/po/it.po b/po/it.po index e7432ade1..54ac0d585 100644 --- a/po/it.po +++ b/po/it.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-03-18 15:29+0100\n" +"POT-Creation-Date: 2011-03-23 16:22+0100\n" "PO-Revision-Date: 2011-03-21 12:10+0100\n" "Last-Translator: Marco Paolone \n" "Language-Team: weechat-dev \n" @@ -5232,19 +5232,12 @@ msgstr "colore per il testo nei messaggi di entrata" msgid "color for text in part/quit messages" msgstr "colore per il testo nei messaggi di uscita/abbandono" -msgid "color for prefix of nick which is op/admin/owner on channel" +msgid "" +"color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), " +"format is: \"o:color1;h:color2;v:color3\" (if a mode is not found, WeeChat " +"will try with next modes received from server (\"PREFIX\"); a special mode " +"\"*\" can be used as default color if no mode has been found in list)" msgstr "" -"colore per il prefisso del nick che è operatore/amministratore/proprietario " -"del canale" - -msgid "color for prefix of nick which is halfop on channel" -msgstr "colore per il prefisso del nick che è halfop sul canale" - -msgid "color for prefix of nick which has voice on channel" -msgstr "colore per il prefisso del nick che ha il voice sul canale" - -msgid "color for prefix of nick which is user on channel" -msgstr "colore per il prefisso del nick che è utente sul canale" msgid "color for nick prefix (prefix is custom string displayed before nick)" msgstr "" @@ -7607,6 +7600,20 @@ msgstr "Tabella hash (output)" msgid "Pointer" msgstr "Puntatore" +#~ msgid "color for prefix of nick which is op/admin/owner on channel" +#~ msgstr "" +#~ "colore per il prefisso del nick che è operatore/amministratore/" +#~ "proprietario del canale" + +#~ msgid "color for prefix of nick which is halfop on channel" +#~ msgstr "colore per il prefisso del nick che è halfop sul canale" + +#~ msgid "color for prefix of nick which has voice on channel" +#~ msgstr "colore per il prefisso del nick che ha il voice sul canale" + +#~ msgid "color for prefix of nick which is user on channel" +#~ msgstr "colore per il prefisso del nick che è utente sul canale" + #~ msgid "%s%s: channel \"%s\" not found for \"%s\" command" #~ msgstr "%s%s: canale \"%s\" non trovato per il comando \"%s\"" diff --git a/po/pl.po b/po/pl.po index de3a7c2ba..178b1623a 100644 --- a/po/pl.po +++ b/po/pl.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-03-18 15:29+0100\n" +"POT-Creation-Date: 2011-03-23 16:22+0100\n" "PO-Revision-Date: 2011-02-07 17:29+0100\n" "Last-Translator: Krzysztof Koroscik \n" "Language-Team: weechat-dev \n" @@ -5238,17 +5238,12 @@ msgstr "kolor tekstu w wiadomościach o wejściu na kanał" msgid "color for text in part/quit messages" msgstr "kolor tekstu w wiadomościach o opuszczeniu kanału/wyjściu z IRC" -msgid "color for prefix of nick which is op/admin/owner on channel" -msgstr "kolor prefixu nicka operatora/administratora/właściciela kanału" - -msgid "color for prefix of nick which is halfop on channel" -msgstr "kolor prefixu nicka posiadajacego halfopa" - -msgid "color for prefix of nick which has voice on channel" -msgstr "kolor prefiksu nicka posiadającego voice" - -msgid "color for prefix of nick which is user on channel" -msgstr "kolor prefixu nicka użytkownika na kanale" +msgid "" +"color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), " +"format is: \"o:color1;h:color2;v:color3\" (if a mode is not found, WeeChat " +"will try with next modes received from server (\"PREFIX\"); a special mode " +"\"*\" can be used as default color if no mode has been found in list)" +msgstr "" msgid "color for nick prefix (prefix is custom string displayed before nick)" msgstr "" @@ -7574,6 +7569,18 @@ msgstr "Hashtable (wyjście)" msgid "Pointer" msgstr "Wskaźnik" +#~ msgid "color for prefix of nick which is op/admin/owner on channel" +#~ msgstr "kolor prefixu nicka operatora/administratora/właściciela kanału" + +#~ msgid "color for prefix of nick which is halfop on channel" +#~ msgstr "kolor prefixu nicka posiadajacego halfopa" + +#~ msgid "color for prefix of nick which has voice on channel" +#~ msgstr "kolor prefiksu nicka posiadającego voice" + +#~ msgid "color for prefix of nick which is user on channel" +#~ msgstr "kolor prefixu nicka użytkownika na kanale" + #, fuzzy #~ msgid "comma separated list of tags that will force highlight" #~ msgstr "oddzielona przecinkami lista słowników do użycia w tym buforze" diff --git a/po/pt_BR.po b/po/pt_BR.po index bfce4e65b..d135e6e17 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-03-18 15:29+0100\n" +"POT-Creation-Date: 2011-03-23 16:22+0100\n" "PO-Revision-Date: 2011-02-07 17:30+0100\n" "Last-Translator: Ivan Sichmann Freitas \n" "Language-Team: weechat-dev \n" @@ -4628,16 +4628,11 @@ msgstr "" msgid "color for text in part/quit messages" msgstr "" -msgid "color for prefix of nick which is op/admin/owner on channel" -msgstr "" - -msgid "color for prefix of nick which is halfop on channel" -msgstr "" - -msgid "color for prefix of nick which has voice on channel" -msgstr "" - -msgid "color for prefix of nick which is user on channel" +msgid "" +"color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), " +"format is: \"o:color1;h:color2;v:color3\" (if a mode is not found, WeeChat " +"will try with next modes received from server (\"PREFIX\"); a special mode " +"\"*\" can be used as default color if no mode has been found in list)" msgstr "" msgid "color for nick prefix (prefix is custom string displayed before nick)" diff --git a/po/ru.po b/po/ru.po index 37459a528..0f38f008b 100644 --- a/po/ru.po +++ b/po/ru.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.5-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-03-18 15:29+0100\n" +"POT-Creation-Date: 2011-03-23 16:22+0100\n" "PO-Revision-Date: 2011-02-07 17:30+0100\n" "Last-Translator: Pavel Shevchuk \n" "Language-Team: weechat-dev \n" @@ -4805,16 +4805,11 @@ msgstr "цвет текущего окна с сообщениями" msgid "color for text in part/quit messages" msgstr "сообщение о выходе по-умолчанию" -msgid "color for prefix of nick which is op/admin/owner on channel" -msgstr "" - -msgid "color for prefix of nick which is halfop on channel" -msgstr "" - -msgid "color for prefix of nick which has voice on channel" -msgstr "" - -msgid "color for prefix of nick which is user on channel" +msgid "" +"color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), " +"format is: \"o:color1;h:color2;v:color3\" (if a mode is not found, WeeChat " +"will try with next modes received from server (\"PREFIX\"); a special mode " +"\"*\" can be used as default color if no mode has been found in list)" msgstr "" msgid "color for nick prefix (prefix is custom string displayed before nick)" diff --git a/po/weechat.pot b/po/weechat.pot index 224313474..87856daaa 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2011-03-18 15:29+0100\n" +"POT-Creation-Date: 2011-03-23 16:22+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4089,16 +4089,11 @@ msgstr "" msgid "color for text in part/quit messages" msgstr "" -msgid "color for prefix of nick which is op/admin/owner on channel" -msgstr "" - -msgid "color for prefix of nick which is halfop on channel" -msgstr "" - -msgid "color for prefix of nick which has voice on channel" -msgstr "" - -msgid "color for prefix of nick which is user on channel" +msgid "" +"color for nick prefixes using mode char (o=op, h=halfop, v=voice, ..), " +"format is: \"o:color1;h:color2;v:color3\" (if a mode is not found, WeeChat " +"will try with next modes received from server (\"PREFIX\"); a special mode " +"\"*\" can be used as default color if no mode has been found in list)" msgstr "" msgid "color for nick prefix (prefix is custom string displayed before nick)" diff --git a/src/plugins/irc/irc-bar-item.c b/src/plugins/irc/irc-bar-item.c index dce6b6dda..e6e24e682 100644 --- a/src/plugins/irc/irc-bar-item.c +++ b/src/plugins/irc/irc-bar-item.c @@ -423,7 +423,7 @@ irc_bar_item_input_prompt (void *data, struct t_gui_bar_item *item, struct t_irc_channel *channel; struct t_irc_nick *ptr_nick; char *buf, str_prefix[64]; - int length, prefix_color; + int length; /* make C compiler happy */ (void) data; @@ -451,9 +451,8 @@ irc_bar_item_input_prompt (void *data, struct t_gui_bar_item *item, { if (ptr_nick->prefix[0] != ' ') { - prefix_color = irc_nick_get_prefix_color (server, ptr_nick); snprintf (str_prefix, sizeof (str_prefix), "%s%s", - weechat_color (weechat_config_string (weechat_config_get (irc_nick_get_prefix_color_name (prefix_color)))), + weechat_color (irc_nick_get_prefix_color_name (server, ptr_nick)), ptr_nick->prefix); } } diff --git a/src/plugins/irc/irc-config.c b/src/plugins/irc/irc-config.c index 5a1fb26d7..641a76aea 100644 --- a/src/plugins/irc/irc-config.c +++ b/src/plugins/irc/irc-config.c @@ -99,10 +99,7 @@ struct t_config_option *irc_config_look_topic_strip_colors; struct t_config_option *irc_config_color_message_join; struct t_config_option *irc_config_color_message_quit; -struct t_config_option *irc_config_color_nick_prefix_op; -struct t_config_option *irc_config_color_nick_prefix_halfop; -struct t_config_option *irc_config_color_nick_prefix_voice; -struct t_config_option *irc_config_color_nick_prefix_user; +struct t_config_option *irc_config_color_nick_prefixes; struct t_config_option *irc_config_color_nick_prefix; struct t_config_option *irc_config_color_nick_suffix; struct t_config_option *irc_config_color_notice; @@ -135,6 +132,7 @@ struct t_hook *irc_config_hook_config_nick_colors = NULL; char **irc_config_nick_colors = NULL; int irc_config_num_nick_colors = 0; struct t_hashtable *irc_config_hashtable_nick_color_force = NULL; +struct t_hashtable *irc_config_hashtable_nick_prefixes = NULL; int irc_config_write_temp_servers = 0; @@ -586,18 +584,52 @@ irc_config_change_color_item_lag (void *data, } /* - * irc_config_change_color_nick_prefix: called when the color of a nick prefix - * is changed + * irc_config_change_color_nick_prefixes: called when the string with color of + * nick prefixes is changed */ void -irc_config_change_color_nick_prefix (void *data, - struct t_config_option *option) +irc_config_change_color_nick_prefixes (void *data, + struct t_config_option *option) { + char **items, *pos; + int num_items, i; + /* make C compiler happy */ (void) data; (void) option; + if (!irc_config_hashtable_nick_prefixes) + { + irc_config_hashtable_nick_prefixes = weechat_hashtable_new (8, + WEECHAT_HASHTABLE_STRING, + WEECHAT_HASHTABLE_STRING, + NULL, + NULL); + } + else + weechat_hashtable_remove_all (irc_config_hashtable_nick_prefixes); + + items = weechat_string_split (weechat_config_string (irc_config_color_nick_prefixes), + ";", 0, 0, &num_items); + if (items) + { + for (i = 0; i < num_items; i++) + { + pos = strchr (items[i], ':'); + if (pos) + { + pos[0] = '\0'; + weechat_hashtable_set (irc_config_hashtable_nick_prefixes, + items[i], + pos + 1); + } + } + weechat_string_free_split (items); + } + + irc_nick_nicklist_set_prefix_color_all (); + weechat_bar_item_update ("input_prompt"); weechat_bar_item_update ("nicklist"); } @@ -1777,6 +1809,11 @@ irc_config_init () WEECHAT_HASHTABLE_STRING, NULL, NULL); + irc_config_hashtable_nick_prefixes = weechat_hashtable_new (8, + WEECHAT_HASHTABLE_STRING, + WEECHAT_HASHTABLE_STRING, + NULL, + NULL); irc_config_file = weechat_config_new (IRC_CONFIG_NAME, &irc_config_reload, NULL); @@ -2105,30 +2142,17 @@ irc_config_init () N_("color for text in part/quit messages"), NULL, -1, 0, "red", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL); - irc_config_color_nick_prefix_op = weechat_config_new_option ( + irc_config_color_nick_prefixes = weechat_config_new_option ( irc_config_file, ptr_section, - "nick_prefix_op", "color", - N_("color for prefix of nick which is op/admin/owner on channel"), - NULL, -1, 0, "lightgreen", NULL, 0, NULL, NULL, - &irc_config_change_color_nick_prefix, NULL, NULL, NULL); - irc_config_color_nick_prefix_halfop = weechat_config_new_option ( - irc_config_file, ptr_section, - "nick_prefix_halfop", "color", - N_("color for prefix of nick which is halfop on channel"), - NULL, -1, 0, "lightmagenta", NULL, 0, NULL, NULL, - &irc_config_change_color_nick_prefix, NULL, NULL, NULL); - irc_config_color_nick_prefix_voice = weechat_config_new_option ( - irc_config_file, ptr_section, - "nick_prefix_voice", "color", - N_("color for prefix of nick which has voice on channel"), - NULL, -1, 0, "yellow", NULL, 0, NULL, NULL, - &irc_config_change_color_nick_prefix, NULL, NULL, NULL); - irc_config_color_nick_prefix_user = weechat_config_new_option ( - irc_config_file, ptr_section, - "nick_prefix_user", "color", - N_("color for prefix of nick which is user on channel"), - NULL, -1, 0, "blue", NULL, 0, NULL, NULL, - &irc_config_change_color_nick_prefix, NULL, NULL, NULL); + "nick_prefixes", "string", + N_("color for nick prefixes using mode char (o=op, h=halfop, v=voice, " + "..), format is: \"o:color1;h:color2;v:color3\" (if a mode is not " + "found, WeeChat will try with next modes received from server " + "(\"PREFIX\"); a special mode \"*\" can be used as default color " + "if no mode has been found in list)"), + NULL, 0, 0, "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;" + "v:yellow;*:lightblue", NULL, 0, NULL, NULL, + &irc_config_change_color_nick_prefixes, NULL, NULL, NULL); irc_config_color_nick_prefix = weechat_config_new_option ( irc_config_file, ptr_section, "nick_prefix", "color", @@ -2360,6 +2384,8 @@ irc_config_read () if (rc == WEECHAT_CONFIG_READ_OK) { irc_notify_new_for_all_servers (); + irc_config_change_look_nick_color_force (NULL, NULL); + irc_config_change_color_nick_prefixes (NULL, NULL); irc_config_change_network_notify_check_ison (NULL, NULL); irc_config_change_network_notify_check_whois (NULL, NULL); } @@ -2404,4 +2430,10 @@ irc_config_free () weechat_hashtable_free (irc_config_hashtable_nick_color_force); irc_config_hashtable_nick_color_force = NULL; } + + if (irc_config_hashtable_nick_prefixes) + { + weechat_hashtable_free (irc_config_hashtable_nick_prefixes); + irc_config_hashtable_nick_prefixes = NULL; + } } diff --git a/src/plugins/irc/irc-config.h b/src/plugins/irc/irc-config.h index 1f505460e..ae01d5931 100644 --- a/src/plugins/irc/irc-config.h +++ b/src/plugins/irc/irc-config.h @@ -122,10 +122,7 @@ extern struct t_config_option *irc_config_look_topic_strip_colors; extern struct t_config_option *irc_config_color_message_join; extern struct t_config_option *irc_config_color_message_quit; -extern struct t_config_option *irc_config_color_nick_prefix_op; -extern struct t_config_option *irc_config_color_nick_prefix_halfop; -extern struct t_config_option *irc_config_color_nick_prefix_voice; -extern struct t_config_option *irc_config_color_nick_prefix_user; +extern struct t_config_option *irc_config_color_nick_prefixes; extern struct t_config_option *irc_config_color_nick_prefix; extern struct t_config_option *irc_config_color_nick_suffix; extern struct t_config_option *irc_config_color_notice; @@ -154,6 +151,7 @@ extern char **irc_config_nick_colors; extern int irc_config_num_nick_colors; extern struct t_hashtable *irc_config_hashtable_nick_color_force; +extern struct t_hashtable *irc_config_hashtable_nick_prefixes; extern void irc_config_set_nick_colors (); extern void irc_config_server_change_cb (void *data, diff --git a/src/plugins/irc/irc-nick.c b/src/plugins/irc/irc-nick.c index 2dadbc9ae..ead04f71d 100644 --- a/src/plugins/irc/irc-nick.c +++ b/src/plugins/irc/irc-nick.c @@ -384,52 +384,48 @@ irc_nick_get_nicklist_group (struct t_irc_server *server, } /* - * irc_nick_get_prefix_color: get prefix color index for a nick - */ - -int -irc_nick_get_prefix_color (struct t_irc_server *server, - struct t_irc_nick *nick) -{ - int index, prefix_color; - - prefix_color = 0; - index = irc_server_get_prefix_char_index (server, nick->prefix[0]); - if (index >= 0) - { - if (index <= irc_server_get_prefix_mode_index (server, 'o')) - prefix_color = 1; /* color for op (or better than op) */ - else if (index == irc_server_get_prefix_mode_index (server, 'h')) - prefix_color = 2; /* color for halh-op */ - else if (index == irc_server_get_prefix_mode_index (server, 'v')) - prefix_color = 3; /* color for voice */ - else if (index == irc_server_get_prefix_mode_index (server, 'u')) - prefix_color = 4; /* color for chan user */ - } - - return prefix_color; -} - -/* - * irc_nick_get_prefix_color_name: return name of color with a prefix number + * irc_nick_get_prefix_color_name: return name of prefix color for a nick */ const char * -irc_nick_get_prefix_color_name (int prefix_color) +irc_nick_get_prefix_color_name (struct t_irc_server *server, + struct t_irc_nick *nick) { - static char *color_for_prefix[] = { - "chat", - "irc.color.nick_prefix_op", - "irc.color.nick_prefix_halfop", - "irc.color.nick_prefix_voice", - "irc.color.nick_prefix_user", - }; + static char *default_color = "chat"; + const char *prefix_modes, *color; + char mode[2]; + int i, index; - if ((prefix_color >= 0) && (prefix_color <= 4)) - return color_for_prefix[prefix_color]; + if (irc_config_hashtable_nick_prefixes) + { + index = irc_server_get_prefix_char_index (server, nick->prefix[0]); + if (index >= 0) + { + mode[0] = ' '; + mode[1] = '\0'; + prefix_modes = irc_server_get_prefix_modes (server); + for (i = index; prefix_modes[i]; i++) + { + mode[0] = prefix_modes[i]; + color = weechat_hashtable_get (irc_config_hashtable_nick_prefixes, + mode); + if (color) + return color; + } + /* + * no color found with mode (and following modes)? + * => fallback to "*" + */ + mode[0] = '*'; + color = weechat_hashtable_get (irc_config_hashtable_nick_prefixes, + mode); + if (color) + return color; + } + } - /* no color by default (should not happen) */ - return color_for_prefix[0]; + /* no color by default */ + return default_color; } /* @@ -467,16 +463,14 @@ irc_nick_nicklist_add (struct t_irc_server *server, struct t_irc_channel *channel, struct t_irc_nick *nick) { - int prefix_color; struct t_gui_nick_group *ptr_group; ptr_group = irc_nick_get_nicklist_group (server, channel->buffer, nick); - prefix_color = irc_nick_get_prefix_color (server, nick); weechat_nicklist_add_nick (channel->buffer, ptr_group, nick->name, irc_nick_get_color_for_nicklist (server, nick), nick->prefix, - irc_nick_get_prefix_color_name (prefix_color), + irc_nick_get_prefix_color_name (server, nick), 1); } @@ -516,6 +510,35 @@ irc_nick_nicklist_set (struct t_irc_channel *channel, } } +/* + * irc_nick_nicklist_set_prefix_color_all: set nick prefix colors in nicklist + * for all servers/channels + */ + +void +irc_nick_nicklist_set_prefix_color_all () +{ + struct t_irc_server *ptr_server; + struct t_irc_channel *ptr_channel; + struct t_irc_nick *ptr_nick; + + for (ptr_server = irc_servers; ptr_server; + ptr_server = ptr_server->next_server) + { + for (ptr_channel = ptr_server->channels; ptr_channel; + ptr_channel = ptr_channel->next_channel) + { + for (ptr_nick = ptr_channel->nicks; ptr_nick; + ptr_nick = ptr_nick->next_nick) + { + irc_nick_nicklist_set (ptr_channel, ptr_nick, "prefix_color", + irc_nick_get_prefix_color_name (ptr_server, + ptr_nick)); + } + } + } +} + /* * irc_nick_nicklist_set_color_all: set nick colors in nicklist for all * servers/channels @@ -840,19 +863,17 @@ irc_nick_as_prefix (struct t_irc_server *server, struct t_irc_nick *nick, static char result[256]; char prefix[2]; const char *str_prefix_color; - int prefix_color; - + prefix[0] = (nick) ? nick->prefix[0] : '\0'; prefix[1] = '\0'; if (weechat_config_boolean (weechat_config_get ("weechat.look.nickmode"))) { if (nick) { - prefix_color = irc_nick_get_prefix_color (server, nick); if ((prefix[0] == ' ') && !weechat_config_boolean (weechat_config_get ("weechat.look.nickmode_empty"))) prefix[0] = '\0'; - str_prefix_color = weechat_color (weechat_config_string (weechat_config_get (irc_nick_get_prefix_color_name (prefix_color)))); + str_prefix_color = weechat_color (irc_nick_get_prefix_color_name (server, nick)); } else { diff --git a/src/plugins/irc/irc-nick.h b/src/plugins/irc/irc-nick.h index b5da137d1..e40347f23 100644 --- a/src/plugins/irc/irc-nick.h +++ b/src/plugins/irc/irc-nick.h @@ -55,9 +55,9 @@ extern int irc_nick_is_op (struct t_irc_server *server, extern int irc_nick_has_prefix_mode (struct t_irc_server *server, struct t_irc_nick *nick, char prefix_mode); -extern int irc_nick_get_prefix_color (struct t_irc_server *server, - struct t_irc_nick *nick); -extern const char *irc_nick_get_prefix_color_name (int prefix_color); +extern const char *irc_nick_get_prefix_color_name (struct t_irc_server *server, + struct t_irc_nick *nick); +extern void irc_nick_nicklist_set_prefix_color_all (); extern void irc_nick_nicklist_set_color_all (); extern struct t_irc_nick *irc_nick_new (struct t_irc_server *server, struct t_irc_channel *channel, diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index a81854f39..1f070822e 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -3549,7 +3549,7 @@ IRC_PROTOCOL_CALLBACK(366) struct t_config_option *ptr_option; int num_nicks, num_op, num_halfop, num_voice, num_normal, length, i; char *string; - const char *prefix, *nickname; + const char *prefix, *prefix_color, *nickname; /* * 366 message looks like: @@ -3599,12 +3599,21 @@ IRC_PROTOCOL_CALLBACK(366) prefix = weechat_infolist_string (infolist, "prefix"); if (prefix[0] && (prefix[0] != ' ')) { - weechat_config_search_with_string (weechat_infolist_string (infolist, - "prefix_color"), - NULL, NULL, &ptr_option, - NULL); - if (ptr_option) - strcat (string, weechat_color (weechat_config_string (ptr_option))); + prefix_color = weechat_infolist_string (infolist, + "prefix_color"); + if (strchr (prefix_color, '.')) + { + weechat_config_search_with_string (weechat_infolist_string (infolist, + "prefix_color"), + NULL, NULL, &ptr_option, + NULL); + if (ptr_option) + strcat (string, weechat_color (weechat_config_string (ptr_option))); + } + else + { + strcat (string, weechat_color (prefix_color)); + } strcat (string, prefix); } nickname = weechat_infolist_string (infolist, "name");