From 1ed128b52484d95e30f7437bf87f34d85371f1f8 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Thu, 2 Jan 2003 10:09:46 +0000 Subject: 2003-01-02 Anders Carlsson * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string), (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string), (_dbus_marshal_test): * dbus/dbus-marshal.h: Add _dbus_marshal_byte_array and rename _dbus_marshal_string to _dbus_marshal_utf8_string. Also fix some tests. --- ChangeLog | 9 ++++++++ dbus/dbus-marshal.c | 44 +++++++++++++++++++++++--------------- dbus/dbus-marshal.h | 61 +++++++++++++++++++++++++++++------------------------ 3 files changed, 69 insertions(+), 45 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1e208575..94f8beb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2003-01-02 Anders Carlsson + + * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string), + (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string), + (_dbus_marshal_test): + * dbus/dbus-marshal.h: + Add _dbus_marshal_byte_array and rename _dbus_marshal_string + to _dbus_marshal_utf8_string. Also fix some tests. + 2002-12-28 Harri Porten * configure.in: added check for C++ compiler and a very cheesy diff --git a/dbus/dbus-marshal.c b/dbus/dbus-marshal.c index d7548ce5..da726356 100644 --- a/dbus/dbus-marshal.c +++ b/dbus/dbus-marshal.c @@ -173,17 +173,12 @@ _dbus_marshal_uint32 (DBusString *str, } dbus_bool_t -_dbus_marshal_string (DBusString *str, - int byte_order, - const char *value) +_dbus_marshal_utf8_string (DBusString *str, + int byte_order, + const char *value) { int len; - if (!_dbus_string_set_length (str, - DBUS_ALIGN_VALUE (_dbus_string_get_length (str), - sizeof (dbus_uint32_t)))) - return FALSE; - len = strlen (value); if (!_dbus_marshal_uint32 (str, byte_order, len)) @@ -192,6 +187,17 @@ _dbus_marshal_string (DBusString *str, return _dbus_string_append_len (str, value, len + 1); } +dbus_bool_t +_dbus_marshal_byte_array (DBusString *str, + int byte_order, + const unsigned char *value, + int len) +{ + if (!_dbus_marshal_uint32 (str, byte_order, len)) + return FALSE; + + return _dbus_string_append_len (str, value, len); +} double _dbus_demarshal_double (DBusString *str, @@ -254,10 +260,10 @@ _dbus_demarshal_uint32 (DBusString *str, } char * -_dbus_demarshal_string (DBusString *str, - int byte_order, - int pos, - int *new_pos) +_dbus_demarshal_utf8_string (DBusString *str, + int byte_order, + int pos, + int *new_pos) { int len; char *retval; @@ -401,25 +407,29 @@ _dbus_marshal_test (void) _dbus_assert (_dbus_demarshal_int32 (&str, DBUS_LITTLE_ENDIAN, pos, &pos) == -12345678); /* Marshal unsigned integers */ + if (!_dbus_marshal_uint32 (&str, DBUS_BIG_ENDIAN, 0x12345678)) + _dbus_assert_not_reached ("could not marshal signed integer value"); + _dbus_assert (_dbus_demarshal_uint32 (&str, DBUS_BIG_ENDIAN, pos, &pos) == 0x12345678); + if (!_dbus_marshal_uint32 (&str, DBUS_LITTLE_ENDIAN, 0x12345678)) _dbus_assert_not_reached ("could not marshal signed integer value"); _dbus_assert (_dbus_demarshal_uint32 (&str, DBUS_LITTLE_ENDIAN, pos, &pos) == 0x12345678); /* Marshal strings */ tmp1 = "This is the dbus test string"; - if (!_dbus_marshal_string (&str, DBUS_LITTLE_ENDIAN, tmp1)) + if (!_dbus_marshal_utf8_string (&str, DBUS_BIG_ENDIAN, tmp1)) _dbus_assert_not_reached ("could not marshal string"); - tmp2 = _dbus_demarshal_string (&str, DBUS_LITTLE_ENDIAN, pos, &pos); + tmp2 = _dbus_demarshal_utf8_string (&str, DBUS_BIG_ENDIAN, pos, &pos); _dbus_assert (strcmp (tmp1, tmp2) == 0); dbus_free (tmp2); tmp1 = "This is the dbus test string"; - if (!_dbus_marshal_string (&str, DBUS_LITTLE_ENDIAN, tmp1)) + if (!_dbus_marshal_utf8_string (&str, DBUS_LITTLE_ENDIAN, tmp1)) _dbus_assert_not_reached ("could not marshal string"); - tmp2 = _dbus_demarshal_string (&str, DBUS_LITTLE_ENDIAN, pos, &pos); + tmp2 = _dbus_demarshal_utf8_string (&str, DBUS_LITTLE_ENDIAN, pos, &pos); _dbus_assert (strcmp (tmp1, tmp2) == 0); dbus_free (tmp2); - + _dbus_string_free (&str); return TRUE; diff --git a/dbus/dbus-marshal.h b/dbus/dbus-marshal.h index e6663047..88a3b1a9 100644 --- a/dbus/dbus-marshal.h +++ b/dbus/dbus-marshal.h @@ -39,36 +39,41 @@ #define DBUS_COMPILER_BYTE_ORDER DBUS_LITTLE_ENDIAN #endif -dbus_bool_t _dbus_marshal_double (DBusString *str, - int byte_order, - double value); -dbus_bool_t _dbus_marshal_int32 (DBusString *str, - int byte_order, - dbus_int32_t value); -dbus_bool_t _dbus_marshal_uint32 (DBusString *str, - int byte_order, - dbus_uint32_t value); -dbus_bool_t _dbus_marshal_string (DBusString *str, - int byte_order, - const char *value); +dbus_bool_t _dbus_marshal_double (DBusString *str, + int byte_order, + double value); +dbus_bool_t _dbus_marshal_int32 (DBusString *str, + int byte_order, + dbus_int32_t value); +dbus_bool_t _dbus_marshal_uint32 (DBusString *str, + int byte_order, + dbus_uint32_t value); +dbus_bool_t _dbus_marshal_utf8_string (DBusString *str, + int byte_order, + const char *value); +dbus_bool_t _dbus_marshal_byte_array (DBusString *str, + int byte_order, + const unsigned char *value, + int len); -double _dbus_demarshal_double (DBusString *str, - int byte_order, - int pos, - int *new_pos); -dbus_int32_t _dbus_demarshal_int32 (DBusString *str, - int byte_order, - int pos, - int *new_pos); -dbus_uint32_t _dbus_demarshal_uint32 (DBusString *str, - int byte_order, - int pos, - int *new_pos); -char * _dbus_demarshal_string (DBusString *str, - int byte_order, - int pos, - int *new_pos); +double _dbus_demarshal_double (DBusString *str, + int byte_order, + int pos, + int *new_pos); +dbus_int32_t _dbus_demarshal_int32 (DBusString *str, + int byte_order, + int pos, + int *new_pos); +dbus_uint32_t _dbus_demarshal_uint32 (DBusString *str, + int byte_order, + int pos, + int *new_pos); +char * _dbus_demarshal_utf8_string (DBusString *str, + int byte_order, + int pos, + int *new_pos); + -- cgit