1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-12 14:14:48 +02:00

api: allow to set nicklist group/nick id in functions nicklist_group_set and nicklist_nick_set (issue #2081)

This commit is contained in:
Sébastien Helleu
2024-04-29 19:31:02 +02:00
parent ded599b272
commit 9cd7fd38a9
7 changed files with 192 additions and 94 deletions
+20 -12
View File
@@ -15959,7 +15959,7 @@ parent = weechat.nicklist_group_get_pointer(buffer, group, "parent")
==== nicklist_group_set
_WeeChat ≥ 0.3.4._
_WeeChat ≥ 0.3.4, updated in 4.3.0._
Set string value of a group property.
@@ -15982,14 +15982,18 @@ Arguments:
Properties:
[width="100%",cols="^2,4,8",options="header"]
[width="100%",cols="^2,^1,4,8",options="header"]
|===
| Name | Value | Description
| Name | Min WeeChat | Value | Description
| color | WeeChat color option name
| id | 4.3.0 | long long integer ≥ 0
| New id for the group (it must be unique in the buffer). +
Note: it is not recommended to change this identifier.
| color | | WeeChat color option name
| See argument "color" of function <<_nicklist_add_group,nicklist_add_group>>.
| visible | "0", "1"
| visible | | "0", "1"
| "0" = hidden group, "1" = visible group.
|===
@@ -16164,7 +16168,7 @@ group = weechat.nicklist_nick_get_pointer(buffer, nick, "group")
==== nicklist_nick_set
_WeeChat ≥ 0.3.4._
_WeeChat ≥ 0.3.4, updated in 4.3.0._
Set string value of a nick property.
@@ -16187,20 +16191,24 @@ Arguments:
Properties:
[width="100%",cols="^2,4,8",options="header"]
[width="100%",cols="^2,^1,4,8",options="header"]
|===
| Name | Value | Description
| Name | Min WeeChat | Value | Description
| color | WeeChat color option name
| id | 4.3.0 | long long integer ≥ 0
| New id for the nick (it must be unique in the buffer). +
Note: it is not recommended to change this identifier.
| color | | WeeChat color option name
| See argument "color" of function <<_nicklist_add_nick,nicklist_add_nick>>.
| prefix | any string
| prefix | | any string
| Prefix of nick.
| prefix_color | WeeChat color option name
| prefix_color | | WeeChat color option name
| See argument "prefix_color" of function <<_nicklist_add_nick,nicklist_add_nick>>.
| visible | "0", "1"
| visible | | "0", "1"
| "0" = hidden nick, "1" = visible nick.
|===
+20 -12
View File
@@ -16302,7 +16302,7 @@ parent = weechat.nicklist_group_get_pointer(buffer, group, "parent")
==== nicklist_group_set
_WeeChat ≥ 0.3.4._
_WeeChat ≥ 0.3.4, mis à jour dans la 4.3.0._
Affecter une valeur à une propriété d'un groupe.
@@ -16325,15 +16325,19 @@ Paramètres :
Propriétés :
[width="100%",cols="^2,4,8",options="header"]
[width="100%",cols="^2,^1,4,8",options="header"]
|===
| Nom | Valeur | Description
| Nom | WeeChat mini | Valeur | Description
| color | nom d'option de couleur WeeChat
| id | 4.3.0 | entier de type "long long" ≥ 0
| Nouvel identifiant pour le groupe (il doit être unique dans le tampon). +
Note : il n'est pas recommandé de changer cet identifiant.
| color | | nom d'option de couleur WeeChat
| Voir le paramètre "color" de la fonction
<<_nicklist_add_group,nicklist_add_group>>.
| visible | "0", "1"
| visible | | "0", "1"
| "0" = groupe caché, "1" = groupe visible.
|===
@@ -16508,7 +16512,7 @@ group = weechat.nicklist_nick_get_pointer(buffer, nick, "group")
==== nicklist_nick_set
_WeeChat ≥ 0.3.4._
_WeeChat ≥ 0.3.4, mis à jour dans la 4.3.0._
Affecter une valeur à une propriété d'un pseudo.
@@ -16531,22 +16535,26 @@ Paramètres :
Propriétés :
[width="100%",cols="^2,4,8",options="header"]
[width="100%",cols="^2,^1,4,8",options="header"]
|===
| Nom | Valeur | Description
| Nom | WeeChat mini | Valeur | Description
| color | nom d'option de couleur WeeChat
| id | 4.3.0 | entier de type "long long" ≥ 0
| Nouvel identifiant pour le pseudo (il doit être unique dans le tampon). +
Note : il n'est pas recommandé de changer cet identifiant.
| color | | nom d'option de couleur WeeChat
| Voir le paramètre "color" de la fonction
<<_nicklist_add_nick,nicklist_add_nick>>.
| prefix | toute chaîne
| prefix | | toute chaîne
| Préfixe du pseudo.
| prefix_color | nom d'option de couleur WeeChat
| prefix_color | | nom d'option de couleur WeeChat
| Voir le paramètre "prefix_color" de la fonction
<<_nicklist_add_nick,nicklist_add_nick>>.
| visible | "0", "1"
| visible | | "0", "1"
| "0" = pseudo caché, "1" = pseudo visible.
|===
+26 -12
View File
@@ -16717,7 +16717,8 @@ parent = weechat.nicklist_group_get_pointer(buffer, group, "parent")
==== nicklist_group_set
_WeeChat ≥ 0.3.4._
// TRANSLATION MISSING
_WeeChat ≥ 0.3.4, updated in 4.3.0._
Imposta il valore stringa della proprietà di un gruppo.
@@ -16743,15 +16744,21 @@ Argomenti:
// TRANSLATION MISSING
Properties:
[width="100%",cols="^2,4,8",options="header"]
[width="100%",cols="^2,^1,4,8",options="header"]
|===
| Nome | Valore | Descrizione
// TRANSLATION MISSING
| Nome | Min WeeChat | Valore | Descrizione
| color | nome per l'opzione del colore per WeeChat
// TRANSLATION MISSING
| id | 4.3.0 | long long integer ≥ 0
| New id for the group (it must be unique in the buffer). +
Note: it is not recommended to change this identifier.
| color | | nome per l'opzione del colore per WeeChat
| Consultare l'argomento "color" della funzione
<<_nicklist_add_group,nicklist_add_group>>.
| visible | "0", "1"
| visible | | "0", "1"
| "0" = gruppo nascosto, "1" = gruppo visibile.
|===
@@ -16927,7 +16934,8 @@ group = weechat.nicklist_nick_get_pointer(buffer, nick, "group")
==== nicklist_nick_set
_WeeChat ≥ 0.3.4._
// TRANSLATION MISSING
_WeeChat ≥ 0.3.4, updated in 4.3.0._
Imposta il valore stringa della proprietà di un nick.
@@ -16953,22 +16961,28 @@ Argomenti:
// TRANSLATION MISSING
Properties:
[width="100%",cols="^2,4,8",options="header"]
[width="100%",cols="^2,^1,4,8",options="header"]
|===
| Nome | Valore | Descrizione
// TRANSLATION MISSING
| Nome | Min WeeChat | Valore | Descrizione
| color | nome per l'opzione del colore di WeeChat
// TRANSLATION MISSING
| id | 4.3.0 | long long integer ≥ 0
| New id for the nick (it must be unique in the buffer). +
Note: it is not recommended to change this identifier.
| color | | nome per l'opzione del colore di WeeChat
| Consultare l'argomento "color" della funzione
<<_nicklist_add_nick,nicklist_add_nick>>.
| prefix | qualsiasi stringa
| prefix | | qualsiasi stringa
| Prefisso del nick.
| prefix_color | nome per l'opzione del colore di WeeChat
| prefix_color | | nome per l'opzione del colore di WeeChat
| Consultare l'argomento "prefix_color" della funzione
<<_nicklist_add_nick,nicklist_add_nick>>.
| visible | "0", "1"
| visible | | "0", "1"
| "0" = nick nascosto, "1" = nick visibile.
|===
+26 -12
View File
@@ -16207,7 +16207,8 @@ parent = weechat.nicklist_group_get_pointer(buffer, group, "parent")
==== nicklist_group_set
_WeeChat バージョン 0.3.4 以上で利用可。_
// TRANSLATION MISSING
_WeeChat ≥ 0.3.4, updated in 4.3.0._
グループプロパティの文字列値。
@@ -16230,15 +16231,21 @@ void weechat_nicklist_group_set (struct t_gui_buffer *buffer,
プロパティ:
[width="100%",cols="^2,4,8",options="header"]
[width="100%",cols="^2,^1,4,8",options="header"]
|===
| 名前 | 値 | 説明
// TRANSLATION MISSING
| 名前 | Min WeeChat | 値 | 説明
| color | WeeChat 色オプション名
// TRANSLATION MISSING
| id | 4.3.0 | long long integer ≥ 0
| New id for the group (it must be unique in the buffer). +
Note: it is not recommended to change this identifier.
| color | | WeeChat 色オプション名
| 関数 <<_nicklist_add_group,nicklist_add_group>>
の引数 "color" を参照
| visible | "0"、"1"
| visible | | "0"、"1"
| "0" = 非表示状態のグループ、"1" = 表示状態のグループ
|===
@@ -16414,7 +16421,8 @@ group = weechat.nicklist_nick_get_pointer(buffer, nick, "group")
==== nicklist_nick_set
_WeeChat バージョン 0.3.4 以上で利用可。_
// TRANSLATION MISSING
_WeeChat ≥ 0.3.4, updated in 4.3.0._
ニックネームプロパティの文字列値を設定。
@@ -16437,22 +16445,28 @@ void weechat_nicklist_nick_set (struct t_gui_buffer *buffer,
プロパティ:
[width="100%",cols="^2,4,8",options="header"]
[width="100%",cols="^2,^1,4,8",options="header"]
|===
| 名前 | 値 | 説明
// TRANSLATION MISSING
| 名前 | Min WeeChat | 値 | 説明
| color | WeeChat 色オプション名
// TRANSLATION MISSING
| id | 4.3.0 | long long integer ≥ 0
| New id for the nick (it must be unique in the buffer). +
Note: it is not recommended to change this identifier.
| color | | WeeChat 色オプション名
| 関数 <<_nicklist_add_nick,nicklist_add_nick>>
の引数 "color" を参照
| prefix | 任意の文字列
| prefix | | 任意の文字列
| 指定したニックネームのプレフィックス
| prefix_color | WeeChat color option name
| prefix_color | | WeeChat color option name
| 関数 <<_nicklist_add_nick,nicklist_add_nick>>
の引数 "prefix_color" を参照
| visible | "0", "1"
| visible | | "0", "1"
| "0" = 非表示状態のニックネーム、"1" = 表示状態のニックネーム
|===
+24 -12
View File
@@ -15546,7 +15546,7 @@ parent = weechat.nicklist_group_get_pointer(buffer, group, "parent")
==== nicklist_group_set
_WeeChat ≥ 0.3.4._
_WeeChat ≥ 0.3.4, ажурирано у верзији 4.3.0._
Поставља стринг вредност особине групе.
@@ -15569,14 +15569,20 @@ void weechat_nicklist_group_set (struct t_gui_buffer *buffer,
Особине:
[width="100%", cols="^2,4,8", options="header"]
[width="100%", cols="^2,^1,4,8", options="header"]
|===
| Име | Вредност | Опис
// TRANSLATION MISSING
| Име | Min WeeChat | Вредност | Опис
| color | Име опције WeeChat боје
// TRANSLATION MISSING
| id | 4.3.0 | long long integer ≥ 0
| New id for the group (it must be unique in the buffer). +
Note: it is not recommended to change this identifier.
| color | | Име опције WeeChat боје
| Погледајте аргумент „color” функције <<_nicklist_add_group,nicklist_add_group>>.
| visible | "0", "1"
| visible | | "0", "1"
| "0" = скривена група, "1" = видљива група.
|===
@@ -15752,7 +15758,7 @@ group = weechat.nicklist_nick_get_pointer(buffer, nick, "group")
==== nicklist_nick_set
_WeeChat ≥ 0.3.4._
_WeeChat ≥ 0.3.4, ажурирано у верзији 4.3.0._
Поставља стринг вредност особине надимка.
@@ -15775,20 +15781,26 @@ void weechat_nicklist_nick_set (struct t_gui_buffer *buffer,
Особине:
[width="100%", cols="^2,4,8", options="header"]
[width="100%", cols="^2,^1,4,8", options="header"]
|===
| Име | Вредност | Опис
// TRANSLATION MISSING
| Име | Min WeeChat | Вредност | Опис
| color | име опције WeeChat боје
// TRANSLATION MISSING
| id | 4.3.0 | long long integer ≥ 0
| New id for the nick (it must be unique in the buffer). +
Note: it is not recommended to change this identifier.
| color | | име опције WeeChat боје
| Погледајте аргумент „color” функције <<_nicklist_add_nick,nicklist_add_nick>>.
| prefix | било који стринг
| prefix | | било који стринг
| Префикс надимка.
| prefix_color | име опције WeeChat боје
| prefix_color | | име опције WeeChat боје
| Погледајте аргумент „prefix_color” функције <<_nicklist_add_nick,nicklist_add_nick>>.
| visible | "0", "1"
| visible | | "0", "1"
| "0" = скривени надимак, "1" = видљиви надимак.
|===
+26 -2
View File
@@ -1037,6 +1037,7 @@ gui_nicklist_group_set (struct t_gui_buffer *buffer,
struct t_gui_nick_group *group,
const char *property, const char *value)
{
long long id;
long number;
char *error;
int group_changed;
@@ -1046,7 +1047,18 @@ gui_nicklist_group_set (struct t_gui_buffer *buffer,
group_changed = 0;
if (strcmp (property, "color") == 0)
if (strcmp (property, "id") == 0)
{
id = strtoll (value, &error, 10);
if (error && !error[0]
&& (id != group->id)
&& !gui_nicklist_search_group_id (buffer, NULL, id))
{
group->id = id;
group_changed = 1;
}
}
else if (strcmp (property, "color") == 0)
{
string_shared_free (group->color);
group->color = (value[0]) ? (char *)string_shared_get (value) : NULL;
@@ -1147,6 +1159,7 @@ gui_nicklist_nick_set (struct t_gui_buffer *buffer,
struct t_gui_nick *nick,
const char *property, const char *value)
{
long long id;
long number;
char *error;
int nick_changed;
@@ -1156,7 +1169,18 @@ gui_nicklist_nick_set (struct t_gui_buffer *buffer,
nick_changed = 0;
if (strcmp (property, "color") == 0)
if (strcmp (property, "id") == 0)
{
id = strtoll (value, &error, 10);
if (error && !error[0]
&& (id != nick->id)
&& !gui_nicklist_search_nick_id (buffer, NULL, id))
{
nick->id = id;
nick_changed = 1;
}
}
else if (strcmp (property, "color") == 0)
{
string_shared_free (nick->color);
nick->color = (value[0]) ? (char *)string_shared_get (value) : NULL;
+50 -32
View File
@@ -704,28 +704,37 @@ TEST(GuiNicklist, GroupGetPointer)
TEST(GuiNicklist, GroupSet)
{
struct t_gui_buffer *buffer;
struct t_gui_nick_group *group;
struct t_gui_nick_group *group1, *group2;
buffer = gui_buffer_new (NULL, TEST_BUFFER_NAME,
NULL, NULL, NULL,
NULL, NULL, NULL);
CHECK(buffer);
group = gui_nicklist_add_group (buffer, NULL, "group", "blue", 1);
CHECK(group);
group1 = gui_nicklist_add_group (buffer, NULL, "group1", "blue", 1);
CHECK(group1);
group2 = gui_nicklist_add_group (buffer, NULL, "group2", "magenta", 1);
CHECK(group2);
gui_nicklist_group_set (NULL, NULL, NULL, NULL);
gui_nicklist_group_set (buffer, NULL, NULL, NULL);
gui_nicklist_group_set (buffer, group, NULL, NULL);
gui_nicklist_group_set (buffer, group, "color", NULL);
gui_nicklist_group_set (buffer, group, "zzz", "test");
gui_nicklist_group_set (buffer, group1, NULL, NULL);
gui_nicklist_group_set (buffer, group1, "color", NULL);
gui_nicklist_group_set (buffer, group1, "zzz", "test");
gui_nicklist_group_set (buffer, group, "color", "green");
STRCMP_EQUAL("green", group->color);
gui_nicklist_group_set (buffer, group, "color", "");
STRCMP_EQUAL(NULL, group->color);
gui_nicklist_group_set (buffer, group, "visible", "0");
LONGS_EQUAL(0, group->visible);
gui_nicklist_group_set (buffer, group1, "id", "123");
CHECK(group1->id == 123);
gui_nicklist_group_set (buffer, group2, "id", "123");
CHECK(group2->id != 123);
gui_nicklist_group_set (buffer, group2, "id", "456");
CHECK(group2->id == 456);
gui_nicklist_group_set (buffer, group1, "color", "green");
STRCMP_EQUAL("green", group1->color);
gui_nicklist_group_set (buffer, group1, "color", "");
STRCMP_EQUAL(NULL, group1->color);
gui_nicklist_group_set (buffer, group1, "visible", "0");
LONGS_EQUAL(0, group1->visible);
gui_buffer_close (buffer);
}
@@ -825,36 +834,45 @@ TEST(GuiNicklist, NickGetPointer)
TEST(GuiNicklist, NickSet)
{
struct t_gui_buffer *buffer;
struct t_gui_nick *nick;
struct t_gui_nick *nick1, *nick2;
buffer = gui_buffer_new (NULL, TEST_BUFFER_NAME,
NULL, NULL, NULL,
NULL, NULL, NULL);
CHECK(buffer);
nick = gui_nicklist_add_nick (buffer, NULL, "nick", "green", "@", "lightgreen", 1);
CHECK(nick);
nick1 = gui_nicklist_add_nick (buffer, NULL, "nick1", "green", "@", "lightgreen", 1);
CHECK(nick1);
nick2 = gui_nicklist_add_nick (buffer, NULL, "nick2", "cyan", "+", "lightcyan", 1);
CHECK(nick2);
gui_nicklist_nick_set (NULL, NULL, NULL, NULL);
gui_nicklist_nick_set (buffer, NULL, NULL, NULL);
gui_nicklist_nick_set (buffer, nick, NULL, NULL);
gui_nicklist_nick_set (buffer, nick, "color", NULL);
gui_nicklist_nick_set (buffer, nick, "zzz", "test");
gui_nicklist_nick_set (buffer, nick1, NULL, NULL);
gui_nicklist_nick_set (buffer, nick1, "color", NULL);
gui_nicklist_nick_set (buffer, nick1, "zzz", "test");
gui_nicklist_nick_set (buffer, nick, "color", "red");
STRCMP_EQUAL("red", nick->color);
gui_nicklist_nick_set (buffer, nick, "color", "");
STRCMP_EQUAL(NULL, nick->color);
gui_nicklist_nick_set (buffer, nick, "prefix", "+");
STRCMP_EQUAL("+", nick->prefix);
gui_nicklist_nick_set (buffer, nick, "prefix", "");
STRCMP_EQUAL(NULL, nick->prefix);
gui_nicklist_nick_set (buffer, nick, "prefix_color", "lightred");
STRCMP_EQUAL("lightred", nick->prefix_color);
gui_nicklist_nick_set (buffer, nick, "prefix_color", "");
STRCMP_EQUAL(NULL, nick->prefix_color);
gui_nicklist_nick_set (buffer, nick, "visible", "0");
LONGS_EQUAL(0, nick->visible);
gui_nicklist_nick_set (buffer, nick1, "id", "123");
CHECK(nick1->id == 123);
gui_nicklist_nick_set (buffer, nick2, "id", "123");
CHECK(nick2->id != 123);
gui_nicklist_nick_set (buffer, nick2, "id", "456");
CHECK(nick2->id == 456);
gui_nicklist_nick_set (buffer, nick1, "color", "red");
STRCMP_EQUAL("red", nick1->color);
gui_nicklist_nick_set (buffer, nick1, "color", "");
STRCMP_EQUAL(NULL, nick1->color);
gui_nicklist_nick_set (buffer, nick1, "prefix", "+");
STRCMP_EQUAL("+", nick1->prefix);
gui_nicklist_nick_set (buffer, nick1, "prefix", "");
STRCMP_EQUAL(NULL, nick1->prefix);
gui_nicklist_nick_set (buffer, nick1, "prefix_color", "lightred");
STRCMP_EQUAL("lightred", nick1->prefix_color);
gui_nicklist_nick_set (buffer, nick1, "prefix_color", "");
STRCMP_EQUAL(NULL, nick1->prefix_color);
gui_nicklist_nick_set (buffer, nick1, "visible", "0");
LONGS_EQUAL(0, nick1->visible);
gui_buffer_close (buffer);
}