summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--ChangeLog4
-rw-r--r--po/cs.po41
-rw-r--r--po/de.po26
-rw-r--r--po/es.po32
-rw-r--r--po/fr.po47
-rw-r--r--po/hu.po22
-rw-r--r--po/it.po32
-rw-r--r--po/ja.po30
-rw-r--r--po/pl.po43
-rw-r--r--po/pt_BR.po40
-rw-r--r--po/ru.po22
-rw-r--r--po/weechat.pot22
-rw-r--r--src/plugins/irc/irc-config.c17
-rw-r--r--src/plugins/irc/irc-config.h7
-rw-r--r--src/plugins/irc/irc-nick.c26
16 files changed, 259 insertions, 153 deletions
diff --git a/AUTHORS b/AUTHORS
index af59dcce3..f39aecc94 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -21,6 +21,7 @@ Alphabetically:
* Ailin Nemui (Nei)
* Aleksey V Zapparov
* Andrew Potter
+* Antoine Pietri (seirl)
* Arvydas Sidorenko
* Benoit Papillault (benoit)
* Dmitry Kobylin
diff --git a/ChangeLog b/ChangeLog
index 6248b1422..20f794b97 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,7 @@
WeeChat ChangeLog
=================
Sébastien Helleu <flashcode@flashtux.org>
-v0.4.2-dev, 2013-05-30
+v0.4.2-dev, 2013-06-02
This document lists all changes for each version.
@@ -21,6 +21,8 @@ Version 0.4.2 (under dev!)
"layout_window"
* core: fix line alignment when option weechat.look.buffer_time_format is set
to empty string
+* irc: add option irc.look.nick_color_hash: hash algorithm to find nick color
+ (patch #8062)
* irc: fix multiple nicks in command /query (separated by commas): open one
buffer per nick
* relay: fix binding to an IP address (bug #39119)
diff --git a/po/cs.po b/po/cs.po
index eb32b94b7..f9239125c 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-05-30 07:59+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -361,17 +361,17 @@ msgid "color"
msgstr "barva"
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
-"jméno WeeChat barvy (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), číslo barvy "
-"terminálu nebo alias; před barvou jsou povoleny atributy (pouze pro barvu "
-"textu, ne pro barvu pozadí): \"*\" pro tučné, \"!\" pro obrácené, \"_\" pro "
-"podtržené"
+"jméno WeeChat barvy (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), "
+"číslo barvy terminálu nebo alias; před barvou jsou povoleny atributy (pouze "
+"pro barvu textu, ne pro barvu pozadí): \"*\" pro tučné, \"!\" pro obrácené, "
+"\"_\" pro podtržené"
#. TRANSLATORS: please do not translate "(null)"
msgid "undefined value allowed (null)"
@@ -2128,10 +2128,11 @@ msgid ""
"scroll_unread [-window <number>] || swap [-window <number>] [up|down|left|"
"right] || zoom[-window <number>]"
msgstr ""
-"list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]"
-"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll|"
-"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|"
-"scroll_next_highlight || swap [up|down|left|right] || zoom"
+"list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize "
+"[+/-]<pct> || balance || merge [all] || page_up|page_down || refresh || "
+"scroll|scroll_up|scroll_down|scroll_top|scroll_bottom|"
+"scroll_previous_highlight|scroll_next_highlight || swap [up|down|left|right] "
+"|| zoom"
#, fuzzy
msgid ""
@@ -2539,8 +2540,8 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
"regulární výraz pro zkontrolování zda má zpráva být zvýrazněna nebo ne, "
"alespoň jedno nalezení v řetězci musí být obklopeno znaky slov "
@@ -5978,6 +5979,12 @@ msgstr ""
"přezdívka2:barva2\")"
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
diff --git a/po/de.po b/po/de.po
index 10677fdba..14b844661 100644
--- a/po/de.po
+++ b/po/de.po
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-05-30 07:59+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <weechatter@arcor.de>\n"
@@ -380,11 +380,11 @@ msgid "color"
msgstr "Farbe"
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
"ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, "
"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine "
@@ -2864,8 +2864,8 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
"Suchmuster (regulärer Ausdruck) welches genutzt werden soll, um zu "
"überprüfen ob eine Nachricht ein Highlight enthält oder nicht. Mindestens "
@@ -5143,8 +5143,8 @@ msgstr ""
"werden)\n"
" - Hostname/Port oder IP/Port (damit wird lediglich ein "
"TEMPORÄRER Server erstellt), Port 6667 wird standardmäßig verwendet\n"
-" - URL mit folgendem Format: irc[6][s]://[nickname[:password]@]"
-"irc.example.org[:port][/#channel1][,#channel2[...]]\n"
+" - URL mit folgendem Format: irc[6][s]://[nickname[:"
+"password]@]irc.example.org[:port][/#channel1][,#channel2[...]]\n"
" option: legt Option für den Server fest (die Boolean-Optionen können "
"weggelassen werden)\n"
" nooption: deaktiviert eine Boolean Option (Beispiel: -nossl)\n"
@@ -6561,6 +6561,12 @@ msgstr ""
"schreiben."
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
diff --git a/po/es.po b/po/es.po
index bd2daa819..4da2d99df 100644
--- a/po/es.po
+++ b/po/es.po
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-05-30 07:59+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -369,17 +369,17 @@ msgid "color"
msgstr "color"
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
-"un nombre de color de WeeChat (default, black, (dark)gray, white, (light)"
-"red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), "
-"un número de color de la terminal o un alias; atributos delante del color "
-"están permitidos (solamente para color de texto , no de fondo): \"*\" para "
-"negrita, \"!\" para revertir, \"_\" para subrayado."
+"un nombre de color de WeeChat (default, black, (dark)gray, white, "
+"(light)red, (light)green, brown, yellow, (light)blue, (light)magenta, "
+"(light)cyan), un número de color de la terminal o un alias; atributos "
+"delante del color están permitidos (solamente para color de texto , no de "
+"fondo): \"*\" para negrita, \"!\" para revertir, \"_\" para subrayado."
#. TRANSLATORS: please do not translate "(null)"
msgid "undefined value allowed (null)"
@@ -2689,8 +2689,8 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
"expresión regular usada para ver si un mensaje tiene un resalte o no, al "
"menos una coincidencia en el texto debe estar rodeado por letras "
@@ -6203,6 +6203,12 @@ msgstr ""
"minúsculas, así que es posible usar minúsculas para apodos con esta opción"
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
diff --git a/po/fr.po b/po/fr.po
index 6ff59c9ba..3a4ebadb5 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-05-30 07:59+0200\n"
-"PO-Revision-Date: 2013-05-29 20:42+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\n"
+"PO-Revision-Date: 2013-06-02 10:52+0200\n"
"Last-Translator: Sebastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n"
@@ -368,11 +368,11 @@ msgid "color"
msgstr "couleur"
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
"un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, "
"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un "
@@ -989,9 +989,9 @@ msgid ""
"|| get <property> || <number>|<name>"
msgstr ""
"list || clear [<nombre>|<nom>|-merged|-all] || move|merge <nombre> || swap "
-"<nombre1>|<nom1> [<nombre2>|<nom2>] || unmerge [<nombre>|-all] || close [<n1>"
-"[-<n2>]|<nom>] || notify <niveau> || localvar || set <propriété> <valeur> || "
-"get <propriété> || <nombre>|<nom>"
+"<nombre1>|<nom1> [<nombre2>|<nom2>] || unmerge [<nombre>|-all] || close "
+"[<n1>[-<n2>]|<nom>] || notify <niveau> || localvar || set <propriété> "
+"<valeur> || get <propriété> || <nombre>|<nom>"
msgid ""
" list: list buffers (without argument, this list is displayed)\n"
@@ -2777,15 +2777,15 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
"expression régulière utilisée pour vérifier si un message a un \"highlight\" "
"ou non, au moins une correspondance dans la chaîne doit être entourée de "
"caractères de mot (alpha-numérique, \"-\", \"_\" ou \"|\"), l'expression "
"régulière est insensible à la casse (utilisez \"(?-i)\" au début pour la "
-"rendre sensible à la casse), exemples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"rendre sensible à la casse), exemples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgid ""
"comma separated list of tags to highlight (case insensitive comparison, "
@@ -2947,8 +2947,8 @@ msgstr ""
"activer le mode du terminal \"bracketed paste\" (pas supporté par tous les "
"terminaux/multiplexeurs): dans ce mode, le texte collé est entouré avec des "
"séquences de contrôle de sorte que WeeChat puisse différencier le texte "
-"collé du texte tapé (\"ESC[200~\", suivi par le texte collé, suivi par \"ESC"
-"[201~\")"
+"collé du texte tapé (\"ESC[200~\", suivi par le texte collé, suivi par "
+"\"ESC[201~\")"
msgid ""
"force end of bracketed paste after this delay (in seconds) if the control "
@@ -5725,9 +5725,9 @@ msgid ""
"<option>[=<value>]] [-no<option>] || copy|rename <server> <new_name> || del|"
"keep <server> || deloutq|jump|raw"
msgstr ""
-"list|listfull [<serveur>] || add <serveur> <nom>[/<port>] [-temp] [-<option>"
-"[=<valeur>]] [-no<option>] || copy|rename <serveur> <nouveau_nom> || del|"
-"keep <serveur> || deloutq|jump|raw"
+"list|listfull [<serveur>] || add <serveur> <nom>[/<port>] [-temp] [-"
+"<option>[=<valeur>]] [-no<option>] || copy|rename <serveur> <nouveau_nom> || "
+"del|keep <serveur> || deloutq|jump|raw"
msgid ""
" list: list servers (without argument, this list is displayed)\n"
@@ -6382,6 +6382,15 @@ msgstr ""
"uniquement des minuscules pour les pseudos dans cette option"
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+"algorithme de hash utilisé pour trouver la couleur du pseudo: djb2 = "
+"variante de djb2 (la position des lettres compte: les anagrammes d'un pseudo "
+"ont une couleur différente), sum = somme des lettres"
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
diff --git a/po/hu.po b/po/hu.po
index 99f8a061a..e468ba940 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-05-30 07:59+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -378,11 +378,11 @@ msgid "color"
msgstr "üzenetek színe"
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
#. TRANSLATORS: please do not translate "(null)"
@@ -2195,8 +2195,8 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
#, fuzzy
@@ -5527,6 +5527,12 @@ msgid ""
msgstr ""
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
diff --git a/po/it.po b/po/it.po
index bd35ea74e..fab3dade4 100644
--- a/po/it.po
+++ b/po/it.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-05-30 07:59+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -363,11 +363,11 @@ msgid "color"
msgstr "colore"
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
"un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, "
"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un "
@@ -2736,15 +2736,15 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
"espressione regolare usata per verificare se un messaggio contiene una "
"notifica oppure no, almeno una corrispondenza nella stringa deve essere "
"racchiusa da caratteri :(alfanumerici, \"-\", \"_\" or \"|\"), l'espressione "
"regolare non è sensibile alle maiuscole (usare \"(?-i)\" all'inizio per "
-"renderla sensibile alle maiuscole), ad esempio: \"flashcode|flashy\", \"(?-i)"
-"Flashcode|flashy\""
+"renderla sensibile alle maiuscole), ad esempio: \"flashcode|flashy\", \"(?-"
+"i)Flashcode|flashy\""
msgid ""
"comma separated list of tags to highlight (case insensitive comparison, "
@@ -5630,9 +5630,9 @@ msgid ""
"<option>[=<value>]] [-no<option>] || copy|rename <server> <new_name> || del|"
"keep <server> || deloutq|jump|raw"
msgstr ""
-"list|listfull [<server>] || add <server> <host>[/<porta>] [-temp] [-<opzione>"
-"[=<valore>]] [-no<option>] || copy|rename <server> <nuovo_nome> || del|keep "
-"<server> || deloutq|jump|raw"
+"list|listfull [<server>] || add <server> <host>[/<porta>] [-temp] [-"
+"<opzione>[=<valore>]] [-no<option>] || copy|rename <server> <nuovo_nome> || "
+"del|keep <server> || deloutq|jump|raw"
msgid ""
" list: list servers (without argument, this list is displayed)\n"
@@ -6256,6 +6256,12 @@ msgid ""
msgstr ""
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
diff --git a/po/ja.po b/po/ja.po
index 9917f5dcc..0b4c119f8 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-05-30 07:59+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/WeeChat>\n"
@@ -363,11 +363,11 @@ msgid "color"
msgstr "色"
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
"WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、"
"brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号ま"
@@ -2702,13 +2702,13 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
"メッセージがハイライトされるかを判断する正規表現、一回以上マッチすればハイラ"
"イトされる (英数字、\"-\"、\"_\"、\"|\")、正規表現は大文字小文字を区別しない "
-"(最初に \"(?-i)\" がある場合は区別する)、例: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"(最初に \"(?-i)\" がある場合は区別する)、例: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgid ""
"comma separated list of tags to highlight (case insensitive comparison, "
@@ -4820,8 +4820,8 @@ msgstr ""
" - 内部サーバ名 (/server add で作成されたもの、利用推奨)\n"
" - ホスト名/ポート番号、又は IP アドレス/ポート番号 (これは一時的"
"サーバを作る)、デフォルトのポート番号は 6667\n"
-" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:password]@]"
-"irc.example.org[:port][/#channel1][,#channel2[...]]\n"
+" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:"
+"password]@]irc.example.org[:port][/#channel1][,#channel2[...]]\n"
" option: サーバに関するオプション (ブール型オプションでは、value は無視さ"
"れる)\n"
" nooption: ブール型オプションを 'off' にする (例: -nossl)\n"
@@ -6165,6 +6165,12 @@ msgstr ""
"事もできます"
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
diff --git a/po/pl.po b/po/pl.po
index 0d325b581..240ff5df0 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-05-30 07:59+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\n"
"PO-Revision-Date: 2013-05-20 16:54+0200\n"
"Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -367,16 +367,16 @@ msgid "color"
msgstr "kolor"
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
-"nazwa koloru WeeChat (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), numer "
-"koloru terminala albo alias; atrybuty dozwolone przed kolorem (tylko dla "
-"kolorów testu, nie tła): \"*\" pogrubienie, \"!\" odwrócenie, \"_\" "
+"nazwa koloru WeeChat (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), "
+"numer koloru terminala albo alias; atrybuty dozwolone przed kolorem (tylko "
+"dla kolorów testu, nie tła): \"*\" pogrubienie, \"!\" odwrócenie, \"_\" "
"podkreślenie"
#. TRANSLATORS: please do not translate "(null)"
@@ -2760,8 +2760,8 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
"wyrażenie regularne używane do sprawdzenia, czy wiadomość posiada "
"podświetlenie czy nie, przynajmniej jeden dopasowany ciąg musi być otoczony "
@@ -3798,9 +3798,10 @@ msgid ""
msgstr ""
"warunek(i) dla wyświetlania paska (dla pasków o typie \"window\"): prosty "
"warunek: \"active\", \"inactive\", \"nicklist\" (okna muszą być aktywne/"
-"nieaktywne, bufor musi posiadać listę nicków), lub wyrażenie z warunkiem"
-"(ami) (zobacz /help eval), jak: \"${nicklist} && ${window.win_width} > "
-"100\" (lokalne zmienne dla wyrażenia to ${active}, ${inactive} i ${nicklist})"
+"nieaktywne, bufor musi posiadać listę nicków), lub wyrażenie z "
+"warunkiem(ami) (zobacz /help eval), jak: \"${nicklist} && ${window."
+"win_width} > 100\" (lokalne zmienne dla wyrażenia to ${active}, ${inactive} "
+"i ${nicklist})"
msgid "bar position (bottom, top, left, right)"
msgstr "pozycja paska (bottom (dół), top (góra), left (lewo), right (prawo))"
@@ -5641,9 +5642,9 @@ msgid ""
"<option>[=<value>]] [-no<option>] || copy|rename <server> <new_name> || del|"
"keep <server> || deloutq|jump|raw"
msgstr ""
-"list|listfull [<serwer>] || add <serwera> <host>[/<port>] [-temp] [-<opcja>"
-"[=<wartość>]] [-no<opcja>]|| copy|rename <serwer> <nowa_nazwa> || del|keep "
-"<serwer>] || deloutq|jump|raw"
+"list|listfull [<serwer>] || add <serwera> <host>[/<port>] [-temp] [-"
+"<opcja>[=<wartość>]] [-no<opcja>]|| copy|rename <serwer> <nowa_nazwa> || del|"
+"keep <serwer>] || deloutq|jump|raw"
msgid ""
" list: list servers (without argument, this list is displayed)\n"
@@ -6289,6 +6290,12 @@ msgstr ""
"możliwe używanie tylko małych liter w tej opcji"
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 8b9b97724..383a03877 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-05-30 07:59+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\n"
"PO-Revision-Date: 2013-05-20 16:55+0200\n"
"Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -392,15 +392,15 @@ msgstr "cor"
# I am not sure this is the best way to translate the names
# (put the equivalent in []), but I think it's better than nothing.
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
-"um nome de cor do WeeChat (default [padrão], black [preto], (dark)gray [cinza"
-"(escuro)], white [branco], (light)red [vermelho(claro)], (light)green [verde"
-"(claro)], brown [marrom], yellow [amarelo], (light)blue [azul(claro)], "
+"um nome de cor do WeeChat (default [padrão], black [preto], (dark)gray "
+"[cinza(escuro)], white [branco], (light)red [vermelho(claro)], (light)green "
+"[verde(claro)], brown [marrom], yellow [amarelo], (light)blue [azul(claro)], "
"(light)magenta [magenta(claro)], (light)cyan [ciano(claro)]), um número de "
"cor do terminal ou um atalho; atributos são permitidos antes do nome da cor "
"(somente para cor de texto, não cor de fundo): \"*\" for negrito, \"!\" for "
@@ -2201,10 +2201,10 @@ msgid ""
"scroll_unread [-window <number>] || swap [-window <number>] [up|down|left|"
"right] || zoom[-window <number>]"
msgstr ""
-"list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize [+/-]"
-"<pct> || balance || merge [all] || page_up|page_down || refresh || scroll "
-"[+/-]<valor>[s|m|h|d|M|y] || scroll_horiz [+/-]<valor>[%] || scroll_up|"
-"scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|"
+"list || -1|+1|b#|up|down|left|right || splith|splitv [<pct>] || resize "
+"[+/-]<pct> || balance || merge [all] || page_up|page_down || refresh || "
+"scroll [+/-]<valor>[s|m|h|d|M|y] || scroll_horiz [+/-]<valor>[%] || "
+"scroll_up|scroll_down|scroll_top|scroll_bottom|scroll_previous_highlight|"
"scroll_next_highlight || swap [up|down|left|right] || zoom"
#, fuzzy
@@ -2615,8 +2615,8 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
"expressão regular usada para verificar se a mensagem tem destaque ou não, "
"pelo menos uma correspondência na string precisa ser envolta por caracteres "
@@ -5718,6 +5718,12 @@ msgstr ""
"apelido2:cor2\")"
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
@@ -7643,8 +7649,8 @@ msgid ""
"connection is made using IPv4, it will be IPv4-mapped IPv6 address (like: "
"\"::ffff:127.0.0.1\"), example: \"^((::ffff:)?123.45.67.89|192.160.*)$\""
msgstr ""
-"expressão regular com IPs permitidos a usar o relay, por exemplo: \"^"
-"(123.45.67.89|192.160.*)$\""
+"expressão regular com IPs permitidos a usar o relay, por exemplo: "
+"\"^(123.45.67.89|192.160.*)$\""
msgid ""
"address for bind (if empty, connection is possible on all interfaces, use "
diff --git a/po/ru.po b/po/ru.po
index 518d28601..9fd1ad816 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2013-05-30 07:59+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\n"
"PO-Revision-Date: 2013-05-20 16:55+0200\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -383,11 +383,11 @@ msgid "color"
msgstr "цвет чата"
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
"название цвета WeeChat (default, black, (dark)gray, white, (light)red, "
"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), код "
@@ -2217,8 +2217,8 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
#, fuzzy
@@ -5549,6 +5549,12 @@ msgid ""
msgstr ""
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
diff --git a/po/weechat.pot b/po/weechat.pot
index 8cb15696f..9ff0ab1f8 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-05-30 07:59+0200\n"
+"POT-Creation-Date: 2013-06-02 10:52+0200\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"
@@ -340,11 +340,11 @@ msgid "color"
msgstr ""
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" for "
-"underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"_\" "
+"for underline"
msgstr ""
#. TRANSLATORS: please do not translate "(null)"
@@ -1962,8 +1962,8 @@ msgid ""
"regular expression used to check if a message has highlight or not, at least "
"one match in string must be surrounded by word chars (alphanumeric, \"-\", "
"\"_\" or \"|\"), regular expression is case insensitive (use \"(?-i)\" at "
-"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-i)"
-"FlashCode|flashy\""
+"beginning to make it case sensitive), examples: \"flashcode|flashy\", \"(?-"
+"i)FlashCode|flashy\""
msgstr ""
msgid ""
@@ -4806,6 +4806,12 @@ msgid ""
msgstr ""
msgid ""
+"hash algorithm used to find the color for a nick: djb2 = variant of djb2 "
+"(position of letters matters: anagrams of a nick have different color), sum "
+"= sum of letters"
+msgstr ""
+
+msgid ""
"chars used to stop in nick when computing color with letters of nick (at "
"least one char outside this list must be in string before stopping) "
"(example: nick \"|nick|away\" with \"|\" in chars will return color of nick "
diff --git a/src/plugins/irc/irc-config.c b/src/plugins/irc/irc-config.c
index cf1c989c5..9deb40763 100644
--- a/src/plugins/irc/irc-config.c
+++ b/src/plugins/irc/irc-config.c
@@ -62,6 +62,7 @@ struct t_config_option *irc_config_look_new_pv_position;
struct t_config_option *irc_config_look_nick_mode;
struct t_config_option *irc_config_look_nick_mode_empty;
struct t_config_option *irc_config_look_nick_color_force;
+struct t_config_option *irc_config_look_nick_color_hash;
struct t_config_option *irc_config_look_nick_color_stop_chars;
struct t_config_option *irc_config_look_nick_completion_smart;
struct t_config_option *irc_config_look_display_away;
@@ -564,12 +565,12 @@ irc_config_change_look_nick_color_force (void *data,
}
/*
- * Callback for changes on option "irc.look.nick_color_stop_chars".
+ * Callback for changes on options that change nick colors.
*/
void
-irc_config_change_look_nick_color_stop_chars (void *data,
- struct t_config_option *option)
+irc_config_change_look_nick_colors (void *data,
+ struct t_config_option *option)
{
/* make C compiler happy */
(void) data;
@@ -2231,6 +2232,14 @@ irc_config_init ()
"case for nicks in this option"),
NULL, 0, 0, "", NULL, 0, NULL, NULL,
&irc_config_change_look_nick_color_force, NULL, NULL, NULL);
+ irc_config_look_nick_color_hash = weechat_config_new_option (
+ irc_config_file, ptr_section,
+ "nick_color_hash", "integer",
+ N_("hash algorithm used to find the color for a nick: djb2 = variant of "
+ "djb2 (position of letters matters: anagrams of a nick have different "
+ "color), sum = sum of letters"),
+ "djb2|sum", 0, 0, "sum", NULL, 0, NULL, NULL,
+ &irc_config_change_look_nick_colors, NULL, NULL, NULL);
irc_config_look_nick_color_stop_chars = weechat_config_new_option (
irc_config_file, ptr_section,
"nick_color_stop_chars", "string",
@@ -2239,7 +2248,7 @@ irc_config_init ()
"stopping) (example: nick \"|nick|away\" with \"|\" in chars will "
"return color of nick \"|nick\")"),
NULL, 0, 0, "_|[", NULL, 0, NULL, NULL,
- &irc_config_change_look_nick_color_stop_chars, NULL, NULL, NULL);
+ &irc_config_change_look_nick_colors, NULL, NULL, NULL);
irc_config_look_nick_completion_smart = weechat_config_new_option (
irc_config_file, ptr_section,
"nick_completion_smart", "integer",
diff --git a/src/plugins/irc/irc-config.h b/src/plugins/irc/irc-config.h
index f4fc847ff..a032eded4 100644
--- a/src/plugins/irc/irc-config.h
+++ b/src/plugins/irc/irc-config.h
@@ -62,6 +62,12 @@ enum t_irc_config_look_notice_as_pv
IRC_CONFIG_LOOK_NOTICE_AS_PV_ALWAYS,
};
+enum t_irc_config_look_nick_color_hash
+{
+ IRC_CONFIG_LOOK_NICK_COLOR_HASH_DJB2 = 0,
+ IRC_CONFIG_LOOK_NICK_COLOR_HASH_SUM,
+};
+
enum t_irc_config_look_nick_mode
{
IRC_CONFIG_LOOK_NICK_MODE_NONE = 0,
@@ -104,6 +110,7 @@ extern struct t_config_option *irc_config_look_new_pv_position;
extern struct t_config_option *irc_config_look_nick_mode;
extern struct t_config_option *irc_config_look_nick_mode_empty;
extern struct t_config_option *irc_config_look_nick_color_force;
+extern struct t_config_option *irc_config_look_nick_color_hash;
extern struct t_config_option *irc_config_look_nick_color_stop_chars;
extern struct t_config_option *irc_config_look_nick_completion_smart;
extern struct t_config_option *irc_config_look_display_away;
diff --git a/src/plugins/irc/irc-nick.c b/src/plugins/irc/irc-nick.c
index ce83bf0cf..3e5139bcc 100644
--- a/src/plugins/irc/irc-nick.c
+++ b/src/plugins/irc/irc-nick.c
@@ -144,7 +144,7 @@ irc_nick_strdup_for_color (const char *nickname)
int
irc_nick_hash_color (const char *nickname)
{
- int color;
+ unsigned long color;
const char *ptr_nick;
if (!irc_config_nick_colors)
@@ -153,12 +153,28 @@ irc_nick_hash_color (const char *nickname)
if (irc_config_num_nick_colors == 0)
return 0;
- color = 0;
ptr_nick = nickname;
- while (ptr_nick && ptr_nick[0])
+
+ switch (weechat_config_integer (irc_config_look_nick_color_hash))
{
- color += weechat_utf8_char_int (ptr_nick);
- ptr_nick = weechat_utf8_next_char (ptr_nick);
+ case IRC_CONFIG_LOOK_NICK_COLOR_HASH_DJB2:
+ /* variant of djb2 hash */
+ color = 5381;
+ while (ptr_nick && ptr_nick[0])
+ {
+ color ^= (color << 5) + (color >> 2) + weechat_utf8_char_int (ptr_nick);
+ ptr_nick = weechat_utf8_next_char (ptr_nick);
+ }
+ break;
+ case IRC_CONFIG_LOOK_NICK_COLOR_HASH_SUM:
+ /* sum of letters */
+ color = 0;
+ while (ptr_nick && ptr_nick[0])
+ {
+ color += weechat_utf8_char_int (ptr_nick);
+ ptr_nick = weechat_utf8_next_char (ptr_nick);
+ }
+ break;
}
return (color % irc_config_num_nick_colors);