comparison libpurple/protocols/myspace/message.c @ 20243:5440eed4ec7e

applied changes from efedefa70ee1d6f7f4dd39afe5db10c7e5bfe64c through afa2cfc77d5df43359af0e531c44167cf94d7d06
author Richard Laager <rlaager@wiktel.com>
date Fri, 28 Sep 2007 15:57:10 +0000
parents 44b4e8bd759b
children b93e7be3847b
comparison
equal deleted inserted replaced
20242:c320bc7b1383 20243:5440eed4ec7e
78 78
79 #ifdef MSIM_DEBUG_ESCAPE 79 #ifdef MSIM_DEBUG_ESCAPE
80 purple_debug_info("msim", "msim_escape: msg=%s, ret=%s\n", msg, gs->str); 80 purple_debug_info("msim", "msim_escape: msg=%s, ret=%s\n", msg, gs->str);
81 #endif 81 #endif
82 82
83 return gs->str; 83 return g_string_free(gs, FALSE);
84 } 84 }
85 85
86 /** 86 /**
87 * Unescape a protocol message. 87 * Unescape a protocol message.
88 * 88 *
118 118
119 #ifdef MSIM_DEBUG_ESCAPE 119 #ifdef MSIM_DEBUG_ESCAPE
120 purple_debug_info("msim", "msim_unescape: msg=%s, ret=%s\n", msg, gs->str); 120 purple_debug_info("msim", "msim_unescape: msg=%s, ret=%s\n", msg, gs->str);
121 #endif 121 #endif
122 122
123 return gs->str; 123 return g_string_free(gs, FALSE);
124 } 124 }
125 125
126 /** Create a new MsimMessage. 126 /** Create a new MsimMessage.
127 * 127 *
128 * @param first_key The first key in the sequence, or NULL for an empty message. 128 * @param first_key The first key in the sequence, or NULL for an empty message.
689 for (gl = (GList *)elem->data; gl != NULL; gl = g_list_next(gl)) { 689 for (gl = (GList *)elem->data; gl != NULL; gl = g_list_next(gl)) {
690 g_string_append_printf(gs, " %d. %s\n", i, (gchar *)(gl->data)); 690 g_string_append_printf(gs, " %d. %s\n", i, (gchar *)(gl->data));
691 ++i; 691 ++i;
692 } 692 }
693 693
694 string = gs->str; 694 string = g_string_free(gs, FALSE);
695 break; 695 break;
696 696
697 default: 697 default:
698 string = g_strdup_printf("%s(unknown type %d", 698 string = g_strdup_printf("%s(unknown type %d",
699 elem->name ? elem->name : "(NULL)", elem->type); 699 elem->name ? elem->name : "(NULL)", elem->type);
796 /* All but last element is separated by a bar. */ 796 /* All but last element is separated by a bar. */
797 if (g_list_next(gl)) 797 if (g_list_next(gl))
798 g_string_append(gs, "|"); 798 g_string_append(gs, "|");
799 } 799 }
800 800
801 return gs->str; 801 return g_string_free(gs, FALSE);
802 802
803 default: 803 default:
804 purple_debug_info("msim", "field %s, unknown type %d\n", 804 purple_debug_info("msim", "field %s, unknown type %d\n",
805 elem->name ? elem->name : "(NULL)", 805 elem->name ? elem->name : "(NULL)",
806 elem->type); 806 elem->type);
1335 1335
1336 case MSIM_TYPE_BINARY: 1336 case MSIM_TYPE_BINARY:
1337 gs = (GString *)elem->data; 1337 gs = (GString *)elem->data;
1338 1338
1339 /* Duplicate data, so caller can g_free() it. */ 1339 /* Duplicate data, so caller can g_free() it. */
1340 *binary_data = g_new0(char, gs->len); 1340 *binary_data = g_memdup(gs->str, gs->len);
1341 memcpy(*binary_data, gs->str, gs->len);
1342
1343 *binary_length = gs->len; 1341 *binary_length = gs->len;
1344 1342
1345 return TRUE; 1343 return TRUE;
1346 1344
1347 1345