comparison libpurple/plugins/perl/common/Util.xs @ 27017:31f65046b92d

Various perl warning fixes as well as real fixes to gconstpointer functions SvPV, et al. take a char*, whereas the cipher and base16/64 encoding functions return unsigned char*s, so cast away warnings about those distinctions. get_image_extension and get_image_filename take a (char *, len) as arguments, but the generated glue code wasn't interepreting the data as a giant array. I think purple_imgstore_get_data is also broken, but is not fixed.
author Paul Aurich <paul@darkrain42.org>
date Fri, 22 May 2009 04:56:05 +0000
parents 7bc52fed6fdb
children 943fce8ef142
comparison
equal deleted inserted replaced
27016:c162a088489f 27017:31f65046b92d
67 gchar_own* 67 gchar_own*
68 purple_message_meify(SV *msg) 68 purple_message_meify(SV *msg)
69 PREINIT: 69 PREINIT:
70 char *message = NULL; 70 char *message = NULL;
71 gboolean ret; 71 gboolean ret;
72 gssize len; 72 gsize len;
73 CODE: 73 CODE:
74 message = SvPV(msg, len); 74 message = SvPV(msg, len);
75 message = g_strndup(message, len); 75 message = g_strndup(message, len);
76 ret = purple_message_meify(message, len); 76 ret = purple_message_meify(message, len);
77 if(ret) { 77 if(ret) {
237 gsize len; 237 gsize len;
238 guchar *ret; 238 guchar *ret;
239 CODE: 239 CODE:
240 ret = purple_base16_decode(str, &len); 240 ret = purple_base16_decode(str, &len);
241 if(len) { 241 if(len) {
242 RETVAL = newSVpv(ret, len); 242 RETVAL = newSVpv((gchar *)ret, len);
243 } else { 243 } else {
244 g_free(ret); 244 g_free(ret);
245 XSRETURN_UNDEF; 245 XSRETURN_UNDEF;
246 } 246 }
247 g_free(ret); 247 g_free(ret);
255 gsize len; 255 gsize len;
256 guchar *ret; 256 guchar *ret;
257 CODE: 257 CODE:
258 ret = purple_base64_decode(str, &len); 258 ret = purple_base64_decode(str, &len);
259 if(len) { 259 if(len) {
260 RETVAL = newSVpv(ret, len); 260 RETVAL = newSVpv((gchar *)ret, len);
261 } else { 261 } else {
262 g_free(ret); 262 g_free(ret);
263 XSRETURN_UNDEF; 263 XSRETURN_UNDEF;
264 } 264 }
265 g_free(ret); 265 g_free(ret);
273 gsize len; 273 gsize len;
274 guchar *ret; 274 guchar *ret;
275 CODE: 275 CODE:
276 ret = purple_quotedp_decode(str, &len); 276 ret = purple_quotedp_decode(str, &len);
277 if(len) { 277 if(len) {
278 RETVAL = newSVpv(ret, len); 278 RETVAL = newSVpv((gchar *)ret, len);
279 } else { 279 } else {
280 g_free(ret); 280 g_free(ret);
281 XSRETURN_UNDEF; 281 XSRETURN_UNDEF;
282 } 282 }
283 g_free(ret); 283 g_free(ret);
497 const char* artist 497 const char* artist
498 const char* album 498 const char* album
499 gpointer unused 499 gpointer unused
500 500
501 const char* 501 const char*
502 purple_util_get_image_extension(gconstpointer data, size_t length(data)) 502 purple_util_get_image_extension(const char *data, size_t length(data))
503 PROTOTYPE: $ 503 PROTOTYPE: $
504 504
505 gchar_own* 505 gchar_own*
506 purple_util_get_image_filename(gconstpointer image_data, size_t length(image_data)) 506 purple_util_get_image_filename(const char *image_data, size_t length(image_data))
507 PROTOTYPE: $ 507 PROTOTYPE: $
508 508
509 Purple::XMLNode 509 Purple::XMLNode
510 purple_util_read_xml_from_file(filename, description) 510 purple_util_read_xml_from_file(filename, description)
511 const char* filename 511 const char* filename