comparison src/dbusbind.c @ 105749:f955480a1d92

(xd_retrieve_arg): Handle DBUS_TYPE_INTnn and DBUS_TYPE_UINTnn separately to get proper sign extension.
author Andreas Schwab <schwab@linux-m68k.org>
date Sat, 24 Oct 2009 16:45:25 +0000
parents 68dd71358159
children 21bdda3ded62
comparison
equal deleted inserted replaced
105748:87712af03fb7 105749:f955480a1d92
614 XD_DEBUG_MESSAGE ("%c %s", dtype, (val == FALSE) ? "false" : "true"); 614 XD_DEBUG_MESSAGE ("%c %s", dtype, (val == FALSE) ? "false" : "true");
615 return (val == FALSE) ? Qnil : Qt; 615 return (val == FALSE) ? Qnil : Qt;
616 } 616 }
617 617
618 case DBUS_TYPE_INT16: 618 case DBUS_TYPE_INT16:
619 {
620 dbus_int16_t val;
621 dbus_message_iter_get_basic (iter, &val);
622 XD_DEBUG_MESSAGE ("%c %d", dtype, val);
623 return make_number (val);
624 }
625
619 case DBUS_TYPE_UINT16: 626 case DBUS_TYPE_UINT16:
620 { 627 {
621 dbus_uint16_t val; 628 dbus_uint16_t val;
622 dbus_message_iter_get_basic (iter, &val); 629 dbus_message_iter_get_basic (iter, &val);
623 XD_DEBUG_MESSAGE ("%c %d", dtype, val); 630 XD_DEBUG_MESSAGE ("%c %d", dtype, val);
624 return make_number (val); 631 return make_number (val);
625 } 632 }
626 633
627 case DBUS_TYPE_INT32: 634 case DBUS_TYPE_INT32:
635 {
636 dbus_int32_t val;
637 dbus_message_iter_get_basic (iter, &val);
638 XD_DEBUG_MESSAGE ("%c %d", dtype, val);
639 return make_fixnum_or_float (val);
640 }
641
628 case DBUS_TYPE_UINT32: 642 case DBUS_TYPE_UINT32:
629 { 643 {
630 /* Assignment to EMACS_INT stops GCC whining about limited
631 range of data type. */
632 dbus_uint32_t val; 644 dbus_uint32_t val;
633 EMACS_INT val1;
634 dbus_message_iter_get_basic (iter, &val); 645 dbus_message_iter_get_basic (iter, &val);
635 XD_DEBUG_MESSAGE ("%c %d", dtype, val); 646 XD_DEBUG_MESSAGE ("%c %d", dtype, val);
636 val1 = val; 647 return make_fixnum_or_float (val);
637 return make_fixnum_or_float (val1);
638 } 648 }
639 649
640 case DBUS_TYPE_INT64: 650 case DBUS_TYPE_INT64:
651 {
652 dbus_int64_t val;
653 dbus_message_iter_get_basic (iter, &val);
654 XD_DEBUG_MESSAGE ("%c %d", dtype, (int) val);
655 return make_fixnum_or_float (val);
656 }
657
641 case DBUS_TYPE_UINT64: 658 case DBUS_TYPE_UINT64:
642 { 659 {
643 dbus_uint64_t val; 660 dbus_uint64_t val;
644 dbus_message_iter_get_basic (iter, &val); 661 dbus_message_iter_get_basic (iter, &val);
645 XD_DEBUG_MESSAGE ("%c %d", dtype, (int) val); 662 XD_DEBUG_MESSAGE ("%c %d", dtype, (int) val);