2005-02-10 Andrew Cagney <cagney@gnu.org>
authorAndrew Cagney <cagney@redhat.com>
Thu, 10 Feb 2005 15:24:37 +0000 (15:24 +0000)
committerAndrew Cagney <cagney@redhat.com>
Thu, 10 Feb 2005 15:24:37 +0000 (15:24 +0000)
* cli/cli-setshow.c (do_setshow_command): Move code printing the
value to the end of the function.  Handle MI and non-MI output
differently.

gdb/ChangeLog
gdb/cli/cli-setshow.c

index 7ced88534be06e3e2db522ae8bd010639be09046..cb777075a8e37bf82f163c234e7202d4de432294 100644 (file)
@@ -1,3 +1,9 @@
+2005-02-10  Andrew Cagney  <cagney@gnu.org>
+
+       * cli/cli-setshow.c (do_setshow_command): Move code printing the
+       value to the end of the function.  Handle MI and non-MI output
+       differently.
+
 2005-02-09  Andrew Cagney  <cagney@gnu.org>
 
        * cli/cli-decode.c (add_setshow_enum_cmd): Drop set_result and
index cf87cf6161bbd13e5e6d0786c4d311dcd42161c8..73e47a4348ff873797615a1a32e20c2e10bb6c18 100644 (file)
@@ -266,11 +266,6 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
       if (c->pre_show_hook)
        (c->pre_show_hook) (c);
 
-      /* Print doc minus "show" at start.  */
-      print_doc_line (gdb_stdout, c->doc + 5);
-
-      ui_out_text (uiout, " is ");
-      ui_out_wrap_hint (uiout, "    ");
       quote = 0;
       switch (c->var_type)
        {
@@ -333,12 +328,30 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
        default:
          error ("gdb internal error: bad var_type in do_setshow_command");
        }
-      if (quote)
-       ui_out_text (uiout, "\"");
-      ui_out_field_stream (uiout, "value", stb);
-      if (quote)
-       ui_out_text (uiout, "\"");
-      ui_out_text (uiout, ".\n");
+
+
+      /* FIXME: cagney/2005-02-10: Need to split this in half: code to
+        convert the value into a string (esentially the above); and
+        code to print the value out.  For the latter there should be
+        MI and CLI specific versions.  */
+
+      if (ui_out_is_mi_like_p (uiout))
+       ui_out_field_stream (uiout, "value", stb);
+      else
+       {
+         /* Print doc minus "show" at start.  */
+         print_doc_line (gdb_stdout, c->doc + 5);
+
+         ui_out_text (uiout, " is ");
+         ui_out_wrap_hint (uiout, "    ");
+         if (quote)
+           ui_out_text (uiout, "\"");
+         ui_out_field_stream (uiout, "value", stb);
+         if (quote)
+           ui_out_text (uiout, "\"");
+         ui_out_text (uiout, ".\n");
+         do_cleanups (old_chain);
+       }
       do_cleanups (old_chain);
     }
   else