Mercurial > pidgin
changeset 22486:3225c99785b8
Fix a bunch of compiler warnings caused by my addition of G_GNUC_PRINTF()
to our debug functions (I really thought we had added that in a while ago?)
I didn't fix all of them... just most of them.
Oh, see these pages for a little info:
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Macros.html#G-GNUC-PRINTF:CAPS
line wrap: on
line diff
--- a/libpurple/certificate.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/certificate.c Sun Mar 16 20:36:52 2008 +0000 @@ -695,7 +695,7 @@ for (iter = x509_ca_paths; iter; iter = iter->next) { certdir = g_dir_open(iter->data, 0, NULL); if (!certdir) { - purple_debug_error("certificate/x509/ca", "Couldn't open location '%s'\n", iter->data); + purple_debug_error("certificate/x509/ca", "Couldn't open location '%s'\n", (const char *)iter->data); continue; }
--- a/libpurple/dnsquery.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/dnsquery.c Sun Mar 16 20:36:52 2008 +0000 @@ -450,7 +450,7 @@ /* Send the data structure to the child */ rc = write(resolver->fd_in, &dns_params, sizeof(dns_params)); if (rc < 0) { - purple_debug_error("dns", "Unable to write to DNS child %d: %d\n", + purple_debug_error("dns", "Unable to write to DNS child %d: %s\n", resolver->dns_pid, g_strerror(errno)); purple_dnsquery_resolver_destroy(resolver); return FALSE;
--- a/libpurple/protocols/bonjour/bonjour_ft.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/bonjour/bonjour_ft.c Sun Mar 16 20:36:52 2008 +0000 @@ -489,7 +489,7 @@ else purple_xfer_cancel_remote(xfer); } else - purple_debug_info("bonjour", "si offer Message type - Unknown-%d.\n", type); + purple_debug_info("bonjour", "si offer Message type - Unknown-%s.\n", type); } }
--- a/libpurple/protocols/bonjour/jabber.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/bonjour/jabber.c Sun Mar 16 20:36:52 2008 +0000 @@ -1149,7 +1149,7 @@ for(l = acc->deny; l != NULL; l = l->next) { if(!purple_utf8_strcasecmp(pb->name, (char *)l->data)) { - purple_debug_info("bonjour", "%s has been blocked.\n", pb->name, acc->username); + purple_debug_info("bonjour", "%s has been blocked by %s.\n", pb->name, acc->username); blocked = TRUE; break; }
--- a/libpurple/protocols/gg/gg.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/gg/gg.c Sun Mar 16 20:36:52 2008 +0000 @@ -390,7 +390,7 @@ goto exit_err; } - purple_debug_info("gg", "register_account_ok: token_id = %d; t = %s\n", + purple_debug_info("gg", "register_account_ok: token_id = %s; t = %s\n", token->id, t); h = gg_register3(email, p1, token->id, t, 0); if (h == NULL || !(s = h->data) || !s->success) { @@ -1324,7 +1324,7 @@ break; case GG_EVENT_ACK: purple_debug_info("gg", - "message sent to: %ld, delivery status=%d, seq=%d\n", + "message sent to: %u, delivery status=%d, seq=%d\n", ev->event.ack.recipient, ev->event.ack.status, ev->event.ack.seq); break;
--- a/libpurple/protocols/jabber/auth.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/jabber/auth.c Sun Mar 16 20:36:52 2008 +0000 @@ -903,8 +903,8 @@ } dec_in = (char *)purple_base64_decode(enc_in, NULL); - purple_debug(PURPLE_DEBUG_MISC, "jabber", "decoded challenge (%d): %s\n", - strlen(dec_in), dec_in); + purple_debug(PURPLE_DEBUG_MISC, "jabber", "decoded challenge (%" + G_GSIZE_FORMAT "): %s\n", strlen(dec_in), dec_in); parts = parse_challenge(dec_in); @@ -982,7 +982,9 @@ enc_out = purple_base64_encode((guchar *)response->str, response->len); - purple_debug(PURPLE_DEBUG_MISC, "jabber", "decoded response (%d): %s\n", response->len, response->str); + purple_debug_misc("jabber", "decoded response (%" + G_GSIZE_FORMAT "): %s\n", + response->len, response->str); buf = g_strdup_printf("<response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>%s</response>", enc_out);
--- a/libpurple/protocols/jabber/buddy.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/jabber/buddy.c Sun Mar 16 20:36:52 2008 +0000 @@ -2283,7 +2283,7 @@ row = g_list_append(row, node ? xmlnode_get_data(node) : NULL); node = xmlnode_get_child(item, "email"); row = g_list_append(row, node ? xmlnode_get_data(node) : NULL); - purple_debug_info("jabber", "row=%d\n", row); + purple_debug_info("jabber", "row=%p\n", row); purple_notify_searchresults_row_add(results, row); } }
--- a/libpurple/protocols/jabber/presence.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/jabber/presence.c Sun Mar 16 20:36:52 2008 +0000 @@ -683,7 +683,7 @@ jid->node ? "@" : "", jid->domain); if((b = purple_find_buddy(js->gc->account, buddy_name)) == NULL) { if(!jid->node || strcmp(jid->node,js->user->node) || strcmp(jid->domain,js->user->domain)) { - purple_debug_warning("jabber", "Got presence for unknown buddy %s on account %s (%x)\n", + purple_debug_warning("jabber", "Got presence for unknown buddy %s on account %s (%p)\n", buddy_name, purple_account_get_username(js->gc->account), js->gc->account); jabber_id_free(jid); g_free(avatar_hash);
--- a/libpurple/protocols/msn/directconn.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/msn/directconn.c Sun Mar 16 20:36:52 2008 +0000 @@ -300,7 +300,7 @@ body_len = GUINT32_FROM_LE(body_len); - purple_debug_info("msn", "body_len=%d\n", body_len); + purple_debug_info("msn", "body_len=%" G_GSIZE_FORMAT "\n", body_len); if (body_len <= 0) { @@ -324,7 +324,7 @@ /* Let's read the data. */ len = read(directconn->fd, body, body_len); - purple_debug_info("msn", "len=%d\n", len); + purple_debug_info("msn", "len=%" G_GSIZE_FORMAT "\n", len); } else {
--- a/libpurple/protocols/msnp9/directconn.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/msnp9/directconn.c Sun Mar 16 20:36:52 2008 +0000 @@ -297,7 +297,7 @@ body_len = GUINT32_FROM_LE(body_len); - purple_debug_info("msn", "body_len=%d\n", body_len); + purple_debug_info("msn", "body_len=%" G_GSIZE_FORMAT "\n", body_len); if (body_len <= 0) { @@ -316,7 +316,7 @@ /* Let's read the data. */ len = read(directconn->fd, body, body_len); - purple_debug_info("msn", "len=%d\n", len); + purple_debug_info("msn", "len=%" G_GSIZE_FORMAT "\n", len); } else {
--- a/libpurple/protocols/msnp9/msn.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/msnp9/msn.c Sun Mar 16 20:36:52 2008 +0000 @@ -1953,7 +1953,8 @@ else { char buf[1024]; - purple_debug_info("msn", "%s is %d bytes\n", photo_url_text, len); + purple_debug_info("msn", "%s is %" G_GSIZE_FORMAT + " bytes\n", photo_url_text, len); id = purple_imgstore_add_with_id(g_memdup(url_text, len), len, NULL); g_snprintf(buf, sizeof(buf), "<img id=\"%d\"><br>", id); purple_notify_user_info_prepend_pair(user_info, NULL, buf);
--- a/libpurple/protocols/msnp9/switchboard.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/msnp9/switchboard.c Sun Mar 16 20:36:52 2008 +0000 @@ -1171,7 +1171,7 @@ swboard = trans->data; - purple_debug_info("msn", "xfr_error %i for %s: trans %x, command %s, reason %i\n", + purple_debug_info("msn", "xfr_error %i for %s: trans %p, command %s, reason %i\n", error, (swboard->im_user ? swboard->im_user : "(null)"), trans, (trans->command ? trans->command : "(null)"), reason);
--- a/libpurple/protocols/myspace/myspace.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/myspace/myspace.c Sun Mar 16 20:36:52 2008 +0000 @@ -344,10 +344,12 @@ purple_connection_update_progress(session->gc, _("Reading challenge"), 1, 4); - purple_debug_info("msim", "nc is %d bytes, decoded\n", nc_len); + purple_debug_info("msim", "nc is %" G_GSIZE_FORMAT + " bytes, decoded\n", nc_len); if (nc_len != MSIM_AUTH_CHALLENGE_LENGTH) { - purple_debug_info("msim", "bad nc length: %x != 0x%x\n", nc_len, MSIM_AUTH_CHALLENGE_LENGTH); + purple_debug_info("msim", "bad nc length: %" G_GSIZE_MODIFIER + "x != 0x%x\n", nc_len, MSIM_AUTH_CHALLENGE_LENGTH); purple_connection_error_reason (session->gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, _("Unexpected challenge length from server")); @@ -493,8 +495,8 @@ if (data_out_len != data_len) { purple_debug_info("msim", "msim_compute_login_response: " - "data length mismatch: %d != %d\n", - data_out_len, data_len); + "data length mismatch: %" G_GSIZE_FORMAT " != %" + G_GSIZE_FORMAT "\n", data_out_len, data_len); } #ifdef MSIM_DEBUG_LOGIN_CHALLENGE @@ -764,7 +766,7 @@ username = msim_msg_get_string(msg, "_username"); g_return_val_if_fail(username != NULL, FALSE); - purple_debug_info("msim", "msim_incoming_action: action <%s> from <%d>\n", + purple_debug_info("msim", "msim_incoming_action: action <%s> from <%s>\n", msg_text, username); if (g_str_equal(msg_text, "%typing%")) { @@ -2796,7 +2798,7 @@ guint uid; contact_info = (MsimMessage *)data; - purple_debug_info("msim_add_contact_from_server_cb", "contact_info addr=%X\n", contact_info); + purple_debug_info("msim_add_contact_from_server_cb", "contact_info addr=%p\n", contact_info); uid = msim_msg_get_integer(contact_info, "ContactID"); if (!user_lookup_info) { @@ -2879,7 +2881,7 @@ uid_str = g_strdup_printf("%d", uid); purple_debug_info("msim_add_contact_from_server", - "contact_info addr=%X\n", contact_info); + "contact_info addr=%p\n", contact_info); msim_lookup_user(session, uid_str, msim_add_contact_from_server_cb, (gpointer)msim_msg_clone(contact_info)); g_free(uid_str); } else {
--- a/libpurple/protocols/myspace/user.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/myspace/user.c Sun Mar 16 20:36:52 2008 +0000 @@ -543,7 +543,7 @@ user = (MsimUser *)user_data; purple_debug_info("msim_downloaded_buddy_icon", - "Downloaded %d bytes\n", len); + "Downloaded %" G_GSIZE_FORMAT " bytes\n", len); if (!url_text) { purple_debug_info("msim_downloaded_buddy_icon",
--- a/libpurple/protocols/oscar/family_buddy.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/oscar/family_buddy.c Sun Mar 16 20:36:52 2008 +0000 @@ -139,7 +139,8 @@ return -EINVAL; for (tmpptr = strtok(localcpy, "&"); tmpptr; ) { - purple_debug_misc("oscar", "---adding: %s (%d)\n", tmpptr, strlen(tmpptr)); + purple_debug_misc("oscar", "---adding: %s (%" G_GSIZE_FORMAT + ")\n", tmpptr, strlen(tmpptr)); len += 1 + strlen(tmpptr); tmpptr = strtok(NULL, "&"); } @@ -153,7 +154,8 @@ for (tmpptr = strtok(localcpy, "&"); tmpptr; ) { - purple_debug_misc("oscar", "---adding: %s (%d)\n", tmpptr, strlen(tmpptr)); + purple_debug_misc("oscar", "---adding: %s (%" G_GSIZE_FORMAT + ")\n", tmpptr, strlen(tmpptr)); byte_stream_put8(&frame->data, strlen(tmpptr)); byte_stream_putstr(&frame->data, tmpptr);
--- a/libpurple/protocols/oscar/family_chatnav.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/oscar/family_chatnav.c Sun Mar 16 20:36:52 2008 +0000 @@ -38,7 +38,7 @@ GSList *tlvlist; if (!(snac2 = aim_remsnac(od, snac->id))) { - purple_debug_warning("oscar", "chatnav error: received response to unknown request (%08lx)\n", snac->id); + purple_debug_warning("oscar", "chatnav error: received response to unknown request (%08x)\n", snac->id); return 0; } @@ -455,7 +455,7 @@ int ret = 0; if (!(snac2 = aim_remsnac(od, snac->id))) { - purple_debug_misc("oscar", "faim: chatnav_parse_info: received response to unknown request! (%08lx)\n", snac->id); + purple_debug_misc("oscar", "faim: chatnav_parse_info: received response to unknown request! (%08x)\n", snac->id); return 0; }
--- a/libpurple/protocols/oscar/family_icq.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/oscar/family_icq.c Sun Mar 16 20:36:52 2008 +0000 @@ -558,7 +558,7 @@ cmd = byte_stream_getle16(&qbs); reqid = byte_stream_getle16(&qbs); - purple_debug_misc("oscar", "icq response: %d bytes, %ld, 0x%04x, 0x%04x\n", cmdlen, ouruin, cmd, reqid); + purple_debug_misc("oscar", "icq response: %d bytes, %u, 0x%04x, 0x%04x\n", cmdlen, ouruin, cmd, reqid); if (cmd == 0x0041) { /* offline message */ #ifdef OLDSTYLE_ICQ_OFFLINEMSGS
--- a/libpurple/protocols/oscar/family_oservice.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/oscar/family_oservice.c Sun Mar 16 20:36:52 2008 +0000 @@ -922,7 +922,7 @@ modname = aim_tlv_getstr(tlvlist, 0x0001, 1); - purple_debug_info("oscar", "Got memory request for data at 0x%08lx (%d bytes) of requested %s\n", offset, len, modname ? modname : "aim.exe"); + purple_debug_info("oscar", "Got memory request for data at 0x%08x (%u bytes) of requested %s\n", offset, len, modname ? modname : "aim.exe"); if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, offset, len, modname);
--- a/libpurple/protocols/oscar/family_userlookup.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/oscar/family_userlookup.c Sun Mar 16 20:36:52 2008 +0000 @@ -40,7 +40,7 @@ /* XXX the modules interface should have already retrieved this for us */ if (!(snac2 = aim_remsnac(od, snac->id))) { - purple_debug_misc("oscar", "search error: couldn't get a snac for 0x%08lx\n", snac->id); + purple_debug_misc("oscar", "search error: couldn't get a snac for 0x%08x\n", snac->id); return 0; }
--- a/libpurple/protocols/oscar/flap_connection.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/oscar/flap_connection.c Sun Mar 16 20:36:52 2008 +0000 @@ -753,7 +753,7 @@ { /* Error! */ purple_debug_warning("oscar", "Expecting FLAP version " - "0x00000001 but received FLAP version %08lx. Closing connection.\n", + "0x00000001 but received FLAP version %08x. Closing connection.\n", flap_version); flap_connection_schedule_destroy(conn, OSCAR_DISCONNECT_INVALID_DATA, NULL);
--- a/libpurple/protocols/oscar/oscar.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/oscar/oscar.c Sun Mar 16 20:36:52 2008 +0000 @@ -417,7 +417,7 @@ gchar *ret = NULL; const gchar *charsetstr1, *charsetstr2; - purple_debug_info("oscar", "Parsing IM part, charset=0x%04hx, charsubset=0x%04hx, datalen=%hd\n", charset, charsubset, datalen); + purple_debug_info("oscar", "Parsing IM part, charset=0x%04hx, charsubset=0x%04hx, datalen=%" G_GSIZE_FORMAT "\n", charset, charsubset, datalen); if ((datalen == 0) || (data == NULL)) return NULL; @@ -2014,8 +2014,8 @@ gconstpointer data = purple_imgstore_get_data(img); size_t len = purple_imgstore_get_size(img); purple_debug_info("oscar", - "Sending buddy icon to %s (%d bytes)\n", - userinfo->sn, len); + "Sending buddy icon to %s (%" G_GSIZE_FORMAT " bytes)\n", + userinfo->sn, len); aim_im_sendch2_icon(od, userinfo->sn, data, len, purple_buddy_icons_get_account_icon_timestamp(account), aimutil_iconsum(data, len));
--- a/libpurple/protocols/qq/qq_proxy.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/qq/qq_proxy.c Sun Mar 16 20:36:52 2008 +0000 @@ -294,10 +294,10 @@ * The connection is established asynchronously. */ if ((errno == EINPROGRESS) || (errno == EINTR)) { - purple_debug(PURPLE_DEBUG_WARNING, "QQ", "Connect in asynchronous mode.\n"); + purple_debug_warning("QQ", "Connect in asynchronous mode.\n"); phb->inpa = purple_input_add(fd, PURPLE_INPUT_WRITE, no_one_calls, phb); } else { - purple_debug(PURPLE_DEBUG_ERROR, "QQ", "Connection failed: %d\n", g_strerror(errno)); + purple_debug_error("QQ", "Connection failed: %s\n", g_strerror(errno)); close(fd); return -1; } /* if errno */
--- a/libpurple/protocols/sametime/sametime.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/sametime/sametime.c Sun Mar 16 20:36:52 2008 +0000 @@ -378,7 +378,7 @@ static int mw_session_io_write(struct mwSession *session, const guchar *buf, gsize len) { struct mwPurplePluginData *pd; - int ret = 0; + ssize_t ret = 0; int err = 0; pd = mwSession_getClientData(session); @@ -413,7 +413,8 @@ pd->outpa = purple_input_add(pd->socket, PURPLE_INPUT_WRITE, write_cb, pd); } else if(len > 0) { - DEBUG_ERROR("write returned %i, %i bytes left unwritten\n", ret, len); + DEBUG_ERROR("write returned %" G_GSIZE_FORMAT ", %" G_GSIZE_FORMAT + " bytes left unwritten\n", ret, len); purple_connection_error_reason(pd->gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, _("Connection closed (writing)"));
--- a/libpurple/protocols/yahoo/yahoo_aliases.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo_aliases.c Sun Mar 16 20:36:52 2008 +0000 @@ -79,7 +79,8 @@ purple_debug_error("yahoo_aliases","Badly formed XML\n"); return; } - purple_debug_info("yahoo", "Fetched %i bytes of alias data\n", len); + purple_debug_info("yahoo", "Fetched %" G_GSIZE_FORMAT + " bytes of alias data\n", len); /* Loop around and around and around until we have gone through all the received aliases */ for(item = xmlnode_get_child(contacts, "ct"); item; item = xmlnode_get_next_twin(item)) {
--- a/libpurple/protocols/yahoo/yahoo_packet.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo_packet.c Sun Mar 16 20:36:52 2008 +0000 @@ -346,7 +346,7 @@ int yahoo_packet_send(struct yahoo_packet *pkt, struct yahoo_data *yd) { size_t len; - int ret; + ssize_t ret; guchar *data; if (yd->fd < 0) @@ -365,7 +365,8 @@ if (ret < 0 && errno == EAGAIN) ret = 0; else if (ret <= 0) { - purple_debug_warning("yahoo", "Only wrote %d of %d bytes!\n", ret, len); + purple_debug_warning("yahoo", "Only wrote %" G_GSSIZE_FORMAT + " of %" G_GSIZE_FORMAT " bytes!\n", ret, len); g_free(data); return ret; }
--- a/libpurple/protocols/yahoo/yahoo_profile.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo_profile.c Sun Mar 16 20:36:52 2008 +0000 @@ -1051,7 +1051,8 @@ purple_debug_info("yahoo", "Error getting %s: %s\n", photo_url_text, url_text); } else { - purple_debug_info("yahoo", "%s is %d bytes\n", photo_url_text, len); + purple_debug_info("yahoo", "%s is %" G_GSIZE_FORMAT + " bytes\n", photo_url_text, len); id = purple_imgstore_add_with_id(g_memdup(url_text, len), len, NULL); tmp = g_strdup_printf("<img id=\"%d\"><br>", id);
--- a/libpurple/proxy.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/proxy.c Sun Mar 16 20:36:52 2008 +0000 @@ -1126,7 +1126,8 @@ if(connect_data->read_len < len) { if(connect_data->read_buf_len < len) { /* it's not just that we haven't read enough, it's that we haven't tried to read enough yet */ - purple_debug_info("s5", "reallocing from %d to %d\n", connect_data->read_buf_len, len); + purple_debug_info("s5", "reallocing from %" G_GSIZE_FORMAT + " to %d\n", connect_data->read_buf_len, len); connect_data->read_buf_len = len; connect_data->read_buffer = g_realloc(connect_data->read_buffer, connect_data->read_buf_len); }
--- a/libpurple/util.c Sun Mar 16 20:35:23 2008 +0000 +++ b/libpurple/util.c Sun Mar 16 20:36:52 2008 +0000 @@ -3710,7 +3710,7 @@ */ if (p && g_strstr_len(p, data_len - (p - data), "\n")) { sscanf(p, "%" G_GSIZE_FORMAT, &content_len); - purple_debug_misc("util", "parsed %u\n", content_len); + purple_debug_misc("util", "parsed %" G_GSIZE_FORMAT "\n", content_len); } return content_len; @@ -3787,7 +3787,7 @@ new_data = g_try_malloc(content_len); if(new_data == NULL) { purple_debug_error("util", - "Failed to allocate %u bytes: %s\n", + "Failed to allocate %" G_GSIZE_FORMAT " bytes: %s\n", content_len, g_strerror(errno)); purple_util_fetch_url_error(gfud, _("Unable to allocate enough memory to hold "
--- a/pidgin/gtkmain.c Sun Mar 16 20:35:23 2008 +0000 +++ b/pidgin/gtkmain.c Sun Mar 16 20:36:52 2008 +0000 @@ -240,7 +240,7 @@ icons = g_list_append(icons,icon); } else { purple_debug_error("ui_main", - "Failed to load the default window icon (%spx version)!\n", icon_sizes[i]); + "Failed to load the default window icon (%spx version)!\n", icon_sizes[i].dir); } } if(NULL == icons) {