| 368 case GAIM_TYPE_UINT: return (void *)SvUV(sv); |
368 case GAIM_TYPE_UINT: return (void *)SvUV(sv); |
| 369 case GAIM_TYPE_LONG: return (void *)SvIV(sv); |
369 case GAIM_TYPE_LONG: return (void *)SvIV(sv); |
| 370 case GAIM_TYPE_ULONG: return (void *)SvUV(sv); |
370 case GAIM_TYPE_ULONG: return (void *)SvUV(sv); |
| 371 case GAIM_TYPE_INT64: return (void *)SvIV(sv); |
371 case GAIM_TYPE_INT64: return (void *)SvIV(sv); |
| 372 case GAIM_TYPE_UINT64: return (void *)SvUV(sv); |
372 case GAIM_TYPE_UINT64: return (void *)SvUV(sv); |
| 373 case GAIM_TYPE_STRING: return (void *)SvPV(sv, na); |
373 case GAIM_TYPE_STRING: return g_strdup((void *)SvPV(sv, na)); |
| 374 case GAIM_TYPE_POINTER: return (void *)SvIV(sv); |
374 case GAIM_TYPE_POINTER: return (void *)SvIV(sv); |
| 375 case GAIM_TYPE_BOXED: return (void *)SvIV(sv); |
375 case GAIM_TYPE_BOXED: return (void *)SvIV(sv); |
| 376 |
376 |
| 377 default: |
377 default: |
| 378 return NULL; |
378 return NULL; |
| 418 return &PL_sv_undef; |
418 return &PL_sv_undef; |
| 419 |
419 |
| 420 return gaim_perl_sv_from_subtype(value, *(void **)*copy_arg); |
420 return gaim_perl_sv_from_subtype(value, *(void **)*copy_arg); |
| 421 |
421 |
| 422 case GAIM_TYPE_BOOLEAN: |
422 case GAIM_TYPE_BOOLEAN: |
| 423 if ((*copy_arg = va_arg(*args, gboolean *)) == NULL) |
423 if ((*copy_arg = (void *)va_arg(*args, gboolean *)) == NULL) |
| 424 return &PL_sv_undef; |
424 return &PL_sv_undef; |
| 425 |
425 |
| 426 return newSViv(*(gboolean *)*copy_arg); |
426 return newSViv(*(gboolean *)*copy_arg); |
| 427 |
427 |
| 428 case GAIM_TYPE_INT: |
428 case GAIM_TYPE_INT: |
| 429 if ((*copy_arg = va_arg(*args, int *)) == NULL) |
429 if ((*copy_arg = (void *)va_arg(*args, int *)) == NULL) |
| 430 return &PL_sv_undef; |
430 return &PL_sv_undef; |
| 431 |
431 |
| 432 return newSViv(*(int *)*copy_arg); |
432 return newSViv(*(int *)*copy_arg); |
| 433 |
433 |
| 434 case GAIM_TYPE_UINT: |
434 case GAIM_TYPE_UINT: |
| 435 if ((*copy_arg = va_arg(*args, unsigned int *)) == NULL) |
435 if ((*copy_arg = (void *)va_arg(*args, unsigned int *)) == NULL) |
| 436 return &PL_sv_undef; |
436 return &PL_sv_undef; |
| 437 |
437 |
| 438 return newSVuv(*(unsigned int *)*copy_arg); |
438 return newSVuv(*(unsigned int *)*copy_arg); |
| 439 |
439 |
| 440 case GAIM_TYPE_LONG: |
440 case GAIM_TYPE_LONG: |
| 441 if ((*copy_arg = va_arg(*args, long *)) == NULL) |
441 if ((*copy_arg = (void *)va_arg(*args, long *)) == NULL) |
| 442 return &PL_sv_undef; |
442 return &PL_sv_undef; |
| 443 |
443 |
| 444 return newSViv(*(long *)*copy_arg); |
444 return newSViv(*(long *)*copy_arg); |
| 445 |
445 |
| 446 case GAIM_TYPE_ULONG: |
446 case GAIM_TYPE_ULONG: |
| 447 if ((*copy_arg = va_arg(*args, unsigned long *)) == NULL) |
447 if ((*copy_arg = (void *)va_arg(*args, |
| |
448 unsigned long *)) == NULL) |
| 448 return &PL_sv_undef; |
449 return &PL_sv_undef; |
| 449 |
450 |
| 450 return newSVuv(*(unsigned long *)*copy_arg); |
451 return newSVuv(*(unsigned long *)*copy_arg); |
| 451 |
452 |
| 452 case GAIM_TYPE_INT64: |
453 case GAIM_TYPE_INT64: |
| 453 if ((*copy_arg = va_arg(*args, gint64 *)) == NULL) |
454 if ((*copy_arg = (void *)va_arg(*args, gint64 *)) == NULL) |
| 454 return &PL_sv_undef; |
455 return &PL_sv_undef; |
| 455 |
456 |
| 456 return newSViv(*(gint64 *)*copy_arg); |
457 return newSViv(*(gint64 *)*copy_arg); |
| 457 |
458 |
| 458 case GAIM_TYPE_UINT64: |
459 case GAIM_TYPE_UINT64: |
| 459 if ((*copy_arg = va_arg(*args, guint64 *)) == NULL) |
460 if ((*copy_arg = (void *)va_arg(*args, guint64 *)) == NULL) |
| 460 return &PL_sv_undef; |
461 return &PL_sv_undef; |
| 461 |
462 |
| 462 return newSVuv(*(guint64 *)*copy_arg); |
463 return newSVuv(*(guint64 *)*copy_arg); |
| 463 |
464 |
| 464 case GAIM_TYPE_STRING: |
465 case GAIM_TYPE_STRING: |
| 465 if ((*copy_arg = va_arg(*args, char **)) == NULL) |
466 if ((*copy_arg = (void *)va_arg(*args, char **)) == NULL) |
| 466 return &PL_sv_undef; |
467 return &PL_sv_undef; |
| 467 |
468 |
| 468 return newSVGChar(*(char **)*copy_arg); |
469 return newSVGChar(*(char **)*copy_arg); |
| 469 |
470 |
| 470 case GAIM_TYPE_POINTER: |
471 case GAIM_TYPE_POINTER: |
| 542 |
543 |
| 543 case GAIM_TYPE_STRING: |
544 case GAIM_TYPE_STRING: |
| 544 if ((*copy_arg = (void *)va_arg(*args, char *)) == NULL) |
545 if ((*copy_arg = (void *)va_arg(*args, char *)) == NULL) |
| 545 return &PL_sv_undef; |
546 return &PL_sv_undef; |
| 546 |
547 |
| 547 return newSVGChar(*copy_arg); |
548 return newSVGChar(*(char **)*copy_arg); |
| 548 |
549 |
| 549 case GAIM_TYPE_POINTER: |
550 case GAIM_TYPE_POINTER: |
| 550 if ((*copy_arg = (void *)va_arg(*args, void *)) == NULL) |
551 if ((*copy_arg = (void *)va_arg(*args, void *)) == NULL) |
| 551 return &PL_sv_undef; |
552 return &PL_sv_undef; |
| 552 |
553 |