Mercurial > emacs
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); |