* inferior.c (print_inferior): Make a table, not a list. Emit
authorTom Tromey <tromey@redhat.com>
Wed, 10 Jun 2009 22:08:19 +0000 (22:08 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 10 Jun 2009 22:08:19 +0000 (22:08 +0000)
table headers.

gdb/ChangeLog
gdb/inferior.c

index d9754e55c2d719d20052ef33fa85c6561c2ee2c6..000b6e80d1a68fe13b361042ba6af587059ef73e 100644 (file)
@@ -1,3 +1,8 @@
+2009-06-05  Tom Tromey  <tromey@redhat.com>
+
+       * inferior.c (print_inferior): Make a table, not a list.  Emit
+       table headers.
+
 2009-06-10  Jonas Maebe  <jonas.maebe@elis.ugent.be>
 
        * darwin-nat.c (darwin_stop_inferior): Pass 0 as options to
index 723006b43f2921fd51663838e462e3ab2376f34a..a99a3be16718808d92c5d67eef09c730951486d9 100644 (file)
@@ -302,8 +302,31 @@ print_inferior (struct ui_out *uiout, int requested_inferior)
 {
   struct inferior *inf;
   struct cleanup *old_chain;
+  int inf_count = 0;
 
-  old_chain = make_cleanup_ui_out_list_begin_end (uiout, "inferiors");
+  /* Compute number of inferiors we will print.  */
+  for (inf = inferior_list; inf; inf = inf->next)
+    {
+      struct cleanup *chain2;
+
+      if (requested_inferior != -1 && inf->num != requested_inferior)
+       continue;
+
+      ++inf_count;
+    }
+
+  if (inf_count == 0)
+    {
+      ui_out_message (uiout, 0, "No inferiors.\n");
+      return;
+    }
+
+  old_chain = make_cleanup_ui_out_table_begin_end (uiout, 3, inf_count,
+                                                  "inferiors");
+  ui_out_table_header (uiout, 3, ui_right, "current", "Cur");
+  ui_out_table_header (uiout, 4, ui_right, "id", "Id");
+  ui_out_table_header (uiout, 7, ui_right, "target-id", "PID");
+  ui_out_table_body (uiout);
 
   for (inf = inferior_list; inf; inf = inf->next)
     {
@@ -315,12 +338,11 @@ print_inferior (struct ui_out *uiout, int requested_inferior)
       chain2 = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
 
       if (inf->pid == ptid_get_pid (inferior_ptid))
-       ui_out_text (uiout, "* ");
+       ui_out_field_string (uiout, "current", "*");
       else
-       ui_out_text (uiout, "  ");
+       ui_out_field_skip (uiout, "current");
 
       ui_out_field_int (uiout, "id", inf->num);
-      ui_out_text (uiout, " ");
       ui_out_field_int (uiout, "target-id", inf->pid);
 
       ui_out_text (uiout, "\n");