From 899506a887012d40285dfbadfe6991442d1aead9 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Thu, 10 Feb 2005 15:24:37 +0000 Subject: [PATCH] 2005-02-10 Andrew Cagney * 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 | 6 ++++++ gdb/cli/cli-setshow.c | 35 ++++++++++++++++++++++++----------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7ced88534be..cb777075a8e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2005-02-10 Andrew Cagney + + * 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 * cli/cli-decode.c (add_setshow_enum_cmd): Drop set_result and diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c index cf87cf6161b..73e47a4348f 100644 --- a/gdb/cli/cli-setshow.c +++ b/gdb/cli/cli-setshow.c @@ -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 -- 2.30.2