From 4194298dbdba9c921835c01013fabb4c0653c482 Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Wed, 23 Apr 2025 11:18:45 +0200 Subject: [PATCH] Less `GString` Signed-off-by: Steffen Jaeckel --- src/ui/window_list.c | 26 ++++++-------------------- src/xmpp/roster_list.c | 7 ++----- 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/src/ui/window_list.c b/src/ui/window_list.c index 7ddf4bf5..5735f019 100644 --- a/src/ui/window_list.c +++ b/src/ui/window_list.c @@ -258,22 +258,20 @@ GList* wins_get_private_chats(const char* const roomjid) { GList* result = NULL; - GString* prefix = g_string_new(roomjid); - g_string_append(prefix, "/"); + auto_gchar gchar* prefix = g_strdup_printf("%s/", roomjid); GList* curr = values; while (curr) { ProfWin* window = curr->data; if (window->type == WIN_PRIVATE) { ProfPrivateWin* privatewin = (ProfPrivateWin*)window; - if (roomjid == NULL || g_str_has_prefix(privatewin->fulljid, prefix->str)) { + if (roomjid == NULL || g_str_has_prefix(privatewin->fulljid, prefix)) { result = g_list_append(result, privatewin); } } curr = g_list_next(curr); } - g_string_free(prefix, TRUE); return result; } @@ -1067,19 +1065,13 @@ wins_create_summary(gboolean unread) while (curr) { ProfWin* window = g_hash_table_lookup(windows, curr->data); if (!unread || (unread && win_unread(window) > 0)) { - GString* line = g_string_new(""); - int ui_index = GPOINTER_TO_INT(curr->data); auto_gchar gchar* winstring = win_to_string(window); if (!winstring) { - g_string_free(line, TRUE); continue; } - - g_string_append_printf(line, "%d: %s", ui_index, winstring); - - result = g_slist_append(result, strdup(line->str)); - g_string_free(line, TRUE); + gchar* line = g_strdup_printf("%d: %s", ui_index, winstring); + result = g_slist_append(result, line); } curr = g_list_next(curr); @@ -1108,19 +1100,13 @@ wins_create_summary_attention() has_attention = mucwin->has_attention; } if (has_attention) { - GString* line = g_string_new(""); - int ui_index = GPOINTER_TO_INT(curr->data); auto_gchar gchar* winstring = win_to_string(window); if (!winstring) { - g_string_free(line, TRUE); continue; } - - g_string_append_printf(line, "%d: %s", ui_index, winstring); - - result = g_slist_append(result, strdup(line->str)); - g_string_free(line, TRUE); + gchar* line = g_strdup_printf("%d: %s", ui_index, winstring); + result = g_slist_append(result, line); } curr = g_list_next(curr); } diff --git a/src/xmpp/roster_list.c b/src/xmpp/roster_list.c index 40b8210d..5a710997 100644 --- a/src/xmpp/roster_list.c +++ b/src/xmpp/roster_list.c @@ -275,11 +275,8 @@ roster_remove(const char* const name, const char* const barejid) if (contact) { GList* resources = p_contact_get_available_resources(contact); while (resources) { - GString* fulljid = g_string_new(barejid); - g_string_append(fulljid, "/"); - g_string_append(fulljid, resources->data); - autocomplete_remove(roster->fulljid_ac, fulljid->str); - g_string_free(fulljid, TRUE); + auto_gchar gchar* fulljid = g_strdup_printf("%s/%s", barejid, resources->data); + autocomplete_remove(roster->fulljid_ac, fulljid); resources = g_list_next(resources); } g_list_free(resources);