2005-02-11 Andrew Cagney <cagney@gnu.org>
[deliverable/binutils-gdb.git] / gdb / cli / cli-setshow.c
index 64a0d7353a2c9d7e7b904c1f84f75e0efe529cf8..b0c0acdea4dfa6be35241faa4e94739ffa84bbfe 100644 (file)
@@ -18,7 +18,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
-#include <readline/tilde.h>
+#include "readline/tilde.h"
 #include "value.h"
 #include <ctype.h>
 #include "gdb_string.h"
@@ -56,7 +56,7 @@ parse_auto_binary_operation (const char *arg)
               || (strncmp (arg, "-1", length) == 0 && length > 1))
        return AUTO_BOOLEAN_AUTO;
     }
-  error ("\"on\", \"off\" or \"auto\" expected.");
+  error (_("\"on\", \"off\" or \"auto\" expected."));
   return AUTO_BOOLEAN_AUTO; /* pacify GCC */
 }
 
@@ -85,7 +85,7 @@ parse_binary_operation (char *arg)
     return 0;
   else
     {
-      error ("\"on\" or \"off\" expected.");
+      error (_("\"on\" or \"off\" expected."));
       return 0;
     }
 }
@@ -156,7 +156,7 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
          break;
        case var_filename:
          if (arg == NULL)
-           error_no_arg ("filename to set it to.");
+           error_no_arg (_("filename to set it to."));
          if (*(char **) c->var != NULL)
            xfree (*(char **) c->var);
          *(char **) c->var = tilde_expand (arg);
@@ -169,7 +169,7 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
          break;
        case var_uinteger:
          if (arg == NULL)
-           error_no_arg ("integer to set it to.");
+           error_no_arg (_("integer to set it to."));
          *(unsigned int *) c->var = parse_and_eval_long (arg);
          if (*(unsigned int *) c->var == 0)
            *(unsigned int *) c->var = UINT_MAX;
@@ -178,19 +178,19 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
          {
            unsigned int val;
            if (arg == NULL)
-             error_no_arg ("integer to set it to.");
+             error_no_arg (_("integer to set it to."));
            val = parse_and_eval_long (arg);
            if (val == 0)
              *(int *) c->var = INT_MAX;
            else if (val >= INT_MAX)
-             error ("integer %u out of range", val);
+             error (_("integer %u out of range"), val);
            else
              *(int *) c->var = val;
            break;
          }
        case var_zinteger:
          if (arg == NULL)
-           error_no_arg ("integer to set it to.");
+           error_no_arg (_("integer to set it to."));
          *(int *) c->var = parse_and_eval_long (arg);
          break;
        case var_enum:
@@ -213,7 +213,7 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
                    strcat (msg, c->enums[i]);
                  }
                strcat (msg, ".");
-               error ("%s", msg);
+               error (("%s"), msg);
              }
 
            p = strchr (arg, ' ');
@@ -241,16 +241,16 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
                }
 
            if (nmatches <= 0)
-             error ("Undefined item: \"%s\".", arg);
+             error (_("Undefined item: \"%s\"."), arg);
 
            if (nmatches > 1)
-             error ("Ambiguous item \"%s\".", arg);
+             error (_("Ambiguous item \"%s\"."), arg);
 
            *(const char **) c->var = match;
          }
          break;
        default:
-         error ("gdb internal error: bad var_type in do_setshow_command");
+         error (_("gdb internal error: bad var_type in do_setshow_command"));
        }
     }
   else if (c->type == show_cmd)
@@ -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)
        {
@@ -307,7 +302,7 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
              break;
            default:
              internal_error (__FILE__, __LINE__,
-                             "do_setshow_command: invalid var_auto_boolean");
+                             _("do_setshow_command: invalid var_auto_boolean"));
              break;
            }
          break;
@@ -331,21 +326,47 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
          break;
 
        default:
-         error ("gdb internal error: bad var_type in do_setshow_command");
+         error (_("gdb internal error: bad var_type in do_setshow_command"));
+       }
+
+
+      /* 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 if (c->fprint_setshow != NULL)
+       {
+         long length;
+         char *value = ui_file_xstrdup (stb->stream, &length);
+         make_cleanup (xfree, value);
+         c->fprint_setshow (c, gdb_stdout, value);
+         fprintf_filtered (gdb_stdout, "\n");
+       }
+      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);
        }
-      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);
     }
   else
-    error ("gdb internal error: bad cmd_type in do_setshow_command");
+    error (_("gdb internal error: bad cmd_type in do_setshow_command"));
   c->func (c, NULL, from_tty);
-  if (c->type == set_cmd && set_hook)
-    set_hook (c);
+  if (c->type == set_cmd && deprecated_set_hook)
+    deprecated_set_hook (c);
 }
 
 /* Show all the settings in a list of show commands.  */
@@ -364,8 +385,10 @@ cmd_show_list (struct cmd_list_element *list, int from_tty, char *prefix)
        {
          struct cleanup *optionlist_chain
            = make_cleanup_ui_out_tuple_begin_end (uiout, "optionlist");
-         ui_out_field_string (uiout, "prefix", list->prefixname + 5);
-         cmd_show_list (*list->prefixlist, from_tty, list->prefixname + 5);
+         char *new_prefix = strstr (list->prefixname, "show ") + 5;
+         if (ui_out_is_mi_like_p (uiout))
+           ui_out_field_string (uiout, "prefix", new_prefix);
+         cmd_show_list (*list->prefixlist, from_tty, new_prefix);
          /* Close the tuple.  */
          do_cleanups (optionlist_chain);
        }
This page took 0.032996 seconds and 4 git commands to generate.