Make array-printing code easier to follow
[platform/upstream/dbus.git] / tools / dbus-print-message.c
index bbc0d23..749fca6 100644 (file)
@@ -1,4 +1,4 @@
-/* -*- mode: C; c-file-style: "gnu" -*- */
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 /* dbus-print-message.h  Utility function to print out a message
  *
  * Copyright (C) 2003 Philip Blundell <philb@gnu.org>
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  *
  */
 #include "dbus-print-message.h"
@@ -186,12 +186,17 @@ print_iter (DBusMessageIter *iter, dbus_bool_t literal, int depth)
 
            dbus_message_iter_recurse (iter, &subiter);
 
+           current_type = dbus_message_iter_get_arg_type (&subiter);
+
            printf("array [\n");
-           while ((current_type = dbus_message_iter_get_arg_type (&subiter)) != DBUS_TYPE_INVALID)
+           while (current_type != DBUS_TYPE_INVALID)
              {
                print_iter (&subiter, literal, depth+1);
+
                dbus_message_iter_next (&subiter);
-               if (dbus_message_iter_get_arg_type (&subiter) != DBUS_TYPE_INVALID)
+               current_type = dbus_message_iter_get_arg_type (&subiter);
+
+               if (current_type != DBUS_TYPE_INVALID)
                  printf (",");
              }
            indent(depth);
@@ -263,7 +268,8 @@ print_message (DBusMessage *message, dbus_bool_t literal)
        {
        case DBUS_MESSAGE_TYPE_METHOD_CALL:
        case DBUS_MESSAGE_TYPE_SIGNAL:
-         printf (" path=%s; interface=%s; member=%s\n",
+         printf (" serial=%u path=%s; interface=%s; member=%s\n",
+                  dbus_message_get_serial (message),
                  dbus_message_get_path (message),
                  dbus_message_get_interface (message),
                  dbus_message_get_member (message));