--- a/libpurple/purpletags.c Wed Nov 09 23:04:13 2022 -0600
+++ b/libpurple/purpletags.c Wed Nov 09 23:15:35 2022 -0600
@@ -119,6 +119,10 @@
g_return_if_fail(PURPLE_IS_TAGS(tags));
g_return_if_fail(tag != NULL);
+ /* Remove any existing tags with this value. */ + purple_tags_remove(tags, tag); tags->tags = g_list_append(tags->tags, g_strdup(tag));
--- a/libpurple/purpletags.h Wed Nov 09 23:04:13 2022 -0600
+++ b/libpurple/purpletags.h Wed Nov 09 23:15:35 2022 -0600
@@ -95,7 +95,8 @@
+ * Adds @tag to @tags. If the tag already exists, the existing tag will be --- a/libpurple/tests/test_tags.c Wed Nov 09 23:04:13 2022 -0600
+++ b/libpurple/tests/test_tags.c Wed Nov 09 23:15:35 2022 -0600
@@ -86,7 +86,7 @@
g_assert_cmpuint(purple_tags_get_count(tags), ==, 1);
purple_tags_add(tags, "tag1");
- g_assert_cmpuint(purple_tags_get_count(tags), ==, 2);
+ g_assert_cmpuint(purple_tags_get_count(tags), ==, 1); @@ -122,7 +122,7 @@
g_assert_cmpuint(purple_tags_get_count(tags), ==, 1);
purple_tags_add(tags, "tag1:purple");
- g_assert_cmpuint(purple_tags_get_count(tags), ==, 2);
+ g_assert_cmpuint(purple_tags_get_count(tags), ==, 1);