libpurple/protocols/myspace/message.c

changeset 25185
b270903d36bc
parent 24816
bd870d9ff0ab
child 25190
87a8aba43d70
equal deleted inserted replaced
25178:ec20ad95148d 25185:b270903d36bc
21 21
22 #include "myspace.h" 22 #include "myspace.h"
23 #include "message.h" 23 #include "message.h"
24 24
25 static void msim_msg_free_element(gpointer data, gpointer user_data); 25 static void msim_msg_free_element(gpointer data, gpointer user_data);
26 static MsimMessage *msim_msg_append_dynamic_name(MsimMessage *msg, gchar *name, MsimMessageType type, gpointer data);
26 static void msim_msg_debug_string_element(gpointer data, gpointer user_data); 27 static void msim_msg_debug_string_element(gpointer data, gpointer user_data);
27 static gchar *msim_msg_pack_using(MsimMessage *msg, GFunc gf, const gchar *sep, const gchar *begin, const gchar *end); 28 static gchar *msim_msg_pack_using(MsimMessage *msg, GFunc gf, const gchar *sep, const gchar *begin, const gchar *end);
28 static GList *msim_msg_get_node(MsimMessage *msg, const gchar *name); 29 static GList *msim_msg_get_node(MsimMessage *msg, const gchar *name);
29 static MsimMessage *msim_msg_new_v(gchar *first_key, va_list argp); 30 static MsimMessage *msim_msg_new_v(gchar *first_key, va_list argp);
30 31
355 g_return_if_reached(); 356 g_return_if_reached();
356 } 357 }
357 358
358 /* Append cloned data. Note that the 'name' field is a static string, so it 359 /* Append cloned data. Note that the 'name' field is a static string, so it
359 * never needs to be copied nor freed. */ 360 * never needs to be copied nor freed. */
360 *new = msim_msg_append(*new, elem->name, elem->type, new_data); 361 if (elem->dynamic_name)
362 *new = msim_msg_append_dynamic_name(*new, g_strdup(elem->name), elem->type, new_data);
363 else
364 *new = msim_msg_append(*new, elem->name, elem->type, new_data);
361 } 365 }
362 366
363 /** Clone an existing MsimMessage. 367 /** Clone an existing MsimMessage.
364 * 368 *
365 * @return Cloned message; caller should free with msim_msg_free(). 369 * @return Cloned message; caller should free with msim_msg_free().

mercurial