# HG changeset patch # User Stu Tomlinson # Date 1218768172 0 # Node ID 679a61dcf5c2ef7af080b9afcf3d0d14a17f1a18 # Parent 142c1ff499fd7f06511157a8b32f834e8714c9a3 Fix compatibility with glib < 2.4 for g_markup_printf_escaped. untested. diff -r 142c1ff499fd -r 679a61dcf5c2 ChangeLog.API --- a/ChangeLog.API Fri Aug 15 02:34:21 2008 +0000 +++ b/ChangeLog.API Fri Aug 15 02:42:52 2008 +0000 @@ -21,6 +21,7 @@ * purple_cmds_get_handle, purple_cmds_init, purple_cmds_uninit * cmd-added and cmd-removed signals * purple_get_host_name + * purple_markup_printf_escaped * purple_util_fetch_url_len (temporary function overload to add max_len param) * purple_util_fetch_url_request_len diff -r 142c1ff499fd -r 679a61dcf5c2 libpurple/protocols/msn/contact.c --- a/libpurple/protocols/msn/contact.c Fri Aug 15 02:34:21 2008 +0000 +++ b/libpurple/protocols/msn/contact.c Fri Aug 15 02:42:52 2008 +0000 @@ -221,7 +221,7 @@ purple_debug_info("msn", "Creating an Address Book.\n"); - body = g_markup_printf_escaped(MSN_ADD_ADDRESSBOOK_TEMPLATE, + body = purple_markup_printf_escaped(MSN_ADD_ADDRESSBOOK_TEMPLATE, msn_nexus_get_token_str(session->nexus, MSN_AUTH_CONTACTS), session->user->passport); @@ -408,7 +408,7 @@ update_str = g_strdup_printf(MSN_GET_CONTACT_UPDATE_XML,update_time); } - body = g_markup_printf_escaped(MSN_GET_CONTACT_TEMPLATE, partner_scenario_str, + body = purple_markup_printf_escaped(MSN_GET_CONTACT_TEMPLATE, partner_scenario_str, msn_nexus_get_token_str(session->nexus, MSN_AUTH_CONTACTS), update_str ? update_str : ""); @@ -807,7 +807,7 @@ else if (LastChanged != NULL) update_str = g_strdup_printf(MSN_GET_ADDRESS_UPDATE_XML, LastChanged); - body = g_markup_printf_escaped(MSN_GET_ADDRESS_TEMPLATE, + body = purple_markup_printf_escaped(MSN_GET_ADDRESS_TEMPLATE, MsnSoapPartnerScenarioText[partner_scenario], msn_nexus_get_token_str(session->nexus, MSN_AUTH_CONTACTS), update_str ? update_str : ""); diff -r 142c1ff499fd -r 679a61dcf5c2 libpurple/protocols/msn/msn.c --- a/libpurple/protocols/msn/msn.c Fri Aug 15 02:34:21 2008 +0000 +++ b/libpurple/protocols/msn/msn.c Fri Aug 15 02:42:52 2008 +0000 @@ -714,7 +714,7 @@ char *tmp2; if (purple_presence_is_idle(presence)) { - tmp2 = g_markup_printf_escaped("%s/%s", name, _("Idle")); + tmp2 = purple_markup_printf_escaped("%s/%s", name, _("Idle")); } else { tmp2 = g_markup_escape_text(name, -1); } diff -r 142c1ff499fd -r 679a61dcf5c2 libpurple/protocols/msn/page.c --- a/libpurple/protocols/msn/page.c Fri Aug 15 02:34:21 2008 +0000 +++ b/libpurple/protocols/msn/page.c Fri Aug 15 02:42:52 2008 +0000 @@ -53,7 +53,7 @@ g_return_val_if_fail(page != NULL, NULL); - str = g_markup_printf_escaped( + str = purple_markup_printf_escaped( "%s", msn_page_get_body(page)); diff -r 142c1ff499fd -r 679a61dcf5c2 libpurple/util.c --- a/libpurple/util.c Fri Aug 15 02:34:21 2008 +0000 +++ b/libpurple/util.c Fri Aug 15 02:42:52 2008 +0000 @@ -2499,6 +2499,29 @@ return g_strndup(tag+1, i-1); } +char * +purple_markup_printf_escaped(const char *format, ...) +{ + va_list args; + char *ret; + +#if GLIB_CHECK_VERSION(2,4,0) + va_start(args, format); + ret = g_markup_vprintf_escaped(format, args); + va_end(args); +#else + char *tmp; + + va_start(args, format); + tmp = g_strdup_vprintf(format, args); + va_end(args); + ret = g_markup_escape_text(tmp, -1); + g_free(tmp); + +#endif + + return ret; +} /************************************************************************** * Path/Filename Functions **************************************************************************/ diff -r 142c1ff499fd -r 679a61dcf5c2 libpurple/util.h --- a/libpurple/util.h Fri Aug 15 02:34:21 2008 +0000 +++ b/libpurple/util.h Fri Aug 15 02:42:52 2008 +0000 @@ -576,6 +576,21 @@ char * purple_markup_get_css_property(const gchar *style, const gchar *opt); +/** + * + * Formats arguments according to @a format, escaping all string and character + * arguments in the fashion of g_markup_escape_text(). This is useful when you + * want to insert literal strings into XML-style markup output, without having + * to worry that the strings might themselves contain markup. + * + * This exists for Glib backwards compatibility reasons. + * + * @param format The format + * + * @return The string + */ +char * purple_markup_printf_escaped(const char *format, ...); + /*@}*/