Mercurial > pidgin.yaz
comparison src/util.c @ 11132:a4611130e3eb
[gaim-migrate @ 13189]
A bit more dewarnification. I also think I found a memleak in sametime.
siege, could you please check that out sometime?
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Wed, 20 Jul 2005 02:43:09 +0000 |
parents | 719779387f96 |
children | f2755f58a7da |
comparison
equal
deleted
inserted
replaced
11131:ece127d56c14 | 11132:a4611130e3eb |
---|---|
245 | 245 |
246 return out; | 246 return out; |
247 } | 247 } |
248 | 248 |
249 /************************************************************************** | 249 /************************************************************************** |
250 * Quoted Printable Functions (see RFC 1341) | 250 * Quoted Printable Functions (see RFC 2045). |
251 **************************************************************************/ | 251 **************************************************************************/ |
252 void | 252 guint8 * |
253 gaim_quotedp_decode(const char *str, char **ret_str, int *ret_len) | 253 gaim_quotedp_decode(const char *str, gsize *ret_len) |
254 { | 254 { |
255 char *n, *new; | 255 char *n, *new; |
256 const char *end, *p; | 256 const char *end, *p; |
257 | 257 |
258 n = new = g_malloc(strlen (str) + 1); | 258 n = new = g_malloc(strlen (str) + 1); |
285 *n = *p; | 285 *n = *p; |
286 } | 286 } |
287 | 287 |
288 *n = '\0'; | 288 *n = '\0'; |
289 | 289 |
290 if (ret_len) | 290 if (ret_len != NULL) |
291 *ret_len = n - new; | 291 *ret_len = n - new; |
292 | 292 |
293 /* Resize to take less space */ | 293 /* Resize to take less space */ |
294 /* new = realloc(new, n - new); */ | 294 /* new = realloc(new, n - new); */ |
295 | 295 |
296 *ret_str = new; | 296 return (guint8 *)new; |
297 } | 297 } |
298 | 298 |
299 /************************************************************************** | 299 /************************************************************************** |
300 * MIME Functions | 300 * MIME Functions |
301 **************************************************************************/ | 301 **************************************************************************/ |
411 char *encoding = g_strndup(encoding0, encoded_text0 - encoding0 - 1); | 411 char *encoding = g_strndup(encoding0, encoded_text0 - encoding0 - 1); |
412 char *encoded_text = g_strndup(encoded_text0, cur - encoded_text0 - 1); | 412 char *encoded_text = g_strndup(encoded_text0, cur - encoded_text0 - 1); |
413 guint8 *decoded = NULL; | 413 guint8 *decoded = NULL; |
414 gsize dec_len; | 414 gsize dec_len; |
415 if (g_ascii_strcasecmp(encoding, "Q") == 0) | 415 if (g_ascii_strcasecmp(encoding, "Q") == 0) |
416 gaim_quotedp_decode(encoded_text, &decoded, &dec_len); | 416 decoded = gaim_quotedp_decode(encoded_text, &dec_len); |
417 else if (g_ascii_strcasecmp(encoding, "B") == 0) | 417 else if (g_ascii_strcasecmp(encoding, "B") == 0) |
418 decoded = gaim_base64_decode(encoded_text, &dec_len); | 418 decoded = gaim_base64_decode(encoded_text, &dec_len); |
419 else | 419 else |
420 decoded = NULL; | 420 decoded = NULL; |
421 if (decoded) { | 421 if (decoded) { |
422 gsize len; | 422 gsize len; |
423 char *converted = g_convert(decoded, dec_len, "utf-8", charset, NULL, &len, NULL); | 423 char *converted = g_convert((const gchar *)decoded, dec_len, "utf-8", charset, NULL, &len, NULL); |
424 | 424 |
425 if (converted) { | 425 if (converted) { |
426 n = strncpy(n, converted, len) + len; | 426 n = strncpy(n, converted, len) + len; |
427 g_free(converted); | 427 g_free(converted); |
428 } | 428 } |