From 5d9af2902450cc8a3e181a515f13e86a26aa591d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Thu, 24 Aug 2023 18:19:32 +0200 Subject: [PATCH] api: add infos "nick_color_ignore_case" and "nick_color_name_ignore_case" (issue #194) --- ChangeLog.adoc | 1 + ReleaseNotes.adoc | 10 +- po/cs.po | 33 +++- po/de.po | 180 ++++++++------------- po/es.po | 33 +++- po/fr.po | 48 ++++-- po/hu.po | 29 +++- po/it.po | 33 +++- po/ja.po | 33 +++- po/pl.po | 40 ++++- po/pt.po | 33 +++- po/pt_BR.po | 33 +++- po/ru.po | 29 +++- po/sr.po | 40 ++++- po/tr.po | 40 ++++- po/weechat.pot | 26 ++- src/core/wee-string.c | 64 ++++++++ src/core/wee-string.h | 2 + src/gui/gui-nick.c | 36 ++++- src/gui/gui-nick.h | 4 +- src/plugins/irc/irc-info.c | 10 +- src/plugins/irc/irc-nick.c | 38 +++-- src/plugins/irc/irc-server.c | 66 -------- src/plugins/irc/irc-server.h | 5 +- src/plugins/plugin-api-info.c | 100 ++++++++++++ tests/unit/core/test-core-string.cpp | 40 +++++ tests/unit/gui/test-gui-nick.cpp | 40 +++-- tests/unit/plugins/irc/test-irc-nick.cpp | 52 +++--- tests/unit/plugins/irc/test-irc-server.cpp | 58 ------- 29 files changed, 772 insertions(+), 384 deletions(-) diff --git a/ChangeLog.adoc b/ChangeLog.adoc index f996c3feb..2fe4e08ce 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -19,6 +19,7 @@ New features:: * core: add options weechat.buffer.* to save buffer properties set by user, add option `setauto` in command `/buffer` (issue #352) * core: add parameters and key bindings to move to edges of current area with commands `/cursor go` and `/cursor move` (issue #1282) * core: add variables "_chat_focused_line_bol" and "_chat_focused_line_eol" in focus data (issue #1955) + * api: add infos "nick_color_ignore_case" and "nick_color_name_ignore_case" (issue #194) * api: add info "buffer" (issue #1962) * buflist: increase max number of buflist items from 3 to 5 (issue #1703) * fset: add variable `allowed_values` in options, add options fset.color.allowed_values and fset.color.allowed_values_selected diff --git a/ReleaseNotes.adoc b/ReleaseNotes.adoc index c646e66d3..136c0e2e4 100644 --- a/ReleaseNotes.adoc +++ b/ReleaseNotes.adoc @@ -59,8 +59,14 @@ back with the two following commands: They will then be advertised in reply to "CTCP CLIENTINFO", which is now built dynamically with these options. -[[v4.1.0_info_irc_nick_color]] -=== Infos irc_nick_color and irc_nick_color_name +[[v4.1.0_nick_color_infos]] +=== Nick color infos + +Two infos to get nick colors have been added: nick_color_ignore_case and +nick_color_name_ignore_case. + +They are similar to nick_color and nick_color_name, except they take as second +argument a range of chars to apply on the nick: the nick is converted to lower +case using this range of chars. The infos irc_nick_color and irc_nick_color_name, that were deprecated since version 1.5 are now used again, with a change in parameter: the server is now diff --git a/po/cs.po b/po/cs.po index b17b07ef6..7f5f7b19d 100644 --- a/po/cs.po +++ b/po/cs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-08-24 11:29+0200\n" +"POT-Creation-Date: 2023-08-24 18:16+0200\n" "PO-Revision-Date: 2023-06-26 21:34+0200\n" "Last-Translator: Ondřej Súkup \n" "Language-Team: weechat-dev \n" @@ -9712,13 +9712,15 @@ msgid "IRC host (like `:nick!name@server.com`)" msgstr "IRC host (jako `:nick!name@server.com`)" msgid "" -"get nick color code (nick is first converted to lower case, following the " -"value of CASEMAPPING on the server, defaulting to \"rfc1459\" if the server " -"is not given)" +"get nick color code, ignoring case (this calls the info " +"\"nick_color_ignore_case\" with appropriate range, according to the value of " +"CASEMAPPING on the server, defaulting to \"rfc1459\" if the server is not " +"given)" msgstr "" msgid "" -"get nick color name (nick is first converted to lower case, following the " +"get nick color name, ignoring case (this calls the info " +"\"nick_color_name_ignore_case\" with appropriate range, according to the " "value of CASEMAPPING on the server, defaulting to \"rfc1459\" if the server " "is not given)" msgstr "" @@ -11380,6 +11382,27 @@ msgstr "" msgid "get nick color name" msgstr "získat jméno barvy přezdívky" +#, fuzzy +#| msgid "get nick color code" +msgid "get nick color code, ignoring case" +msgstr "získat kód barvy přezdívky" + +#, fuzzy +msgid "" +"nickname;range;colors (range is a number of chars (see function " +"strcasecmp_range, 0 = convert to lower case without using a range), colors " +"is an optional comma-separated list of colors to use; background is allowed " +"for a color with format text:background; if colors is present, WeeChat " +"options with nick colors and forced nick colors are ignored)" +msgstr "" +"barva textu pro přezdívky (čárkou oddělený seznam barev, pozadí je povoleno " +"ve formátu: \"fg:bg\", například: \"lightred:blue\")" + +#, fuzzy +#| msgid "get nick color name" +msgid "get nick color name, ignoring case" +msgstr "získat jméno barvy přezdívky" + msgid "WeeChat uptime (format: \"days:hh:mm:ss\")" msgstr "WeeChat uptime (formát: \"dny:hh:mm:ss\")" diff --git a/po/de.po b/po/de.po index 6d5a83a9f..80b208c2a 100644 --- a/po/de.po +++ b/po/de.po @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2023-08-24 11:29+0200\n" +"POT-Creation-Date: 2023-08-24 18:16+0200\n" "PO-Revision-Date: 2023-08-24 13:36+0200\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -412,7 +412,6 @@ msgid "No local variable defined for buffer \"%s\"" msgstr "Keine lokale Variable für Buffer \"%s\" definiert" #, c-format -#| msgid "%sUnable to set option \"%s\" for proxy \"%s\"" msgid "%sUnable to create option for buffer property \"%s\"" msgstr "%sOption für Buffereigenschaft „%s“ konnte nicht erstellt werden" @@ -1254,17 +1253,6 @@ msgstr "" msgid "manage buffers" msgstr "Buffer verwalten" -#| msgid "" -#| "list || add [-free] [-switch] || clear [||-merged|-" -#| "all [|...]] || move |-|+ || swap | " -#| "[|] || cycle | [|...] || " -#| "merge | || unmerge [|-all] || hide [|" -#| "|-all [|...]] || unhide [||-all " -#| "[|...]] || switch [-previous] || zoom || renumber " -#| "[ [ []]] || close [[-]|...] || " -#| "notify [] || listvar [|] || setvar [] " -#| "|| delvar || set [] || get || jump " -#| "smart|last_displayed|prev_visited|next_visited || |-|+|" msgid "" "list || add [-free] [-switch] || clear [||-merged|-all " "[|...]] || move |-|+ || swap | " @@ -1288,83 +1276,6 @@ msgstr "" "[] || setauto [] || get || jump smart|" "last_displayed|prev_visited|next_visited || |-|+|" -#| msgid "" -#| " list: list buffers (without argument, this list is displayed)\n" -#| " add: add a new buffer (it can be closed with \"/buffer close\" or " -#| "input \"q\")\n" -#| " clear: clear buffer content (number for a buffer, -merged for merged " -#| "buffers, -all for all buffers, or nothing for current buffer)\n" -#| " move: move buffer in the list (may be relative, for example -1); \"-" -#| "\" = move to first buffer number, \"+\" = move to last buffer number + 1\n" -#| " swap: swap two buffers (swap with current buffer if only one number/" -#| "name given)\n" -#| " cycle: jump loop between a list of buffers\n" -#| " merge: merge current buffer to another buffer (chat area will be mix " -#| "of both buffers)\n" -#| " (by default ctrl-x switches between merged buffers)\n" -#| " unmerge: unmerge buffer from other buffers which have same number\n" -#| " hide: hide the buffer\n" -#| " unhide: unhide the buffer\n" -#| " switch: switch to next merged buffer (or to previous buffer with \"-" -#| "previous\")\n" -#| " zoom: zoom on merged buffer\n" -#| "renumber: renumber buffers (works only if option weechat.look." -#| "buffer_auto_renumber is off)\n" -#| " close: close buffer (number/range or name is optional)\n" -#| " notify: display or set notify level for current buffer: this level " -#| "determines whether buffer will be added to hotlist or not:\n" -#| " none: never\n" -#| " highlight: for highlights only\n" -#| " message: for messages from users + highlights\n" -#| " all: all messages\n" -#| " reset: reset to default value (all)\n" -#| " listvar: display local variables in a buffer\n" -#| " setvar: set a local variable in the current buffer\n" -#| " delvar: delete a local variable from the current buffer\n" -#| " set: set a property in the current buffer\n" -#| " get: display a property of current buffer\n" -#| " jump: jump to another buffer:\n" -#| " smart: next buffer with activity\n" -#| " last_displayed: last buffer displayed (before last jump to a " -#| "buffer)\n" -#| " prev_visited: previously visited buffer\n" -#| " next_visited: jump to next visited buffer\n" -#| " number: jump to buffer by number, possible prefix:\n" -#| " '+': relative jump, add number to current\n" -#| " '-': relative jump, sub number to current\n" -#| " '*': jump to number, using option \"weechat.look." -#| "jump_current_to_previous_buffer\"\n" -#| " -: jump to first buffer number\n" -#| " +: jump to last buffer number\n" -#| " name: jump to buffer by (partial) name\n" -#| "\n" -#| "Examples:\n" -#| " clear current buffer:\n" -#| " /buffer clear\n" -#| " move buffer to number 5:\n" -#| " /buffer move 5\n" -#| " swap buffer 1 with 3:\n" -#| " /buffer swap 1 3\n" -#| " swap buffer #weechat with current buffer:\n" -#| " /buffer swap #weechat\n" -#| " jump on #chan1, #chan2, #chan3 and loop:\n" -#| " /buffer cycle #chan1 #chan2 #chan3\n" -#| " merge with core buffer:\n" -#| " /buffer merge 1\n" -#| " merge with #weechat buffer:\n" -#| " /buffer merge #weechat\n" -#| " unmerge buffer:\n" -#| " /buffer unmerge\n" -#| " close current buffer:\n" -#| " /buffer close\n" -#| " close buffers 5 to 7:\n" -#| " /buffer close 5-7\n" -#| " jump to #weechat:\n" -#| " /buffer #weechat\n" -#| " jump to next buffer:\n" -#| " /buffer +1\n" -#| " jump to last buffer number:\n" -#| " /buffer +" msgid "" " list: list buffers (without argument, this list is displayed)\n" " add: add a new buffer (it can be closed with \"/buffer close\" or input " @@ -1489,9 +1400,10 @@ msgstr "" " setvar: legt eine lokale Variable für den aktuellen Buffer an\n" " delvar: löscht eine lokale Variable des aktuellen Buffers\n" " set: setzt eine Eigenschaft für den aktuellen Buffer\n" -" setauto: wie „set“ und definiert zusätzlich die Option „weechat.buffer..“, damit die entsprechende Eigenschaft in der Konfiguration" -" gespeichert und Anwendung findet, sobald dieser Buffer geöffnet wird\n" +" setauto: wie „set“ und definiert zusätzlich die Option „weechat.buffer." +".“, damit die entsprechende Eigenschaft in der " +"Konfiguration gespeichert und Anwendung findet, sobald dieser Buffer " +"geöffnet wird\n" " get: zeigt eine Eigenschaft für den aktuellen Buffer an\n" " jump: springt zu einem anderen Buffer:\n" " smart: nächster Buffer mit Aktivität\n" @@ -3977,7 +3889,6 @@ msgstr "Wert einer lokalen Buffervariablen" msgid "properties that can be set on a buffer" msgstr "Eigenschaften die für den Buffer gesetzt werden können" -#| msgid "properties that can be set on a buffer" msgid "properties that can be automatically set on a buffer" msgstr "Eigenschaften die für den Buffer automatisch gesetzt werden können" @@ -4170,13 +4081,11 @@ msgid "" "set property \"%s\" on any buffer matching mask \"%s\"; content is " "evaluated, see /help eval; ${buffer} is a pointer to the buffer being opened" msgstr "" -"Eigenschaft „%s“ bei jedem Buffer setzen, der mit der Maske „%s“" -" übereinstimmt; Inhalt ist" -"evaluiert, siehe /help eval; ${buffer} ist ein Zeiger auf den Buffer, der" -" geöffnet wird" +"Eigenschaft „%s“ bei jedem Buffer setzen, der mit der Maske „%s“ " +"übereinstimmt; Inhalt istevaluiert, siehe /help eval; ${buffer} ist ein " +"Zeiger auf den Buffer, der geöffnet wird" #, c-format -#| msgid "Options saved to %s" msgid "Option \"weechat.buffer.%s\" has been set to \"%s\"" msgstr "Option \"weechat.buffer.%s\" wurde auf \"%s\" gesetzt" @@ -12174,27 +12083,37 @@ msgstr "Nicknamen des IRC-Hosts erhalten" msgid "IRC host (like `:nick!name@server.com`)" msgstr "IRC host (in der Form `:nick!name@server.com`)" +#, fuzzy +#| msgid "" +#| "get nick color code (nick is first converted to lower case, following the " +#| "value of CASEMAPPING on the server, defaulting to \"rfc1459\" if the " +#| "server is not given)" msgid "" -"get nick color code (nick is first converted to lower case, following the " -"value of CASEMAPPING on the server, defaulting to \"rfc1459\" if the server " -"is not given)" +"get nick color code, ignoring case (this calls the info " +"\"nick_color_ignore_case\" with appropriate range, according to the value of " +"CASEMAPPING on the server, defaulting to \"rfc1459\" if the server is not " +"given)" msgstr "" -"Hole den Farbcode des Nicks (der Nick wird zuerst in Kleinbuchstaben" -" umgewandelt, dabei wird" -"der Wert des CASEMAPPING auf dem Server berücksichtigt, standardmäßig wird" -" auf „rfc1459“ zurückgegriffen, wenn der Server" -"nicht angegeben wurde)" +"Hole den Farbcode des Nicks (der Nick wird zuerst in Kleinbuchstaben " +"umgewandelt, dabei wirdder Wert des CASEMAPPING auf dem Server " +"berücksichtigt, standardmäßig wird auf „rfc1459“ zurückgegriffen, wenn der " +"Servernicht angegeben wurde)" +#, fuzzy +#| msgid "" +#| "get nick color name (nick is first converted to lower case, following the " +#| "value of CASEMAPPING on the server, defaulting to \"rfc1459\" if the " +#| "server is not given)" msgid "" -"get nick color name (nick is first converted to lower case, following the " +"get nick color name, ignoring case (this calls the info " +"\"nick_color_name_ignore_case\" with appropriate range, according to the " "value of CASEMAPPING on the server, defaulting to \"rfc1459\" if the server " "is not given)" msgstr "" -"Hole den Farbnamen des Nicks (der Nick wird zuerst in Kleinbuchstaben" -" konvertiert, dabei wird" -"der Wert des CASEMAPPING auf dem Server berücksichtigt, standardmäßig wird" -" auf „rfc1459“ zurückgegriffen, wenn der Server" -"nicht angegeben wurde)" +"Hole den Farbnamen des Nicks (der Nick wird zuerst in Kleinbuchstaben " +"konvertiert, dabei wirdder Wert des CASEMAPPING auf dem Server " +"berücksichtigt, standardmäßig wird auf „rfc1459“ zurückgegriffen, wenn der " +"Servernicht angegeben wurde)" msgid "get buffer pointer for an IRC server/channel/nick" msgstr "holt Buffer Pointer für einen IRC Server/Kanal/Nick" @@ -13908,6 +13827,35 @@ msgstr "" msgid "get nick color name" msgstr "zeigt Farbnamen des Nick" +#, fuzzy +#| msgid "get nick color code" +msgid "get nick color code, ignoring case" +msgstr "zeigt Farbecode des Nick" + +#, fuzzy +#| msgid "" +#| "nickname;colors (colors is an optional comma-separated list of colors to " +#| "use; background is allowed for a color with format text:background; if " +#| "colors is present, WeeChat options with nick colors and forced nick " +#| "colors are ignored)" +msgid "" +"nickname;range;colors (range is a number of chars (see function " +"strcasecmp_range, 0 = convert to lower case without using a range), colors " +"is an optional comma-separated list of colors to use; background is allowed " +"for a color with format text:background; if colors is present, WeeChat " +"options with nick colors and forced nick colors are ignored)" +msgstr "" +"Nickname;Farben (Farben ist eine optionale Kommata getrennte Liste von " +"Farben die genutzt werden sollen; wenn eine Hintergrundfarbe genutzt werden " +"muss das Format wie folgt aussehen Text:Hintergrund; sind die Farben schon " +"vorhanden, werden die WeeChat Optionen für Nickfarben und erzwungene " +"Nickfarben ignoriert)" + +#, fuzzy +#| msgid "get nick color name" +msgid "get nick color name, ignoring case" +msgstr "zeigt Farbnamen des Nick" + msgid "WeeChat uptime (format: \"days:hh:mm:ss\")" msgstr "Laufzeit von WeeChat (Format: \"days:hh:mm:ss\")" @@ -16378,8 +16326,7 @@ msgstr "verwaltet Trigger, das Schweizer Armeemesser für WeeChat" msgid "" "list [-o|-ol|-i|-il] || listfull || listdefault || add|addoff|addreplace " " " -"[\"\" [\"\" [\"\" [\"\" [\"<" -"return_code>\" [\"\"]]]]]] " +"[\"\" [\"\" [\"\" [\"\" [\"\" [\"\"]]]]]] " "|| addinput [] || input|output|recreate || set