# HG changeset patch # User John Bailey # Date 1200550317 0 # Node ID 33abfb98a4605563307cc2f89f1f0863ea7a4f91 # Parent 0d7d0a60d42d1c3ae7488f7d49ce4f02d409383e Since I needed to bring back yahoo_convert_to_numeric, I figured I could at least clean it up a little bit. Refs #3295. diff -r 0d7d0a60d42d -r 33abfb98a460 libpurple/protocols/yahoo/util.c --- a/libpurple/protocols/yahoo/util.c Thu Jan 17 05:53:25 2008 +0000 +++ b/libpurple/protocols/yahoo/util.c Thu Jan 17 06:11:57 2008 +0000 @@ -166,15 +166,20 @@ char *yahoo_convert_to_numeric(const char *str) { - char *retstr, buf[7]; + GString *gstr = NULL; + char *retstr; const char *p; - retstr = (char*)malloc(strlen(str) * 6 + 1); - memset(retstr, 0x00, sizeof(retstr)); + gstr = g_string_sized_new(strlen(str) * 6 + 1); + for (p = str; *p; p++) { - sprintf(buf, "&#%d;", (unsigned char)*p); - strcat(retstr, buf); + g_string_append_printf(gstr, "&#%u;", *p); } + + retstr = gstr->str; + + g_string_free(gstr, FALSE); + return retstr; }