This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RFA: Convert to add_setshow_cmd


This patch changes gdb to use add_setshow_cmd everywhere it used to
use add_show_from_set.  This patch actually consists of several
different parts.  I couldn't think of a simple way to separate the
parts that didn't involve a lot of redundant work on my part.  I've
already done several passes over the source; the thought of more is
unpalatable.  Though more are in my future :-(

* Add a new `print doc' argument to add_setshow_cmd.
  This is used to format the `show foo' output

* Add a corresponding field to struct cmd_list_element

* Update test suite to reflect (minor) changes to gdb's output

* Removed set_verbose function.  It was easier to remove than to fix,
  and anyway the joke is stale now.

* Added add_setshow_enum_cmd, updated all callers

* Added argument to add_setshow_auto_boolean_cmd and
  add_setshow_boolean_cmd.  This is the `print doc' argument as with
  add_setshow_cmd.  Updated all callers.

In some of the appended, all the strings in a given file are marked.
I can try to back out that part of the patch if you'd prefer to review
those changes separately.

This runs the gdb test suite on my box (x86 Red Hat Linux 7.3) with no
regressions.  It also compiles with -Werror enabled.  I've only built
the native configuration.

Once this goes in my plan is to remove add_show_from_set entirely.

Comments?  Critiques?  Questions?  Ok to commit?

Tom

Index: ChangeLog
from  Tom Tromey  <tromey@redhat.com>

	* command.h (add_setshow_auto_boolean_cmd,
	add_setshow_boolean_cmd): Updated declarations.
	(add_setshow_enum_cmd): Declare.
	* cli/cli-setshow.c (do_setshow_command): Translate and print
	`print_doc' string.
	* cli/cli-decode.c (add_cmd): Initialize print_doc.
	(add_setshow_cmd_full): Likewise.
	(add_setshow_auto_boolean_cmd): Added
	`print_doc' argument.
	(add_setshow_boolean_cmd): Likewise.
	(add_setshow_enum_cmd): New function.
	* cli/cli-decode.h (struct cmd_list_element) [print_doc]: New
	field.
	* ada-lang.c (_initialize_ada_language): Use add_setshow_cmd.
	* xcoffsolib.c (_initialize_xcoffsolib): Use add_setshow_cmd.
	* wince.c (_initialize_inftarg): Use add_setshow_cmd.
	* win32-nat.c (_initialize_inftarg): Use add_setshow_cmd.
	* varobj.c (_initialize_varobj): Use add_setshow_cmd.
	* valprint.c (_initialize_valprint): Use add_setshow_cmd.
	* valops.c (_initialize_valops): Use add_setshow_cmd.
	* utils.c (initialize_utils): Use add_setshow_cmd.
	* symfile.c (_initialize_symfile): Use add_setshow_cmd.
	* source.c (_initialize_source): Use add_setshow_cmd.
	* somsolib.c (_initialize_som_solib): Use add_setshow_cmd.
	* top.c (init_main): Use add_setshow_cmd.
	(set_verbose): Removed.
	* serial.c (_initialize_serial): Use add_setshow_cmd.
	* ser-go32.c (_initialize_ser_dos): Use add_setshow_cmd.
	* remote.c (_initialize_remote): Use add_setshow_cmd.
	Mark all strings with _() or N_().
	* remote-utils.c (_initialize_sr_support): Use add_setshow_cmd.
	* remote-sds.c (_initialize_remote_sds): Use add_setshow_cmd.
	* remote-os9k.c (_initialize_remote_os9k): Use add_setshow_cmd.
	* remote-nrom.c (_initialize_remote_nrom): Use add_setshow_cmd.
	* remote-mips.c (_initialize_remote_mips): Use add_setshow_cmd.
	* remote-bug.c (_initialize_remote_bug): Use add_setshow_cmd.
	* remote-e7000.c (_initialize_remote_e7000): Use add_setshow_cmd.
	* proc-api.c (_initialize_proc_api): Use add_setshow_cmd.
	* printcmd.c (_initialize_printcmd): Use add_setshow_cmd.
	* parse.c (_initialize_parse): Use add_setshow_cmd.
	* pa64solib.c (_initialize_pa64_solib): Use add_setshow_cmd.
	* p-valprint.c (_initialize_pascal_valprint): Use add_setshow_cmd.
	* osfsolib.c (_initialize_solib): Use add_setshow_cmd.
	* ocd.c (_initialize_remote_ocd): Use add_setshow_cmd.
	* monitor.c (_initialize_remote_monitors): Use add_setshow_cmd.
	* mips-tdep.c (_initialize_mips_tdep): Use add_setshow_cmd.
	* mcore-tdep.c (_initialize_mcore_tdep): Use add_setshow_cmd.
	* maint.c (_initialize_maint_cmds): Use add_setshow_cmd.
	* solib.c (_initialize_solib): Use add_setshow_cmd.
	Mark all strings with _() or N_().
	* m32r-rom.c (_initialize_m32r_rom): Use add_setshow_cmd.
	* lin-lwp.c (_initialize_lin_lwp): Use add_setshow_cmd.
	Mark all strings with _() or N_().
	* language.c (_initialize_language): Use add_setshow_cmd.
	* kod.c (_initialize_kod): Use add_setshow_cmd.
	* irix5-nat.c (_initialize_solib): Use add_setshow_cmd.
	* infrun.c (_initialize_infrun): Use add_setshow_cmd.
	* gdbtypes.c (build_gdbtypes): Use add_setshow_cmd.
	(_initialize_gdbtypes): Likewise.
	* gdbarch.c (_initialize_gdbarch): Use add_setshow_cmd.
	* gdb-events.c (_initialize_gdb_events): Use add_setshow_cmd.
	* exec.c (_initialize_exec): Use add_setshow_cmd.
	* dcache.c (_initialize_dcache): Use add_setshow_cmd.
	* d30v-tdep.c (_initialize_d30v_tdep): Use add_setshow_cmd.
	* d10v-tdep.c (_initialize_d10v_tdep): Use add_setshow_cmd.
	* cris-tdep.c (_initialize_cris_tdep): Use add_setshow_cmd.
	* cp-valprint.c (_initialize_cp_valprint): Use add_setshow_cmd.
	* corefile.c (_initialize_core): Use add_setshow_cmd.
	* complaints.c (_initialize_complaints): Use add_setshow_cmd.
	* breakpoint.c (_initialize_breakpoint): Use add_setshow_cmd.
	* arm-tdep.c (_initialize_arm_tdep): Use add_setshow_cmd.
	* arc-tdep.c (_initialize_arc_tdep): Use add_setshow_cmd.
	* alpha-tdep.c (_initialize_alpha_tdep): Use add_setshow_cmd.
	* cli/cli-cmds.c (init_cli_cmds): Use add_setshow_cmd; don't use
	set_verbose.
	(set_verbose): Don't declare.
	* x86-64-tdep.c (_initialize_x86_64_tdep): Updated for new
	add_setshow_enum_cmd.
	* target.c (initialize_targets): Use add_setshow_cmd.
	* remote-vx.c (_initialize_vx): Use add_setshow_cmd.
	* remote-rdi.c (_initialize_remote_rdi): Updated for new
	add_setshow_boolean_cmd.
	* infcmd.c (_initialize_infcmd): Use add_setshow_cmd_full.
	* i386-tdep.c (_initialize_i386_tdep): Use add_setshow_enum_cmd.
	* demangle.c (_initialize_demangler): Use add_setshow_enum_cmd.

Index: command.h
===================================================================
RCS file: /cvs/src/src/gdb/command.h,v
retrieving revision 1.34
diff -u -r1.34 command.h
--- command.h 26 Jun 2002 20:58:16 -0000 1.34
+++ command.h 1 Jul 2002 18:22:46 -0000
@@ -214,6 +214,7 @@
 			     enum command_class class,
 			     var_types var_type, void *var,
 			     char *set_doc, char *show_doc,
+			     char *print_doc,
 			     cmd_sfunc_ftype *set_func,
 			     cmd_sfunc_ftype *show_func,
 			     struct cmd_list_element **set_list,
@@ -223,6 +224,7 @@
 				  enum command_class class,
 				  var_types var_type, void *var,
 				  char *set_doc, char *show_doc,
+				  char *print_doc,
 				  cmd_sfunc_ftype *set_func,
 				  cmd_sfunc_ftype *show_func,
 				  struct cmd_list_element **set_list,
@@ -247,6 +249,7 @@
 					  enum command_class class,
 					  enum auto_boolean *var,
 					  char *set_doc, char *show_doc,
+					  char *print_doc,
 					  cmd_sfunc_ftype *set_func,
 					  cmd_sfunc_ftype *show_func,
 					  struct cmd_list_element **set_list,
@@ -257,10 +260,22 @@
 				     int *var,
 				     char *set_doc,
 				     char *show_doc,
+				     char *print_doc,
 				     cmd_sfunc_ftype *set_func,
 				     cmd_sfunc_ftype *show_func,
 				     struct cmd_list_element **set_list,
 				     struct cmd_list_element **show_list);
+
+extern void add_setshow_enum_cmd (char *name,
+				  enum command_class class,
+				  const char *enumlist[],
+				  const char **var,
+				  char *set_doc, char *show_doc,
+				  char *print_doc,
+				  cmd_sfunc_ftype *set_func,
+				  cmd_sfunc_ftype *show_func,
+				  struct cmd_list_element **set_list,
+				  struct cmd_list_element **show_list);
 
 extern struct cmd_list_element *add_show_from_set (struct cmd_list_element *,
 						   struct cmd_list_element
Index: ada-lang.c
===================================================================
RCS file: /cvs/src/src/gdb/ada-lang.c,v
retrieving revision 1.2
diff -u -r1.2 ada-lang.c
--- ada-lang.c 19 Jun 2002 16:55:28 -0000 1.2
+++ ada-lang.c 1 Jul 2002 18:22:53 -0000
@@ -8440,12 +8440,13 @@
 
   add_language (&ada_language_defn);
 
-  add_show_from_set 
-    (add_set_cmd ("varsize-limit", class_support, var_uinteger,
-		  (char*) &varsize_limit,
-		  "Set maximum bytes in dynamic-sized object.",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("varsize-limit", class_support, var_uinteger,
+		   (char*) &varsize_limit,
+		   N_("Set maximum bytes in dynamic-sized object."),
+		   N_("Show maximum bytes in dynamic-sized object."),
+		   N_("Maximum bytes in dynamic-sized object is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
   varsize_limit = 65536;
 
   add_com ("begin", class_breakpoint, begin_command,
Index: xcoffsolib.c
===================================================================
RCS file: /cvs/src/src/gdb/xcoffsolib.c,v
retrieving revision 1.12
diff -u -r1.12 xcoffsolib.c
--- xcoffsolib.c 9 Feb 2002 18:32:14 -0000 1.12
+++ xcoffsolib.c 1 Jul 2002 18:22:53 -0000
@@ -183,14 +183,15 @@
   add_info ("sharedlibrary", solib_info,
 	    "Status of loaded shared object libraries");
 
-  add_show_from_set
-    (add_set_cmd ("auto-solib-add", class_support, var_boolean,
-		  (char *) &auto_solib_add,
-		  "Set autoloading of shared library symbols.\n\
+  add_setshow_cmd ("auto-solib-add", class_support, var_boolean,
+		   (char *) &auto_solib_add,
+		   N_("Set autoloading of shared library symbols.\n\
 If \"on\", symbols from all shared object libraries will be loaded\n\
 automatically when the inferior begins execution, when the dynamic linker\n\
 informs gdb that a new library has been loaded, or when attaching to the\n\
-inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'.",
-		  &setlist),
-     &showlist);
+inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'."),
+		   N_("Show autoloading of shared library symbols."),
+		   N_("Autoloading of shared library symbols is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: wince.c
===================================================================
RCS file: /cvs/src/src/gdb/wince.c,v
retrieving revision 1.18
diff -u -r1.18 wince.c
--- wince.c 5 Feb 2002 04:37:22 -0000 1.18
+++ wince.c 1 Jul 2002 18:22:54 -0000
@@ -1970,56 +1970,67 @@
   struct cmd_list_element *set;
   init_child_ops ();
 
-  add_show_from_set
-    (add_set_cmd ((char *) "remotedirectory", no_class,
-		  var_string_noescape, (char *) &remote_directory,
-		  (char *) "Set directory for remote upload.\n",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ((char *) "remotedirectory", no_class,
+		   var_string_noescape, (char *) &remote_directory,
+		   N_("Set directory for remote upload."),
+		   N_("Show directory for remote upload."),
+		   N_("Directory for remote upload is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
   remote_directory = xstrdup (remote_directory);
 
-  set = add_set_cmd ((char *) "remoteupload", no_class,
-		     var_string_noescape, (char *) &remote_upload,
-	       (char *) "Set how to upload executables to remote device.\n",
-		     &setlist);
-  add_show_from_set (set, &showlist);
+  set = add_setshow_cmd ((char *) "remoteupload", no_class,
+			 var_string_noescape, (char *) &remote_upload,
+			 N_("Set how to upload executables to remote device.\n"),
+			 N_("Show how to upload executables to remote device."),
+			 N_("How to upload executables to remote device is %s."),
+			 set_cmd, show_cmd,
+			 &setlist, &showlist);
   set_cmd_cfunc (set, set_upload_type);
   set_upload_type (NULL, 0);
 
-  add_show_from_set
-    (add_set_cmd ((char *) "debugexec", class_support, var_boolean,
-		  (char *) &debug_exec,
-	      (char *) "Set whether to display execution in child process.",
-		  &setlist),
-     &showlist);
-
-  add_show_from_set
-    (add_set_cmd ((char *) "remoteaddhost", class_support, var_boolean,
-		  (char *) &remote_add_host,
-		  (char *) "Set whether to add this host to remote stub arguments for\n
-debugging over a network.", &setlist),
-     &showlist);
-
-  add_show_from_set
-    (add_set_cmd ((char *) "debugevents", class_support, var_boolean,
-		  (char *) &debug_events,
-	  (char *) "Set whether to display kernel events in child process.",
-		  &setlist),
-     &showlist);
-
-  add_show_from_set
-    (add_set_cmd ((char *) "debugmemory", class_support, var_boolean,
-		  (char *) &debug_memory,
-	(char *) "Set whether to display memory accesses in child process.",
-		  &setlist),
-     &showlist);
-
-  add_show_from_set
-    (add_set_cmd ((char *) "debugexceptions", class_support, var_boolean,
-		  (char *) &debug_exceptions,
-      (char *) "Set whether to display kernel exceptions in child process.",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ((char *) "debugexec", class_support, var_boolean,
+		   (char *) &debug_exec,
+		   N_("Set whether to display execution in child process."),
+		   N_("Show whether to display execution in child process."),
+		   N_("Whether to display execution in child process is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ((char *) "remoteaddhost", class_support, var_boolean,
+		   (char *) &remote_add_host,
+		   N_("Set whether to add this host to remote stub arguments for\n
+debugging over a network."),
+		   N_("Show whether to add this host to remote stub arguments for\n
+debugging over a network."),
+		   N_("Whether to add this host to remote stub arguments for\n
+debugging over a network is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ((char *) "debugevents", class_support, var_boolean,
+		   (char *) &debug_events,
+		   N_("Set whether to display kernel events in child process."),
+		   N_("Show whether to display kernel events in child process."),
+		   N_("Whether to display kernel events in child process is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ((char *) "debugmemory", class_support, var_boolean,
+		   (char *) &debug_memory,
+		   N_("Set whether to display memory accesses in child process."),
+		   N_("Show whether to display memory accesses in child process."),
+		   N_("Whether to display memory accesses in child process is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ((char *) "debugexceptions", class_support, var_boolean,
+		   (char *) &debug_exceptions,
+		   N_("Set whether to display kernel exceptions in child process."),
+		   N_("Show whether to display kernel exceptions in child process."),
+		   N_("Whether to display kernel exceptions in child process is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
   add_target (&child_ops);
 }
Index: win32-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/win32-nat.c,v
retrieving revision 1.58
diff -u -r1.58 win32-nat.c
--- win32-nat.c 22 Mar 2002 05:03:22 -0000 1.58
+++ win32-nat.c 1 Jul 2002 18:22:57 -0000
@@ -1827,47 +1827,61 @@
 
   add_com_alias ("sharedlibrary", "dll-symbols", class_alias, 1);
 
-  add_show_from_set (add_set_cmd ("shell", class_support, var_boolean,
-				  (char *) &useshell,
-		 "Set use of shell to start subprocess.",
-				  &setlist),
-		     &showlist);
-
-  add_show_from_set (add_set_cmd ("new-console", class_support, var_boolean,
-				  (char *) &new_console,
-		 "Set creation of new console when creating child process.",
-				  &setlist),
-		     &showlist);
-
-  add_show_from_set (add_set_cmd ("new-group", class_support, var_boolean,
-				  (char *) &new_group,
-		   "Set creation of new group when creating child process.",
-				  &setlist),
-		     &showlist);
-
-  add_show_from_set (add_set_cmd ("debugexec", class_support, var_boolean,
-				  (char *) &debug_exec,
-		       "Set whether to display execution in child process.",
-				  &setlist),
-		     &showlist);
-
-  add_show_from_set (add_set_cmd ("debugevents", class_support, var_boolean,
-				  (char *) &debug_events,
-		   "Set whether to display kernel events in child process.",
-				  &setlist),
-		     &showlist);
-
-  add_show_from_set (add_set_cmd ("debugmemory", class_support, var_boolean,
-				  (char *) &debug_memory,
-		 "Set whether to display memory accesses in child process.",
-				  &setlist),
-		     &showlist);
-
-  add_show_from_set (add_set_cmd ("debugexceptions", class_support, var_boolean,
-				  (char *) &debug_exceptions,
-	       "Set whether to display kernel exceptions in child process.",
-				  &setlist),
-		     &showlist);
+  add_setshow_cmd ("shell", class_support, var_boolean,
+		   (char *) &useshell,
+		   N_("Set use of shell to start subprocess."),
+		   N_("Show use of shell to start subprocess."),
+		   N_("Use of shell to start subprocess is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("new-console", class_support, var_boolean,
+		   (char *) &new_console,
+		   N_("Set creation of new console when creating child process."),
+		   N_("Show creation of new console when creating child process."),
+		   N_("Creation of new console when creating child process is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("new-group", class_support, var_boolean,
+		   (char *) &new_group,
+		   N_("Set creation of new group when creating child process."),
+		   N_("Show creation of new group when creating child process."),
+		   N_("Creation of new group when creating child process is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("debugexec", class_support, var_boolean,
+		   (char *) &debug_exec,
+		   N_("Set whether to display execution in child process."),
+		   N_("Show whether to display execution in child process."),
+		   N_("Whether to display execution in child process is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("debugevents", class_support, var_boolean,
+		   (char *) &debug_events,
+		   N_("Set whether to display kernel events in child process."),
+		   N_("Show whether to display kernel events in child process."),
+		   N_("Whether to display kernel events in child process is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("debugmemory", class_support, var_boolean,
+		   (char *) &debug_memory,
+		   N_("Set whether to display memory accesses in child process."),
+		   N_("Show whether to display memory accesses in child process."),
+		   N_("Whether to display memory accesses in child process is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("debugexceptions", class_support, var_boolean,
+		   (char *) &debug_exceptions,
+		   N_("Set whether to display kernel exceptions in child process."),
+		   N_("Show whether to display kernel exceptions in child process."),
+		   N_("Whether to display kernel exceptions in child process is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_info ("dll", info_dll_command, "Status of loaded DLLs.");
   add_info_alias ("sharedlibrary", "dll", 1);
Index: varobj.c
===================================================================
RCS file: /cvs/src/src/gdb/varobj.c,v
retrieving revision 1.29
diff -u -r1.29 varobj.c
--- varobj.c 15 Jun 2002 18:45:31 -0000 1.29
+++ varobj.c 1 Jul 2002 18:22:58 -0000
@@ -2490,7 +2490,12 @@
   varobj_table = xmalloc (sizeof_table);
   memset (varobj_table, 0, sizeof_table);
 
-  add_show_from_set (add_set_cmd ("debugvarobj", class_maintenance, var_zinteger, (char *) &varobjdebug, "Set varobj debugging.\n\
-When non-zero, varobj debugging is enabled.", &setlist),
-		     &showlist);
+  add_setshow_cmd ("debugvarobj", class_maintenance,
+		   var_zinteger, (char *) &varobjdebug,
+		   N_("Set varobj debugging.\n\
+When non-zero, varobj debugging is enabled."),
+		   N_("Show varobj debugging."),
+		   N_("Varobj debugging is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/valprint.c,v
retrieving revision 1.26
diff -u -r1.26 valprint.c
--- valprint.c 4 May 2002 20:57:51 -0000 1.26
+++ valprint.c 1 Jul 2002 18:23:00 -0000
@@ -1339,67 +1339,76 @@
   add_alias_cmd ("p", "print", no_class, 1, &showlist);
   add_alias_cmd ("pr", "print", no_class, 1, &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("elements", no_class, var_uinteger, (char *) &print_max,
-		  "Set limit on string chars or array elements to print.\n\
-\"set print elements 0\" causes there to be no limit.",
-		  &setprintlist),
-     &showprintlist);
-
-  add_show_from_set
-    (add_set_cmd ("null-stop", no_class, var_boolean,
-		  (char *) &stop_print_at_null,
-		  "Set printing of char arrays to stop at first null char.",
-		  &setprintlist),
-     &showprintlist);
-
-  add_show_from_set
-    (add_set_cmd ("repeats", no_class, var_uinteger,
-		  (char *) &repeat_count_threshold,
-		  "Set threshold for repeated print elements.\n\
-\"set print repeats 0\" causes all elements to be individually printed.",
-		  &setprintlist),
-     &showprintlist);
-
-  add_show_from_set
-    (add_set_cmd ("pretty", class_support, var_boolean,
-		  (char *) &prettyprint_structs,
-		  "Set prettyprinting of structures.",
-		  &setprintlist),
-     &showprintlist);
-
-  add_show_from_set
-    (add_set_cmd ("union", class_support, var_boolean, (char *) &unionprint,
-		  "Set printing of unions interior to structures.",
-		  &setprintlist),
-     &showprintlist);
-
-  add_show_from_set
-    (add_set_cmd ("array", class_support, var_boolean,
-		  (char *) &prettyprint_arrays,
-		  "Set prettyprinting of arrays.",
-		  &setprintlist),
-     &showprintlist);
-
-  add_show_from_set
-    (add_set_cmd ("address", class_support, var_boolean, (char *) &addressprint,
-		  "Set printing of addresses.",
-		  &setprintlist),
-     &showprintlist);
+  add_setshow_cmd ("elements", no_class, var_uinteger, (char *) &print_max,
+		   N_("Set limit on string chars or array elements to print.\n\
+\"set print elements 0\" causes there to be no limit."),
+		   N_("Show limit on string chars or array elements to print."),
+		   N_("Limit on string chars or array elements to print is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
+
+  add_setshow_cmd ("null-stop", no_class, var_boolean,
+		   (char *) &stop_print_at_null,
+		   N_("Set printing of char arrays to stop at first null char."),
+		   N_("Show printing of char arrays to stop at first null char."),
+		   N_("Printing of char arrays to stop at first null char is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
+
+  add_setshow_cmd ("repeats", no_class, var_uinteger,
+		   (char *) &repeat_count_threshold,
+		   N_("Set threshold for repeated print elements.\n\
+\"set print repeats 0\" causes all elements to be individually printed."),
+		   N_("Show threshold for repeated print elements."),
+		   N_("Threshold for repeated print elements is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
+
+  add_setshow_cmd ("pretty", class_support, var_boolean,
+		   (char *) &prettyprint_structs,
+		   N_("Set prettyprinting of structures."),
+		   N_("Show prettyprinting of structures."),
+		   N_("Prettyprinting of structures is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
+
+  add_setshow_cmd ("union", class_support, var_boolean, (char *) &unionprint,
+		   N_("Set printing of unions interior to structures."),
+		   N_("Show printing of unions interior to structures."),
+		   N_("Printing of unions interior to structures is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
+
+  add_setshow_cmd ("array", class_support, var_boolean,
+		   (char *) &prettyprint_arrays,
+		   N_("Set prettyprinting of arrays."),
+		   N_("Show prettyprinting of arrays."),
+		   N_("Prettyprinting of arrays is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
+
+  add_setshow_cmd ("address", class_support, var_boolean, (char *) &addressprint,
+		   N_("Set printing of addresses."),
+		   N_("Show printing of addresses."),
+		   N_("Printing of addresses is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
 
-  c = add_set_cmd ("input-radix", class_support, var_uinteger,
+  add_setshow_cmd ("input-radix", class_support, var_uinteger,
 		   (char *) &input_radix,
-		   "Set default input radix for entering numbers.",
-		   &setlist);
-  add_show_from_set (c, &showlist);
-  set_cmd_sfunc (c, set_input_radix);
+		   N_("Set default input radix for entering numbers."),
+		   N_("Show default input radix for entering numbers."),
+		   N_("Default input radix for entering numbers is %s."),
+		   set_input_radix, NULL,
+		   &setlist, &showlist);
 
-  c = add_set_cmd ("output-radix", class_support, var_uinteger,
+  add_setshow_cmd ("output-radix", class_support, var_uinteger,
 		   (char *) &output_radix,
-		   "Set default output radix for printing of values.",
-		   &setlist);
-  add_show_from_set (c, &showlist);
-  set_cmd_sfunc (c, set_output_radix);
+		   N_("Set default output radix for printing of values."),
+		   N_("Show default output radix for printing of values."),
+		   N_("Default output radix for printing of values is %s."),
+		   set_output_radix, NULL,
+		   &setlist, &showlist);
 
   /* The "set radix" and "show radix" commands are special in that they are
      like normal set and show commands but allow two normally independent
Index: valops.c
===================================================================
RCS file: /cvs/src/src/gdb/valops.c,v
retrieving revision 1.61
diff -u -r1.61 valops.c
--- valops.c 18 Jun 2002 23:41:02 -0000 1.61
+++ valops.c 1 Jul 2002 18:23:05 -0000
@@ -3410,27 +3410,32 @@
 _initialize_valops (void)
 {
 #if 0
-  add_show_from_set
-    (add_set_cmd ("abandon", class_support, var_boolean, (char *) &auto_abandon,
-		  "Set automatic abandonment of expressions upon failure.",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("abandon", class_support, var_boolean, (char *) &auto_abandon,
+		   N_("Set automatic abandonment of expressions upon failure."),
+		   N_("Show automatic abandonment of expressions upon failure."),
+		   N_("Automatic abandonment of expressions upon failure is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 #endif
 
-  add_show_from_set
-    (add_set_cmd ("overload-resolution", class_support, var_boolean, (char *) &overload_resolution,
-		  "Set overload resolution in evaluating C++ functions.",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("overload-resolution", class_support,
+		   var_boolean, (char *) &overload_resolution,
+		   N_("Set overload resolution in evaluating C++ functions."),
+		   N_("Show overload resolution in evaluating C++ functions."),
+		   N_("Overload resolution in evaluating C++ functions is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
   overload_resolution = 1;
 
-  add_show_from_set (
-  add_set_cmd ("unwindonsignal", no_class, var_boolean,
-	       (char *) &unwind_on_signal_p,
-"Set unwinding of stack if a signal is received while in a call dummy.\n\
+  add_setshow_cmd ("unwindonsignal", no_class, var_boolean,
+		   (char *) &unwind_on_signal_p,
+		   N_("Set unwinding of stack if a signal is received while in a call dummy.\n\
 The unwindonsignal lets the user determine what gdb should do if a signal\n\
 is received while in a function called from gdb (call dummy).  If set, gdb\n\
 unwinds the stack and restore the context to what as it was before the call.\n\
-The default is to stop in the frame where the signal was received.", &setlist),
-		     &showlist);
+The default is to stop in the frame where the signal was received."),
+		   N_("Show unwinding of stack if a signal is received while in a call dummy."),
+		   N_("Unwinding of stack if a signal is received while in a call dummy is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: utils.c
===================================================================
RCS file: /cvs/src/src/gdb/utils.c,v
retrieving revision 1.72
diff -u -r1.72 utils.c
--- utils.c 5 Apr 2002 16:39:11 -0000 1.72
+++ utils.c 1 Jul 2002 18:23:22 -0000
@@ -2246,18 +2246,22 @@
 {
   struct cmd_list_element *c;
 
-  c = add_set_cmd ("width", class_support, var_uinteger,
-		   (char *) &chars_per_line,
-		   "Set number of characters gdb thinks are in a line.",
-		   &setlist);
-  add_show_from_set (c, &showlist);
-  set_cmd_sfunc (c, set_width_command);
-
-  add_show_from_set
-    (add_set_cmd ("height", class_support,
-		  var_uinteger, (char *) &lines_per_page,
-		  "Set number of lines gdb thinks are in a page.", &setlist),
-     &showlist);
+  add_setshow_cmd_full ("width", class_support, var_uinteger,
+			(char *) &chars_per_line,
+			N_("Set number of characters gdb thinks are in a line."),
+			N_("Show number of characters gdb thinks are in a line."),
+			N_("Number of characters gdb thinks are in a line is %s."),
+			set_width_command, NULL,
+			&setlist, &showlist,
+			&c, NULL);
+
+  add_setshow_cmd ("height", class_support,
+		   var_uinteger, (char *) &lines_per_page,
+		   N_("Set number of lines gdb thinks are in a page."),
+		   N_("Show number of lines gdb thinks are in a page."),
+		   N_("Number of lines gdb thinks are in a page is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   init_page_info ();
 
@@ -2267,18 +2271,21 @@
 
   set_width_command ((char *) NULL, 0, c);
 
-  add_show_from_set
-    (add_set_cmd ("demangle", class_support, var_boolean,
-		  (char *) &demangle,
-	     "Set demangling of encoded C++ names when displaying symbols.",
-		  &setprintlist),
-     &showprintlist);
-
-  add_show_from_set
-    (add_set_cmd ("pagination", class_support,
-		  var_boolean, (char *) &pagination_enabled,
-		  "Set state of pagination.", &setlist),
-     &showlist);
+  add_setshow_cmd ("demangle", class_support, var_boolean,
+		   (char *) &demangle,
+		   N_("Set demangling of encoded C++ names when displaying symbols."),
+		   N_("Show demangling of encoded C++ names when displaying symbols."),
+		   N_("Demangling of encoded C++ names when displaying symbols is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
+
+  add_setshow_cmd ("pagination", class_support,
+		   var_boolean, (char *) &pagination_enabled,
+		   N_("Set state of pagination."),
+		   N_("Show state of pagination."),
+		   N_("State of pagination is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   if (xdb_commands)
     {
@@ -2288,19 +2295,21 @@
 	       "Disable pagination");
     }
 
-  add_show_from_set
-    (add_set_cmd ("sevenbit-strings", class_support, var_boolean,
-		  (char *) &sevenbit_strings,
-		  "Set printing of 8-bit characters in strings as \\nnn.",
-		  &setprintlist),
-     &showprintlist);
-
-  add_show_from_set
-    (add_set_cmd ("asm-demangle", class_support, var_boolean,
-		  (char *) &asm_demangle,
-		  "Set demangling of C++ names in disassembly listings.",
-		  &setprintlist),
-     &showprintlist);
+  add_setshow_cmd ("sevenbit-strings", class_support, var_boolean,
+		   (char *) &sevenbit_strings,
+		   N_("Set printing of 8-bit characters in strings as \\nnn."),
+		   N_("Show printing of 8-bit characters in strings as \\nnn."),
+		   N_("Printing of 8-bit characters in strings as \\nnn is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
+
+  add_setshow_cmd ("asm-demangle", class_support, var_boolean,
+		   (char *) &asm_demangle,
+		   N_("Set demangling of C++ names in disassembly listings."),
+		   N_("Show demangling of C++ names in disassembly listings."),
+		   N_("Demangling of C++ names in disassembly listings is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
 }
 
 /* Machine specific function to handle SIGWINCH signal. */
Index: symfile.c
===================================================================
RCS file: /cvs/src/src/gdb/symfile.c,v
retrieving revision 1.62
diff -u -r1.62 symfile.c
--- symfile.c 15 May 2002 21:19:20 -0000 1.62
+++ symfile.c 1 Jul 2002 18:23:28 -0000
@@ -3295,12 +3295,13 @@
 for access from GDB.", &cmdlist);
   set_cmd_completer (c, filename_completer);
 
-  add_show_from_set
-    (add_set_cmd ("symbol-reloading", class_support, var_boolean,
-		  (char *) &symbol_reloading,
-	    "Set dynamic symbol table reloading multiple times in one run.",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("symbol-reloading", class_support, var_boolean,
+		   (char *) &symbol_reloading,
+		   N_("Set dynamic symbol table reloading multiple times in one run."),
+		   N_("Show dynamic symbol table reloading multiple times in one run."),
+		   N_("Dynamic symbol table reloading multiple times in one run is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_prefix_cmd ("overlay", class_support, overlay_command,
 		  "Commands for debugging overlays.", &overlaylist,
@@ -3339,15 +3340,16 @@
   add_info ("extensions", info_ext_lang_command,
 	    "All filename extensions associated with a source language.");
 
-  add_show_from_set
-    (add_set_cmd ("download-write-size", class_obscure,
-		  var_integer, (char *) &download_write_size,
-		  "Set the write size used when downloading a program.\n"
-		  "Only used when downloading a program onto a remote\n"
-		  "target. Specify zero, or a negative value, to disable\n"
-		  "blocked writes. The actual size of each transfer is also\n"
-		  "limited by the size of the target packet and the memory\n"
-		  "cache.\n",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("download-write-size", class_obscure,
+		   var_integer, (char *) &download_write_size,
+		   N_("Set the write size used when downloading a program.\n"
+		   "Only used when downloading a program onto a remote\n"
+		   "target. Specify zero, or a negative value, to disable\n"
+		   "blocked writes. The actual size of each transfer is also\n"
+		   "limited by the size of the target packet and the memory\n"
+		   "cache.\n"),
+		   N_("Show the write size used when downloading a program."),
+		   N_("The write size used when downloading a program is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: source.c
===================================================================
RCS file: /cvs/src/src/gdb/source.c,v
retrieving revision 1.29
diff -u -r1.29 source.c
--- source.c 11 Jun 2002 20:36:51 -0000 1.29
+++ source.c 1 Jul 2002 18:23:30 -0000
@@ -1685,10 +1685,11 @@
   if (dbx_commands)
     add_com_alias ("file", "list", class_files, 1);
 
-  add_show_from_set
-    (add_set_cmd ("listsize", class_support, var_uinteger,
-		  (char *) &lines_to_list,
-		  "Set number of source lines gdb will list by default.",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("listsize", class_support, var_uinteger,
+		   (char *) &lines_to_list,
+		   N_("Set number of source lines gdb will list by default."),
+		   N_("Show number of source lines gdb will list by default."),
+		   N_("Number of source lines gdb will list by default is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: somsolib.c
===================================================================
RCS file: /cvs/src/src/gdb/somsolib.c,v
retrieving revision 1.19
diff -u -r1.19 somsolib.c
--- somsolib.c 8 Jun 2002 20:02:51 -0000 1.19
+++ somsolib.c 1 Jul 2002 18:23:32 -0000
@@ -1573,26 +1573,28 @@
   add_info ("sharedlibrary", som_sharedlibrary_info_command,
 	    "Status of loaded shared object libraries.");
 
-  add_show_from_set
-    (add_set_cmd ("auto-solib-add", class_support, var_boolean,
-		  (char *) &auto_solib_add,
-		  "Set autoloading of shared library symbols.\n\
+  add_setshow_cmd ("auto-solib-add", class_support, var_boolean,
+		   (char *) &auto_solib_add,
+		   N_("Set autoloading of shared library symbols.\n\
 If \"on\", symbols from all shared object libraries will be loaded\n\
 automatically when the inferior begins execution, when the dynamic linker\n\
 informs gdb that a new library has been loaded, or when attaching to the\n\
-inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'.",
-		  &setlist),
-     &showlist);
+inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'."),
+		   N_("Show autoloading of shared library symbols."),
+		   N_("Autoloading of shared library symbols is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("auto-solib-limit", class_support, var_zinteger,
-		  (char *) &auto_solib_limit,
-		  "Set threshold (in Mb) for autoloading shared library symbols.\n\
+  add_setshow_cmd ("auto-solib-limit", class_support, var_zinteger,
+		   (char *) &auto_solib_limit,
+		   N_("Set threshold (in Mb) for autoloading shared library symbols.\n\
 When shared library autoloading is enabled, new libraries will be loaded\n\
 only until the total size of shared library symbols exceeds this\n\
-threshold in megabytes.  Is ignored when using `sharedlibrary'.",
-		  &setlist),
-     &showlist);
+threshold in megabytes.  Is ignored when using `sharedlibrary'."),
+		   N_("Show threshold (in Mb) for autoloading shared library symbols."),
+		   N_("Threshold (in Mb) for autoloading shared library symbols is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   /* ??rehrauer: On HP-UX, the kernel parameter MAXDSIZ limits how
      much data space a process can use.  We ought to be reading
Index: top.c
===================================================================
RCS file: /cvs/src/src/gdb/top.c,v
retrieving revision 1.62
diff -u -r1.62 top.c
--- top.c 23 Apr 2002 03:00:57 -0000 1.62
+++ top.c 1 Jul 2002 18:23:38 -0000
@@ -1817,28 +1817,6 @@
 
 int info_verbose = 0;		/* Default verbose msgs off */
 
-/* Called by do_setshow_command.  An elaborate joke.  */
-/* ARGSUSED */
-void
-set_verbose (char *args, int from_tty, struct cmd_list_element *c)
-{
-  char *cmdname = "verbose";
-  struct cmd_list_element *showcmd;
-
-  showcmd = lookup_cmd_1 (&cmdname, showlist, NULL, 1);
-
-  if (info_verbose)
-    {
-      c->doc = "Set verbose printing of informational messages.";
-      showcmd->doc = "Show verbose printing of informational messages.";
-    }
-  else
-    {
-      c->doc = "Set verbosity.";
-      showcmd->doc = "Show verbosity.";
-    }
-}
-
 /* Init the history buffer.  Note that we are called after the init file(s)
  * have been read so that the user can change the history file via his
  * .gdbinit file (for instance).  The GDBHISTFILE environment variable
@@ -1931,27 +1909,32 @@
      gdb. */
   if (!event_loop_p)
     {
-      add_show_from_set
-	(add_set_cmd ("prompt", class_support, var_string,
-		      (char *) &gdb_prompt_string, "Set gdb's prompt",
-		      &setlist),
-	 &showlist);
+      add_setshow_cmd ("prompt", class_support, var_string,
+		       (char *) &gdb_prompt_string,
+		       N_("Set gdb's prompt."),
+		       N_("Show gdb's prompt."),
+		       N_("Gdb's prompt is %s."),
+		       NULL, NULL,
+		       &setlist, &showlist);
     }
   else
     {
-      c = add_set_cmd ("prompt", class_support, var_string,
-		       (char *) &new_async_prompt, "Set gdb's prompt",
-		       &setlist);
-      add_show_from_set (c, &showlist);
-      set_cmd_sfunc (c, set_async_prompt);
-    }
-
-  add_show_from_set
-    (add_set_cmd ("prompt-escape-char", class_support, var_zinteger,
-		  (char *) &gdb_prompt_escape,
-		  "Set escape character for formatting of gdb's prompt",
-		  &setlist),
-     &showlist);
+      add_setshow_cmd ("prompt", class_support, var_string,
+		       (char *) &new_async_prompt,
+		       N_("Set gdb's prompt."),
+		       N_("Show gdb's prompt."),
+		       N_("Gdb's prompt is %s."),
+		       set_async_prompt, NULL,
+		       &setlist, &showlist);
+    }
+
+  add_setshow_cmd ("prompt-escape-char", class_support, var_zinteger,
+		   (char *) &gdb_prompt_escape,
+		   N_("Set escape character for formatting of gdb's prompt."),
+		   N_("Show escape character for formatting of gdb's prompt."),
+		   N_("Escape character for formatting of gdb's prompt is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_com ("dont-repeat", class_support, dont_repeat_command, "Don't repeat this command.\n\
 Primarily used inside of user-defined commands that should not be repeated when\n\
@@ -1962,52 +1945,64 @@
      as we make the event loop be the default engine of gdb. */
   if (!event_loop_p)
     {
-      add_show_from_set
-	(add_set_cmd ("editing", class_support, var_boolean, (char *) &command_editing_p,
-		      "Set editing of command lines as they are typed.\n\
+      add_setshow_cmd ("editing", class_support, var_boolean, (char *) &command_editing_p,
+		       N_("Set editing of command lines as they are typed.\n\
 Use \"on\" to enable the editing, and \"off\" to disable it.\n\
 Without an argument, command line editing is enabled.  To edit, use\n\
-EMACS-like or VI-like commands like control-P or ESC.", &setlist),
-	 &showlist);
+EMACS-like or VI-like commands like control-P or ESC."),
+		       N_("Show editing of command lines as they are typed."),
+		       N_("Editing of command lines as they are typed is %s."),
+		       NULL, NULL,
+		       &setlist, &showlist);
     }
   else
     {
-      c = add_set_cmd ("editing", class_support, var_boolean, (char *) &async_command_editing_p,
-		       "Set editing of command lines as they are typed.\n\
+      add_setshow_cmd ("editing", class_support, var_boolean, (char *) &async_command_editing_p,
+		       N_("Set editing of command lines as they are typed.\n\
 Use \"on\" to enable the editing, and \"off\" to disable it.\n\
 Without an argument, command line editing is enabled.  To edit, use\n\
-EMACS-like or VI-like commands like control-P or ESC.", &setlist);
-
-      add_show_from_set (c, &showlist);
-      set_cmd_sfunc (c, set_async_editing_command);
+EMACS-like or VI-like commands like control-P or ESC."),
+		       N_("Show editing of command lines as they are typed."),
+		       N_("Editing of command lines as they are typed is %s."),
+		       set_async_editing_command, NULL,
+		       &setlist, &showlist);
     }
 
-  add_show_from_set
-    (add_set_cmd ("save", no_class, var_boolean, (char *) &write_history_p,
-		  "Set saving of the history record on exit.\n\
+  add_setshow_cmd ("save", no_class, var_boolean, (char *) &write_history_p,
+		   N_("Set saving of the history record on exit.\n\
 Use \"on\" to enable the saving, and \"off\" to disable it.\n\
-Without an argument, saving is enabled.", &sethistlist),
-     &showhistlist);
-
-  c = add_set_cmd ("size", no_class, var_integer, (char *) &history_size,
-		   "Set the size of the command history,\n\
-ie. the number of previous commands to keep a record of.", &sethistlist);
-  add_show_from_set (c, &showhistlist);
-  set_cmd_sfunc (c, set_history_size_command);
-
-  c = add_set_cmd ("filename", no_class, var_filename,
-		   (char *) &history_filename,
-		   "Set the filename in which to record the command history\n\
-(the list of previous commands of which a record is kept).", &sethistlist);
+Without an argument, saving is enabled."),
+		   N_("Show saving of the history record on exit."),
+		   N_("Saving of the history record on exit is %s."),
+		   NULL, NULL,
+		   &sethistlist, &showhistlist);
+
+  add_setshow_cmd ("size", no_class, var_integer, (char *) &history_size,
+		   N_("Set the size of the command history,\n\
+ie. the number of previous commands to keep a record of."),
+		   N_("Show the size of the command history."),
+		   N_("The size of the command history is %s."),
+		   set_history_size_command, NULL,
+		   &sethistlist, &showhistlist);
+
+  add_setshow_cmd_full ("filename", no_class, var_filename,
+			(char *) &history_filename,
+			N_("Set the filename in which to record the command history\n\
+(the list of previous commands of which a record is kept)."),
+			N_("Show the filename in which to record the command history."),
+			N_("The filename in which to record the command history is %s."),
+			NULL, NULL,
+			&sethistlist, &showhistlist,
+			&c, NULL);
   set_cmd_completer (c, filename_completer);
-  add_show_from_set (c, &showhistlist);
 
-  add_show_from_set
-    (add_set_cmd ("confirm", class_support, var_boolean,
-		  (char *) &caution,
-		  "Set whether to confirm potentially dangerous operations.",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("confirm", class_support, var_boolean,
+		   (char *) &caution,
+		   N_("Set whether to confirm potentially dangerous operations."),
+		   N_("Show whether to confirm potentially dangerous operations."),
+		   N_("Whether to confirm potentially dangerous operations is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   /* The set annotate command is different depending whether or not
      the async version is run. NOTE: this difference is going to
@@ -2015,30 +2010,38 @@
      gdb. */
   if (!event_loop_p)
     {
-      c = add_set_cmd ("annotate", class_obscure, var_zinteger,
-		       (char *) &annotation_level, "Set annotation_level.\n\
+      add_setshow_cmd ("annotate", class_obscure, var_zinteger,
+		       (char *) &annotation_level,
+		       N_("Set annotation_level.\n\
 0 == normal;     1 == fullname (for use when running under emacs)\n\
-2 == output annotated suitably for use by programs that control GDB.",
-		       &setlist);
-      c = add_show_from_set (c, &showlist);
+2 == output annotated suitably for use by programs that control GDB."),
+		       N_("Show annotation_level."),
+		       N_("Annotation_level is %s."),
+		       NULL, NULL,
+		       &setlist, &showlist);
     }
   else
     {
-      c = add_set_cmd ("annotate", class_obscure, var_zinteger,
-		       (char *) &annotation_level, "Set annotation_level.\n\
+      add_setshow_cmd ("annotate", class_obscure, var_zinteger,
+		       (char *) &annotation_level,
+		       N_("Set annotation_level.\n\
 0 == normal;     1 == fullname (for use when running under emacs)\n\
-2 == output annotated suitably for use by programs that control GDB.",
-		       &setlist);
-      add_show_from_set (c, &showlist);
-      set_cmd_sfunc (c, set_async_annotation_level);
+2 == output annotated suitably for use by programs that control GDB."),
+		       N_("Show annotation_level."),
+		       N_("Annotation_level is %s."),
+		       set_async_annotation_level, NULL,
+		       &setlist, &showlist);
     }
   if (event_loop_p)
     {
-      add_show_from_set
-	(add_set_cmd ("exec-done-display", class_support, var_boolean, (char *) &exec_done_display_p,
-		      "Set notification of completion for asynchronous execution commands.\n\
-Use \"on\" to enable the notification, and \"off\" to disable it.", &setlist),
-	 &showlist);
+      add_setshow_cmd ("exec-done-display", class_support,
+		       var_boolean, (char *) &exec_done_display_p,
+		       N_("Set notification of completion for asynchronous execution commands.\n\
+Use \"on\" to enable the notification, and \"off\" to disable it."),
+		       N_("Show notification of completion for asynchronous execution commands."),
+		       N_("Notification of completion for asynchronous execution commands is %s."),
+		       NULL, NULL,
+		       &setlist, &showlist);
     }
 }
 
Index: serial.c
===================================================================
RCS file: /cvs/src/src/gdb/serial.c,v
retrieving revision 1.15
diff -u -r1.15 serial.c
--- serial.c 19 Mar 2002 02:51:07 -0000 1.15
+++ serial.c 1 Jul 2002 18:23:38 -0000
@@ -686,27 +686,32 @@
 		  0/*allow-unknown*/,
 		  &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("remotelogfile", no_class,
-		  var_filename, (char *) &serial_logfile,
-		  "Set filename for remote session recording.\n\
+  add_setshow_cmd ("remotelogfile", no_class,
+		   var_filename, (char *) &serial_logfile,
+		   N_("Set filename for remote session recording.\n\
 This file is used to record the remote session for future playback\n\
-by gdbserver.",
-		  &setlist),
-     &showlist);
+by gdbserver."),
+		   N_("Show filename for remote session recording."),
+		   N_("Filename for remote session recording is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
-  add_show_from_set
-    (add_set_enum_cmd ("remotelogbase", no_class,
-		       logbase_enums, &serial_logbase,
-		       "Set numerical base for remote session logging",
-		       &setlist),
-     &showlist);
+  add_setshow_enum_cmd ("remotelogbase", no_class,
+			logbase_enums, &serial_logbase,
+			N_("Set numerical base for remote session logging."),
+			N_("Show numerical base for remote session logging."),
+			N_("Numerical base for remote session logging is %s."),
+			NULL, NULL,
+			&setlist, &showlist);
 
-  add_show_from_set (add_set_cmd ("serial",
-				  class_maintenance,
-				  var_zinteger,
-				  (char *)&global_serial_debug_p,
-				  "Set serial debugging.\n\
-When non-zero, serial port debugging is enabled.", &setdebuglist),
-		     &showdebuglist);
+  add_setshow_cmd ("serial",
+		   class_maintenance,
+		   var_zinteger,
+		   (char *)&global_serial_debug_p,
+		   N_("Set serial debugging.\n\
+When non-zero, serial port debugging is enabled."),
+		   N_("Show serial debugging."),
+		   N_("Serial debugging is %s."),
+		   NULL, NULL,
+		   &setdebuglist, &showdebuglist);
 }
Index: ser-go32.c
===================================================================
RCS file: /cvs/src/src/gdb/ser-go32.c,v
retrieving revision 1.12
diff -u -r1.12 ser-go32.c
--- ser-go32.c 11 Jul 2001 17:52:32 -0000 1.12
+++ ser-go32.c 1 Jul 2002 18:23:39 -0000
@@ -903,61 +903,69 @@
     intrupts[1].inuse =		/* keyboard */
     intrupts[2].inuse = 1;	/* slave icu */
 
-  add_show_from_set (
-		      add_set_cmd ("com1base", class_obscure, var_zinteger,
-				   (char *) &ports[0].base,
-				   "Set COM1 base i/o port address.",
-				   &setlist),
-		      &showlist);
-
-  add_show_from_set (
-		      add_set_cmd ("com1irq", class_obscure, var_zinteger,
-				   (char *) &ports[0].irq,
-				   "Set COM1 interrupt request.",
-				   &setlist),
-		      &showlist);
-
-  add_show_from_set (
-		      add_set_cmd ("com2base", class_obscure, var_zinteger,
-				   (char *) &ports[1].base,
-				   "Set COM2 base i/o port address.",
-				   &setlist),
-		      &showlist);
-
-  add_show_from_set (
-		      add_set_cmd ("com2irq", class_obscure, var_zinteger,
-				   (char *) &ports[1].irq,
-				   "Set COM2 interrupt request.",
-				   &setlist),
-		      &showlist);
-
-  add_show_from_set (
-		      add_set_cmd ("com3base", class_obscure, var_zinteger,
-				   (char *) &ports[2].base,
-				   "Set COM3 base i/o port address.",
-				   &setlist),
-		      &showlist);
-
-  add_show_from_set (
-		      add_set_cmd ("com3irq", class_obscure, var_zinteger,
-				   (char *) &ports[2].irq,
-				   "Set COM3 interrupt request.",
-				   &setlist),
-		      &showlist);
-
-  add_show_from_set (
-		      add_set_cmd ("com4base", class_obscure, var_zinteger,
-				   (char *) &ports[3].base,
-				   "Set COM4 base i/o port address.",
-				   &setlist),
-		      &showlist);
-
-  add_show_from_set (
-		      add_set_cmd ("com4irq", class_obscure, var_zinteger,
-				   (char *) &ports[3].irq,
-				   "Set COM4 interrupt request.",
-				   &setlist),
-		      &showlist);
+  add_setshow_cmd ("com1base", class_obscure, var_zinteger,
+		   (char *) &ports[0].base,
+		   N_("Set COM1 base i/o port address."),
+		   N_("Show COM1 base i/o port address."),
+		   N_("Com1 base i/o port address is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("com1irq", class_obscure, var_zinteger,
+		   (char *) &ports[0].irq,
+		   N_("Set COM1 interrupt request."),
+		   N_("Show COM1 interrupt request."),
+		   N_("Com1 interrupt request is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("com2base", class_obscure, var_zinteger,
+		   (char *) &ports[1].base,
+		   N_("Set COM2 base i/o port address."),
+		   N_("Show COM2 base i/o port address."),
+		   N_("Com2 base i/o port address is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("com2irq", class_obscure, var_zinteger,
+		   (char *) &ports[1].irq,
+		   N_("Set COM2 interrupt request."),
+		   N_("Show COM2 interrupt request."),
+		   N_("Com2 interrupt request is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("com3base", class_obscure, var_zinteger,
+		   (char *) &ports[2].base,
+		   N_("Set COM3 base i/o port address."),
+		   N_("Show COM3 base i/o port address."),
+		   N_("Com3 base i/o port address is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("com3irq", class_obscure, var_zinteger,
+		   (char *) &ports[2].irq,
+		   N_("Set COM3 interrupt request."),
+		   N_("Show COM3 interrupt request."),
+		   N_("Com3 interrupt request is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("com4base", class_obscure, var_zinteger,
+		   (char *) &ports[3].base,
+		   N_("Set COM4 base i/o port address."),
+		   N_("Show COM4 base i/o port address."),
+		   N_("Com4 base i/o port address is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("com4irq", class_obscure, var_zinteger,
+		   (char *) &ports[3].irq,
+		   N_("Set COM4 interrupt request."),
+		   N_("Show COM4 interrupt request."),
+		   N_("Com4 interrupt request is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_info ("serial", dos_info,
 	    "Print DOS serial port status.");
Index: remote.c
===================================================================
RCS file: /cvs/src/src/gdb/remote.c,v
retrieving revision 1.87
diff -u -r1.87 remote.c
--- remote.c 15 Jun 2002 22:05:32 -0000 1.87
+++ remote.c 1 Jul 2002 18:23:44 -0000
@@ -467,7 +467,7 @@
   int fixed_p = config->fixed_p;
   long size = config->size;
   if (args == NULL)
-    error ("Argument required (integer, `fixed' or `limited').");
+    error (_("Argument required (integer, `fixed' or `limited')."));
   else if (strcmp (args, "hard") == 0
       || strcmp (args, "fixed") == 0)
     fixed_p = 1;
@@ -479,23 +479,23 @@
       char *end;
       size = strtoul (args, &end, 0);
       if (args == end)
-	error ("Invalid %s (bad syntax).", config->name);
+	error (_("Invalid %s (bad syntax)."), config->name);
 #if 0
       /* Instead of explicitly capping the size of a packet to
          MAX_REMOTE_PACKET_SIZE or dissallowing it, the user is
          instead allowed to set the size to something arbitrarily
          large. */
       if (size > MAX_REMOTE_PACKET_SIZE)
-	error ("Invalid %s (too large).", config->name);
+	error (_("Invalid %s (too large)."), config->name);
 #endif
     }
   /* Extra checks? */
   if (fixed_p && !config->fixed_p)
     {
-      if (! query ("The target may not be able to correctly handle a %s\n"
-		   "of %ld bytes. Change the packet size? ",
+      if (! query (_("The target may not be able to correctly handle a %s\n"
+		   "of %ld bytes. Change the packet size? "),
 		   config->name, size))
-	error ("Packet size not changed.");
+	error (_("Packet size not changed."));
     }
   /* Update the config. */
   config->fixed_p = fixed_p;
@@ -505,12 +505,12 @@
 static void
 show_memory_packet_size (struct memory_packet_config *config)
 {
-  printf_filtered ("The %s is %ld. ", config->name, config->size);
+  printf_filtered (_("The %s is %ld. "), config->name, config->size);
   if (config->fixed_p)
-    printf_filtered ("Packets are fixed at %ld bytes.\n",
+    printf_filtered (_("Packets are fixed at %ld bytes.\n"),
 		     get_memory_packet_size (config));
   else
-    printf_filtered ("Packets are limited to %ld bytes.\n",
+    printf_filtered (_("Packets are limited to %ld bytes.\n"),
 		     get_memory_packet_size (config));
 }
 
@@ -633,12 +633,12 @@
   switch (config->detect)
     {
     case AUTO_BOOLEAN_AUTO:
-      printf_filtered ("Support for remote protocol `%s' (%s) packet is auto-detected, currently %s.\n",
+      printf_filtered (_("Support for remote protocol `%s' (%s) packet is auto-detected, currently %s.\n"),
 		       config->name, config->title, support);
       break;
     case AUTO_BOOLEAN_TRUE:
     case AUTO_BOOLEAN_FALSE:
-      printf_filtered ("Support for remote protocol `%s' (%s) packet is currently %s.\n",
+      printf_filtered (_("Support for remote protocol `%s' (%s) packet is currently %s.\n"),
 		       config->name, config->title, support);
       break;
     }
@@ -658,19 +658,23 @@
   struct cmd_list_element *show_cmd;
   char *set_doc;
   char *show_doc;
+  char *print_doc;
   char *cmd_name;
+  /* FIXME!!! */
   config->name = name;
   config->title = title;
   config->detect = AUTO_BOOLEAN_AUTO;
   config->support = PACKET_SUPPORT_UNKNOWN;
-  xasprintf (&set_doc, "Set use of remote protocol `%s' (%s) packet",
+  xasprintf (&set_doc, _("Set use of remote protocol `%s' (%s) packet"),
 	     name, title);
-  xasprintf (&show_doc, "Show current use of remote protocol `%s' (%s) packet",
+  xasprintf (&show_doc, _("Show current use of remote protocol `%s' (%s) packet"),
+	     name, title);
+  xasprintf (&print_doc, _("Current use of remote protocol `%s' (%s) packet is %%s"),
 	     name, title);
   /* set/show TITLE-packet {auto,on,off} */
   xasprintf (&cmd_name, "%s-packet", title);
   add_setshow_auto_boolean_cmd (cmd_name, class_obscure,
-				&config->detect, set_doc, show_doc,
+				&config->detect, set_doc, show_doc, print_doc,
 				set_func, show_func,
 				set_remote_list, show_remote_list);
   /* set/show remote NAME-packet {auto,on,off} -- legacy */
@@ -697,13 +701,13 @@
 	case PACKET_SUPPORT_UNKNOWN:
 	  if (remote_debug)
 	    fprintf_unfiltered (gdb_stdlog,
-				    "Packet %s (%s) is supported\n",
+				    _("Packet %s (%s) is supported\n"),
 				    config->name, config->title);
 	  config->support = PACKET_ENABLE;
 	  break;
 	case PACKET_DISABLE:
 	  internal_error (__FILE__, __LINE__,
-			  "packet_ok: attempt to use a disabled packet");
+			  _("packet_ok: attempt to use a disabled packet"));
 	  break;
 	case PACKET_ENABLE:
 	  break;
@@ -728,17 +732,17 @@
 	  if (config->detect == AUTO_BOOLEAN_AUTO)
 	    /* If the stub previously indicated that the packet was
 	       supported then there is a protocol error.. */
-	    error ("Protocol error: %s (%s) conflicting enabled responses.",
+	    error (_("Protocol error: %s (%s) conflicting enabled responses."),
 		   config->name, config->title);
 	  else
 	    /* The user set it wrong. */
-	    error ("Enabled packet %s (%s) not recognized by stub",
+	    error (_("Enabled packet %s (%s) not recognized by stub"),
 		   config->name, config->title);
 	  break;
 	case PACKET_SUPPORT_UNKNOWN:
 	  if (remote_debug)
 	    fprintf_unfiltered (gdb_stdlog,
-				"Packet %s (%s) is NOT supported\n",
+				_("Packet %s (%s) is NOT supported\n"),
 				config->name, config->title);
 	  config->support = PACKET_DISABLE;
 	  break;
@@ -1476,10 +1480,10 @@
   pkt = unpack_threadid (pkt, &ref);
 
   if (mask == 0)
-    warning ("Incomplete response to threadinfo request\n");
+    warning (_("Incomplete response to threadinfo request\n"));
   if (!threadmatch (&ref, expectedref))
     {				/* This is an answer to a different request */
-      warning ("ERROR RMT Thread info mismatch\n");
+      warning (_("ERROR RMT Thread info mismatch\n"));
       return 0;
     }
   copy_threadref (&info->threadid, &ref);
@@ -1492,7 +1496,7 @@
       pkt = unpack_byte (pkt, &length);		/* length */
       if (!(tag & mask))	/* tags out of synch with mask */
 	{
-	  warning ("ERROR RMT: threadinfo tag mismatch\n");
+	  warning (_("ERROR RMT: threadinfo tag mismatch\n"));
 	  retval = 0;
 	  break;
 	}
@@ -1500,7 +1504,7 @@
 	{
 	  if (length != 16)
 	    {
-	      warning ("ERROR RMT: length of threadid is not 16\n");
+	      warning (_("ERROR RMT: length of threadid is not 16\n"));
 	      retval = 0;
 	      break;
 	    }
@@ -1515,7 +1519,7 @@
 	  mask = mask & ~(TAG_EXISTS);
 	  if (length > 8)
 	    {
-	      warning ("ERROR RMT: 'exists' length too long\n");
+	      warning (_("ERROR RMT: 'exists' length too long\n"));
 	      retval = 0;
 	      break;
 	    }
@@ -1539,7 +1543,7 @@
 	  mask = mask & ~TAG_MOREDISPLAY;
 	  continue;
 	}
-      warning ("ERROR RMT: unknown thread info tag\n");
+      warning (_("ERROR RMT: unknown thread info tag\n"));
       break;			/* Not a tag we know about */
     }
   return retval;
@@ -1651,14 +1655,14 @@
          exit
          wait for packet, then exit
        */
-      warning ("HMM: threadlist did not echo arg thread, dropping it\n");
+      warning (_("HMM: threadlist did not echo arg thread, dropping it\n"));
       return 0;			/* I choose simply exiting */
     }
   if (*result_count <= 0)
     {
       if (*done != 1)
 	{
-	  warning ("RMT ERROR : failed to get remote thread list\n");
+	  warning (_("RMT ERROR : failed to get remote thread list\n"));
 	  result = 0;
 	}
       return result;		/* break; */
@@ -1666,7 +1670,7 @@
   if (*result_count > result_limit)
     {
       *result_count = 0;
-      warning ("RMT ERROR: threadlist response longer than requested\n");
+      warning (_("RMT ERROR: threadlist response longer than requested\n"));
       return 0;
     }
   return result;
@@ -1702,7 +1706,7 @@
       if (loopcount++ > looplimit)
 	{
 	  result = 0;
-	  warning ("Remote fetch threadlist -infinite loop-\n");
+	  warning (_("Remote fetch threadlist -infinite loop-\n"));
 	  break;
 	}
       if (!remote_get_threadlist (startflag, &nextthread, MAXTHREADLISTRESULTS,
@@ -1781,7 +1785,7 @@
   int tid;
 
   if (remote_desc == 0)		/* paranoia */
-    error ("Command can only be used when connected to the remote target.");
+    error (_("Command can only be used when connected to the remote target."));
 
   if (use_threadinfo_query)
     {
@@ -1861,11 +1865,11 @@
     if (threadinfo.active)
       {
 	if (*threadinfo.shortname)
-	  n += sprintf(&display_buf[0], " Name: %s,", threadinfo.shortname);
+	  n += sprintf(&display_buf[0], _(" Name: %s,"), threadinfo.shortname);
 	if (*threadinfo.display)
-	  n += sprintf(&display_buf[n], " State: %s,", threadinfo.display);
+	  n += sprintf(&display_buf[n], _(" State: %s,"), threadinfo.display);
 	if (*threadinfo.more_display)
-	  n += sprintf(&display_buf[n], " Priority: %s",
+	  n += sprintf(&display_buf[n], _(" Priority: %s"),
 		       threadinfo.more_display);
 
 	if (n > 0)
@@ -1933,7 +1937,7 @@
 				   this command. */
   if (buf[0] == 'E')
     {
-      warning ("Remote failure reply: %s", buf);
+      warning (_("Remote failure reply: %s"), buf);
       return;
     }
 
@@ -1974,7 +1978,7 @@
     lose = 1;
 
   if (lose)
-    error ("Malformed response to offset query, %s", buf);
+    error (_("Malformed response to offset query, %s"), buf);
 
   if (symfile_objfile == NULL)
     return;
@@ -2242,9 +2246,9 @@
      to be.  */
   if (!udp_warning && strncmp (name, "udp:", 4) == 0)
     {
-      warning ("The remote protocol may be unreliable over UDP.");
-      warning ("Some events may be lost, rendering further debugging "
-	       "impossible.");
+      warning (_("The remote protocol may be unreliable over UDP."));
+      warning (_("Some events may be lost, rendering further debugging "
+	       "impossible."));
       udp_warning = 1;
     }
 
@@ -2258,9 +2262,9 @@
   int ex;
   struct remote_state *rs = get_remote_state ();
   if (name == 0)
-    error ("To open a remote debug connection, you need to specify what\n"
+    error (_("To open a remote debug connection, you need to specify what\n"
 	   "serial device is attached to the remote system\n"
-	   "(e.g. /dev/ttyS0, /dev/ttya, COM1, etc.).");
+	   "(e.g. /dev/ttyS0, /dev/ttya, COM1, etc.)."));
 
   /* See FIXME above */
   wait_forever_enabled_p = 1;
@@ -2290,7 +2294,7 @@
 
   if (from_tty)
     {
-      puts_filtered ("Remote debugging using ");
+      puts_filtered (_("Remote debugging using "));
       puts_filtered (name);
       puts_filtered ("\n");
     }
@@ -2335,8 +2339,8 @@
      function.  See cli-dump.c.  */
   ex = catch_exceptions (uiout,
 			 remote_start_remote, NULL,
-			 "Couldn't establish connection to remote"
-			 " target\n",
+			 _("Couldn't establish connection to remote"
+			 " target\n"),
 			 RETURN_MASK_ALL);
   if (ex < 0)
     {
@@ -2375,9 +2379,9 @@
   int ex;
   struct remote_state *rs = get_remote_state ();
   if (name == 0)
-    error ("To open a remote debug connection, you need to specify what\n"
+    error (_("To open a remote debug connection, you need to specify what\n"
 	   "serial device is attached to the remote system\n"
-	   "(e.g. /dev/ttyS0, /dev/ttya, COM1, etc.).");
+	   "(e.g. /dev/ttyS0, /dev/ttya, COM1, etc.)."));
 
   target_preopen (from_tty);
 
@@ -2404,7 +2408,7 @@
 
   if (from_tty)
     {
-      puts_filtered ("Remote debugging using ");
+      puts_filtered (_("Remote debugging using "));
       puts_filtered (name);
       puts_filtered ("\n");
     }
@@ -2450,8 +2454,8 @@
      need to re-throw the exception.  */
   ex = catch_exceptions (uiout,
 			 remote_start_remote, NULL,
-			 "Couldn't establish connection to remote"
-			 " target\n",
+			 _("Couldn't establish connection to remote"
+			 " target\n"),
 			 RETURN_MASK_ALL);
   if (ex < 0)
     {
@@ -2497,7 +2501,7 @@
   char *buf = alloca (rs->remote_packet_size);
 
   if (args)
-    error ("Argument given to \"detach\" when remotely debugging.");
+    error (_("Argument given to \"detach\" when remotely debugging."));
 
   /* Tell the remote target to detach.  */
   strcpy (buf, "D");
@@ -2505,7 +2509,7 @@
 
   target_mourn_inferior ();
   if (from_tty)
-    puts_filtered ("Ending remote debugging.\n");
+    puts_filtered (_("Ending remote debugging.\n"));
 
 }
 
@@ -2517,7 +2521,7 @@
   char *buf = alloca (rs->remote_packet_size);
 
   if (args)
-    error ("Argument given to \"detach\" when remotely debugging.");
+    error (_("Argument given to \"detach\" when remotely debugging."));
 
   /* Tell the remote target to detach.  */
   strcpy (buf, "D");
@@ -2529,7 +2533,7 @@
 
   target_mourn_inferior ();
   if (from_tty)
-    puts_filtered ("Ending remote debugging.\n");
+    puts_filtered (_("Ending remote debugging.\n"));
 }
 
 /* Convert hex digit A to a number.  */
@@ -2544,7 +2548,7 @@
   else if (a >= 'A' && a <= 'F')
     return a - 'A' + 10;
   else
-    error ("Reply contains invalid hex digit %d", a);
+    error (_("Reply contains invalid hex digit %d"), a);
 }
 
 static int
@@ -2835,7 +2839,7 @@
 async_remote_interrupt (gdb_client_data arg)
 {
   if (remote_debug)
-    fprintf_unfiltered (gdb_stdlog, "remote_interrupt called\n");
+    fprintf_unfiltered (gdb_stdlog, _("remote_interrupt called\n"));
 
   target_stop ();
 }
@@ -2846,7 +2850,7 @@
 async_remote_interrupt_twice (gdb_client_data arg)
 {
   if (remote_debug)
-    fprintf_unfiltered (gdb_stdlog, "remote_interrupt_twice called\n");
+    fprintf_unfiltered (gdb_stdlog, _("remote_interrupt_twice called\n"));
   /* Do something only if the target was not killed by the previous
      cntl-C. */
   if (target_executing)
@@ -2884,7 +2888,7 @@
   signal (signo, remote_interrupt_twice);
 
   if (remote_debug)
-    fprintf_unfiltered (gdb_stdlog, "remote_interrupt called\n");
+    fprintf_unfiltered (gdb_stdlog, _("remote_interrupt called\n"));
 
   target_stop ();
 }
@@ -2907,7 +2911,7 @@
 {
   /* Send a break or a ^C, depending on user preference.  */
   if (remote_debug)
-    fprintf_unfiltered (gdb_stdlog, "remote_stop called\n");
+    fprintf_unfiltered (gdb_stdlog, _("remote_stop called\n"));
 
   if (remote_break)
     serial_send_break (remote_desc);
@@ -2922,8 +2926,8 @@
 {
   target_terminal_ours ();
 
-  if (query ("Interrupted while waiting for the program.\n\
-Give up (and stop debugging it)? "))
+  if (query (_("Interrupted while waiting for the program.\n\
+Give up (and stop debugging it)? ")))
     {
       target_mourn_inferior ();
       throw_exception (RETURN_QUIT);
@@ -3028,7 +3032,7 @@
       switch (buf[0])
 	{
 	case 'E':		/* Error of some sort */
-	  warning ("Remote failure reply: %s", buf);
+	  warning (_("Remote failure reply: %s"), buf);
 	  continue;
 	case 'T':		/* Status with PC, SP, FP, ... */
 	  {
@@ -3057,8 +3061,8 @@
 		  {
 		    p1 = (unsigned char *) strchr ((const char *) p, ':');
 		    if (p1 == NULL)
-		      warning ("Malformed packet(a) (missing colon): %s\n\
-Packet: '%s'\n",
+		      warning (_("Malformed packet(a) (missing colon): %s\n\
+Packet: '%s'\n"),
 			       p, buf);
 		    if (strncmp ((const char *) p, "thread", p1 - p) == 0)
 		      {
@@ -3073,26 +3077,26 @@
 		    p = p1;
 
 		    if (*p++ != ':')
-		      warning ("Malformed packet(b) (missing colon): %s\n\
-Packet: '%s'\n",
+		      warning (_("Malformed packet(b) (missing colon): %s\n\
+Packet: '%s'\n"),
 			       p, buf);
 
 		    if (reg == NULL)
-		      warning ("Remote sent bad register number %s: %s\n\
-Packet: '%s'\n",
+		      warning (_("Remote sent bad register number %s: %s\n\
+Packet: '%s'\n"),
 			       phex_nz (pnum, 0), p, buf);
 
 		    fieldsize = hex2bin (p, regs, REGISTER_RAW_SIZE (reg->regnum));
 		    p += 2 * fieldsize;
 		    if (fieldsize < REGISTER_RAW_SIZE (reg->regnum))
-		      warning ("Remote reply is too short: %s", buf);
+		      warning (_("Remote reply is too short: %s"), buf);
 		    supply_register (reg->regnum, regs);
 		  }
 
 		if (*p++ != ';')
 		  {
-		    warning ("Remote register badly formatted: %s", buf);
-		    warning ("            here: %s", p);
+		    warning (_("Remote register badly formatted: %s"), buf);
+		    warning (_("            here: %s"), p);
 		  }
 	      }
 	  }
@@ -3137,8 +3141,8 @@
 
 	    if (symfile_objfile == NULL)
 	      {
-		warning ("Relocation packet received with no symbol file.  \
-Packet Dropped");
+		warning (_("Relocation packet received with no symbol file.  \
+Packet Dropped"));
 		goto got_status;
 	      }
 
@@ -3150,15 +3154,15 @@
 	    p = &buf[3];
 	    text_addr = strtoul (p, (char **) &p1, 16);
 	    if (p1 == p || *p1 != ';')
-	      warning ("Malformed relocation packet: Packet '%s'", buf);
+	      warning (_("Malformed relocation packet: Packet '%s'"), buf);
 	    p = p1 + 1;
 	    data_addr = strtoul (p, (char **) &p1, 16);
 	    if (p1 == p || *p1 != ';')
-	      warning ("Malformed relocation packet: Packet '%s'", buf);
+	      warning (_("Malformed relocation packet: Packet '%s'"), buf);
 	    p = p1 + 1;
 	    bss_addr = strtoul (p, (char **) &p1, 16);
 	    if (p1 == p)
-	      warning ("Malformed relocation packet: Packet '%s'", buf);
+	      warning (_("Malformed relocation packet: Packet '%s'"), buf);
 
 	    if (remote_cisco_section_offsets (text_addr, data_addr, bss_addr,
 					      &text_off, &data_off, &bss_off)
@@ -3192,7 +3196,7 @@
 	         the remote system doesn't support it.  */
 	      target_terminal_ours_for_output ();
 	      printf_filtered
-		("Can't send signals to this remote system.  %s not sent.\n",
+		(_("Can't send signals to this remote system.  %s not sent.\n"),
 		 target_signal_to_name (last_sent_signal));
 	      last_sent_signal = TARGET_SIGNAL_0;
 	      target_terminal_inferior ();
@@ -3203,7 +3207,7 @@
 	    }
 	  /* else fallthrough */
 	default:
-	  warning ("Invalid remote reply: %s", buf);
+	  warning (_("Invalid remote reply: %s"), buf);
 	  continue;
 	}
     }
@@ -3248,7 +3252,7 @@
       switch (buf[0])
 	{
 	case 'E':		/* Error of some sort */
-	  warning ("Remote failure reply: %s", buf);
+	  warning (_("Remote failure reply: %s"), buf);
 	  continue;
 	case 'T':		/* Status with PC, SP, FP, ... */
 	  {
@@ -3277,8 +3281,8 @@
 		  {
 		    p1 = (unsigned char *) strchr ((const char *) p, ':');
 		    if (p1 == NULL)
-		      warning ("Malformed packet(a) (missing colon): %s\n\
-Packet: '%s'\n",
+		      warning (_("Malformed packet(a) (missing colon): %s\n\
+Packet: '%s'\n"),
 			       p, buf);
 		    if (strncmp ((const char *) p, "thread", p1 - p) == 0)
 		      {
@@ -3292,26 +3296,26 @@
 		    struct packet_reg *reg = packet_reg_from_pnum (rs, pnum);
 		    p = p1;
 		    if (*p++ != ':')
-		      warning ("Malformed packet(b) (missing colon): %s\n\
-Packet: '%s'\n",
+		      warning (_("Malformed packet(b) (missing colon): %s\n\
+Packet: '%s'\n"),
 			       p, buf);
 
 		    if (reg == NULL)
-		      warning ("Remote sent bad register number %ld: %s\n\
-Packet: '%s'\n",
+		      warning (_("Remote sent bad register number %ld: %s\n\
+Packet: '%s'\n"),
 			       pnum, p, buf);
 
 		    fieldsize = hex2bin (p, regs, REGISTER_RAW_SIZE (reg->regnum));
 		    p += 2 * fieldsize;
 		    if (fieldsize < REGISTER_RAW_SIZE (reg->regnum))
-		      warning ("Remote reply is too short: %s", buf);
+		      warning (_("Remote reply is too short: %s"), buf);
 		    supply_register (reg->regnum, regs);
 		  }
 
 		if (*p++ != ';')
 		  {
-		    warning ("Remote register badly formatted: %s", buf);
-		    warning ("            here: %s", p);
+		    warning (_("Remote register badly formatted: %s"), buf);
+		    warning (_("            here: %s"), p);
 		  }
 	      }
 	  }
@@ -3356,8 +3360,8 @@
 
 	    if (symfile_objfile == NULL)
 	      {
-		warning ("Relocation packet recieved with no symbol file.  \
-Packet Dropped");
+		warning (_("Relocation packet recieved with no symbol file.  \
+Packet Dropped"));
 		goto got_status;
 	      }
 
@@ -3369,15 +3373,15 @@
 	    p = &buf[3];
 	    text_addr = strtoul (p, (char **) &p1, 16);
 	    if (p1 == p || *p1 != ';')
-	      warning ("Malformed relocation packet: Packet '%s'", buf);
+	      warning (_("Malformed relocation packet: Packet '%s'"), buf);
 	    p = p1 + 1;
 	    data_addr = strtoul (p, (char **) &p1, 16);
 	    if (p1 == p || *p1 != ';')
-	      warning ("Malformed relocation packet: Packet '%s'", buf);
+	      warning (_("Malformed relocation packet: Packet '%s'"), buf);
 	    p = p1 + 1;
 	    bss_addr = strtoul (p, (char **) &p1, 16);
 	    if (p1 == p)
-	      warning ("Malformed relocation packet: Packet '%s'", buf);
+	      warning (_("Malformed relocation packet: Packet '%s'"), buf);
 
 	    if (remote_cisco_section_offsets (text_addr, data_addr, bss_addr,
 					      &text_off, &data_off, &bss_off)
@@ -3414,7 +3418,7 @@
 	         the remote system doesn't support it.  */
 	      target_terminal_ours_for_output ();
 	      printf_filtered
-		("Can't send signals to this remote system.  %s not sent.\n",
+		(_("Can't send signals to this remote system.  %s not sent.\n"),
 		 target_signal_to_name (last_sent_signal));
 	      last_sent_signal = TARGET_SIGNAL_0;
 	      target_terminal_inferior ();
@@ -3425,7 +3429,7 @@
 	    }
 	  /* else fallthrough */
 	default:
-	  warning ("Invalid remote reply: %s", buf);
+	  warning (_("Invalid remote reply: %s"), buf);
 	  continue;
 	}
     }
@@ -3462,8 +3466,8 @@
       gdb_assert (reg != NULL);
       if (!reg->in_g_packet)
 	internal_error (__FILE__, __LINE__,
-			"Attempt to fetch a non G-packet register when this "
-			"remote.c does not support the p-packet.");
+			_("Attempt to fetch a non G-packet register when this "
+			"remote.c does not support the p-packet."));
     }
 
   sprintf (buf, "g");
@@ -3487,7 +3491,7 @@
     {
       if (remote_debug)
 	fprintf_unfiltered (gdb_stdlog,
-			    "Bad register packet; fetching a new packet\n");
+			    _("Bad register packet; fetching a new packet\n"));
       getpkt (buf, (rs->remote_packet_size), 0);
     }
 
@@ -3502,7 +3506,7 @@
 	break;
       if (p[1] == 0)
 	{
-	  warning ("Remote reply is of odd length: %s", buf);
+	  warning (_("Remote reply is of odd length: %s"), buf);
 	  /* Don't change register_bytes_found in this case, and don't
 	     print a second warning.  */
 	  goto supply_them;
@@ -3519,7 +3523,7 @@
       register_bytes_found = i;
       if (REGISTER_BYTES_OK_P ()
 	  && !REGISTER_BYTES_OK (i))
-	warning ("Remote reply is too short: %s", buf);
+	warning (_("Remote reply is too short: %s"), buf);
     }
 
  supply_them:
@@ -3608,7 +3612,7 @@
 	  if (store_register_using_P (regnum))
 	    return;
 	  else
-	    error ("Protocol error: P packet not recognized by stub");
+	    error (_("Protocol error: P packet not recognized by stub"));
 	case PACKET_SUPPORT_UNKNOWN:
 	  if (store_register_using_P (regnum))
 	    {
@@ -3750,14 +3754,14 @@
 	  {
 	    if (remote_debug)
 	      fprintf_unfiltered (gdb_stdlog,
-				  "binary downloading NOT suppported by target\n");
+				  _("binary downloading NOT suppported by target\n"));
 	    remote_protocol_binary_download.support = PACKET_DISABLE;
 	  }
 	else
 	  {
 	    if (remote_debug)
 	      fprintf_unfiltered (gdb_stdlog,
-				  "binary downloading suppported by target\n");
+				  _("binary downloading suppported by target\n"));
 	    remote_protocol_binary_download.support = PACKET_ENABLE;
 	  }
 	break;
@@ -3817,9 +3821,9 @@
       break;
     case PACKET_SUPPORT_UNKNOWN:
       internal_error (__FILE__, __LINE__,
-		      "remote_write_bytes: bad internal state");
+		      _("remote_write_bytes: bad internal state"));
     default:
-      internal_error (__FILE__, __LINE__, "bad switch");
+      internal_error (__FILE__, __LINE__, _("bad switch"));
     }
   
   /* Append <memaddr> */
@@ -3880,9 +3884,9 @@
       break;
     case PACKET_SUPPORT_UNKNOWN:
       internal_error (__FILE__, __LINE__,
-		      "remote_write_bytes: bad internal state");
+		      _("remote_write_bytes: bad internal state"));
     default:
-      internal_error (__FILE__, __LINE__, "bad switch");
+      internal_error (__FILE__, __LINE__, _("bad switch"));
     }
   
   putpkt_binary (buf, (int) (p - buf));
@@ -4052,7 +4056,7 @@
       while (*p != '\0' && *p != ',')
 	addr_we_found = (addr_we_found << 4) + fromhex (*p++);
       if (*p == '\0')
-	error ("Protocol error: short return for search");
+	error (_("Protocol error: short return for search"));
 
       data_found_long = 0;
       while (*p != '\0' && *p != ',')
@@ -4077,7 +4081,7 @@
 static void
 remote_files_info (struct target_ops *ignore)
 {
-  puts_filtered ("Debugging a target over a serial line.\n");
+  puts_filtered (_("Debugging a target over a serial line.\n"));
 }
 
 /* Stuff for dealing with the packets which are part of this protocol.
@@ -4099,10 +4103,10 @@
     {
     case SERIAL_EOF:
       target_mourn_inferior ();
-      error ("Remote connection closed");
+      error (_("Remote connection closed"));
       /* no return */
     case SERIAL_ERROR:
-      perror_with_name ("Remote communication error");
+      perror_with_name (_("Remote communication error"));
       /* no return */
     case SERIAL_TIMEOUT:
       break;
@@ -4121,7 +4125,7 @@
   getpkt (buf, sizeof_buf, 0);
 
   if (buf[0] == 'E')
-    error ("Remote failure reply: %s", buf);
+    error (_("Remote failure reply: %s"), buf);
 }
 
 /* Display a null-terminated packet on stdout, for debugging, using C
@@ -4184,13 +4188,13 @@
       if (remote_debug)
 	{
 	  *p = '\0';
-	  fprintf_unfiltered (gdb_stdlog, "Sending packet: ");
+	  fprintf_unfiltered (gdb_stdlog, _("Sending packet: "));
 	  fputstrn_unfiltered (buf2, p - buf2, 0, gdb_stdlog);
 	  fprintf_unfiltered (gdb_stdlog, "...");
 	  gdb_flush (gdb_stdlog);
 	}
       if (serial_write (remote_desc, buf2, p - buf2))
-	perror_with_name ("putpkt: write failed");
+	perror_with_name (_("putpkt: write failed"));
 
       /* read until either a timeout occurs (-2) or '+' is read */
       while (1)
@@ -4230,7 +4234,7 @@
 	    case '$':
 	      {
 	        if (remote_debug)
-		  fprintf_unfiltered (gdb_stdlog, "Packet instead of Ack, ignoring it\n");
+		  fprintf_unfiltered (gdb_stdlog, _("Packet instead of Ack, ignoring it\n"));
 		/* It's probably an old response, and we're out of sync.
 		   Just gobble up the packet and ignore it.  */
 		read_frame (junkbuf, sizeof_junkbuf);
@@ -4242,7 +4246,7 @@
 		  if (!started_error_output)
 		    {
 		      started_error_output = 1;
-		      fprintf_unfiltered (gdb_stdlog, "putpkt: Junk: ");
+		      fprintf_unfiltered (gdb_stdlog, _("putpkt: Junk: "));
 		    }
 		  fputc_unfiltered (ch & 0177, gdb_stdlog);
 		}
@@ -4296,11 +4300,12 @@
 	{
 	case SERIAL_TIMEOUT:
 	  if (remote_debug)
-	    fputs_filtered ("Timeout in mid-packet, retrying\n", gdb_stdlog);
+	    fputs_filtered (_("Timeout in mid-packet, retrying\n"),
+			    gdb_stdlog);
 	  return -1;
 	case '$':
 	  if (remote_debug)
-	    fputs_filtered ("Saw new packet start in middle of old one\n",
+	    fputs_filtered (_("Saw new packet start in middle of old one\n"),
 			    gdb_stdlog);
 	  return -1;		/* Start a new packet, count retries */
 	case '#':
@@ -4318,13 +4323,15 @@
 	    if (check_0 == SERIAL_TIMEOUT || check_1 == SERIAL_TIMEOUT)
 	      {
 		if (remote_debug)
-		  fputs_filtered ("Timeout in checksum, retrying\n", gdb_stdlog);
+		  fputs_filtered (_("Timeout in checksum, retrying\n"),
+				  gdb_stdlog);
 		return -1;
 	      }
 	    else if (check_0 < 0 || check_1 < 0)
 	      {
 		if (remote_debug)
-		  fputs_filtered ("Communication error in checksum\n", gdb_stdlog);
+		  fputs_filtered (_("Communication error in checksum\n"),
+				  gdb_stdlog);
 		return -1;
 	      }
 
@@ -4335,7 +4342,7 @@
 	    if (remote_debug)
 	      {
 		fprintf_filtered (gdb_stdlog,
-			      "Bad checksum, sentsum=0x%x, csum=0x%x, buf=",
+			      _("Bad checksum, sentsum=0x%x, csum=0x%x, buf="),
 				  pktcsum, csum);
 		fputs_filtered (buf, gdb_stdlog);
 		fputs_filtered ("\n", gdb_stdlog);
@@ -4380,7 +4387,8 @@
 	      }
 
 	    buf[bc] = '\0';
-	    printf_filtered ("Repeat count %d too large for buffer: ", repeat);
+	    printf_filtered (_("Repeat count %d too large for buffer: "),
+			     repeat);
 	    puts_filtered (buf);
 	    puts_filtered ("\n");
 	    return -1;
@@ -4394,7 +4402,7 @@
 	    }
 
 	  buf[bc] = '\0';
-	  puts_filtered ("Remote packet too long: ");
+	  puts_filtered (_("Remote packet too long: "));
 	  puts_filtered (buf);
 	  puts_filtered ("\n");
 
@@ -4470,10 +4478,10 @@
 		{
 		  QUIT;
 		  target_mourn_inferior ();
-		  error ("Watchdog has expired.  Target detached.\n");
+		  error (_("Watchdog has expired.  Target detached.\n"));
 		}
 	      if (remote_debug)
-		fputs_filtered ("Timed out.\n", gdb_stdlog);
+		fputs_filtered (_("Timed out.\n"), gdb_stdlog);
 	      goto retry;
 	    }
 	}
@@ -4487,7 +4495,7 @@
 	{
 	  if (remote_debug)
 	    {
-	      fprintf_unfiltered (gdb_stdlog, "Packet received: ");
+	      fprintf_unfiltered (gdb_stdlog, _("Packet received: "));
 	      fputstr_unfiltered (buf, 0, gdb_stdlog);
 	      fprintf_unfiltered (gdb_stdlog, "\n");
 	    }
@@ -4502,7 +4510,7 @@
 
   /* We have tried hard enough, and just can't receive the packet.  Give up. */
 
-  printf_unfiltered ("Ignoring packet error, continuing...\n");
+  printf_unfiltered (_("Ignoring packet error, continuing...\n"));
   serial_write (remote_desc, "+", 1);
   return 1;
 }
@@ -4788,7 +4796,7 @@
       break;
     default:
       internal_error (__FILE__, __LINE__,
-		      "hw_bp_to_z: bad watchpoint type %d", type);
+		      _("hw_bp_to_z: bad watchpoint type %d"), type);
     }
 }
 
@@ -4804,7 +4812,7 @@
   enum Z_packet_type packet = watchpoint_to_Z_packet (type);
 
   if (remote_protocol_Z[packet].support == PACKET_DISABLE)
-    error ("Can't set hardware watchpoints without the '%s' (%s) packet\n",
+    error (_("Can't set hardware watchpoints without the '%s' (%s) packet\n"),
 	   remote_protocol_Z[packet].name,
 	   remote_protocol_Z[packet].title);
   
@@ -4826,7 +4834,7 @@
       return 0;
     }
   internal_error (__FILE__, __LINE__,
-		  "remote_insert_watchpoint: reached end of function");
+		  _("remote_insert_watchpoint: reached end of function"));
 }
 
 /* FIXME: This function should be static and a member of the remote
@@ -4841,7 +4849,7 @@
   enum Z_packet_type packet = watchpoint_to_Z_packet (type);
 
   if (remote_protocol_Z[packet].support == PACKET_DISABLE)
-    error ("Can't clear hardware watchpoints without the '%s' (%s) packet\n",
+    error (_("Can't clear hardware watchpoints without the '%s' (%s) packet\n"),
 	   remote_protocol_Z[packet].name,
 	   remote_protocol_Z[packet].title);
   
@@ -4862,7 +4870,7 @@
       return 0;
     }
   internal_error (__FILE__, __LINE__,
-		  "remote_remove_watchpoint: reached end of function");
+		  _("remote_remove_watchpoint: reached end of function"));
 }
 
 /* FIXME: This function should be static and a member of the remote
@@ -4876,7 +4884,7 @@
   char *p = buf;
       
   if (remote_protocol_Z[Z_PACKET_HARDWARE_BP].support == PACKET_DISABLE)
-    error ("Can't set hardware breakpoint without the '%s' (%s) packet\n",
+    error (_("Can't set hardware breakpoint without the '%s' (%s) packet\n"),
 	   remote_protocol_Z[Z_PACKET_HARDWARE_BP].name,
 	   remote_protocol_Z[Z_PACKET_HARDWARE_BP].title);
   
@@ -4900,7 +4908,7 @@
       return 0;
     }
   internal_error (__FILE__, __LINE__,
-		  "remote_remove_watchpoint: reached end of function");
+		  _("remote_remove_watchpoint: reached end of function"));
 }
 
 /* FIXME: This function should be static and a member of the remote
@@ -4914,7 +4922,7 @@
   char *p = buf;
   
   if (remote_protocol_Z[Z_PACKET_HARDWARE_BP].support == PACKET_DISABLE)
-    error ("Can't clear hardware breakpoint without the '%s' (%s) packet\n",
+    error (_("Can't clear hardware breakpoint without the '%s' (%s) packet\n"),
 	   remote_protocol_Z[Z_PACKET_HARDWARE_BP].name,
 	   remote_protocol_Z[Z_PACKET_HARDWARE_BP].title);
   
@@ -4938,7 +4946,7 @@
       return 0;
     }
   internal_error (__FILE__, __LINE__,
-		  "remote_remove_watchpoint: reached end of function");
+		  _("remote_remove_watchpoint: reached end of function"));
 }
 
 /* Some targets are only capable of doing downloads, and afterwards
@@ -4954,7 +4962,7 @@
 void
 push_remote_target (char *name, int from_tty)
 {
-  printf_filtered ("Switching to remote protocol\n");
+  printf_filtered (_("Switching to remote protocol\n"));
   remote_open (name, from_tty);
 }
 
@@ -4965,7 +4973,7 @@
 open_remote_target (char *name, int from_tty, struct target_ops *target,
 		    int extended_p)
 {
-  printf_filtered ("Selecting the %sremote protocol\n",
+  printf_filtered (_("Selecting the %sremote protocol\n"),
 		   (extended_p ? "extended-" : ""));
   remote_open_1 (name, from_tty, target, extended_p);
 }
@@ -5030,10 +5038,10 @@
   int mismatched = 0;
 
   if (!exec_bfd)
-    error ("command cannot be used without an exec file");
+    error (_("command cannot be used without an exec file"));
   if (!current_target.to_shortname ||
       strcmp (current_target.to_shortname, "remote") != 0)
-    error ("command can only be used with remote target");
+    error (_("command can only be used with remote target"));
 
   for (s = exec_bfd->sections; s; s = s->next)
     {
@@ -5062,31 +5070,31 @@
 
       getpkt (buf, (rs->remote_packet_size), 0);
       if (buf[0] == 'E')
-	error ("target memory fault, section %s, range 0x%s -- 0x%s",
+	error (_("target memory fault, section %s, range 0x%s -- 0x%s"),
 	       sectname, paddr (lma), paddr (lma + size));
       if (buf[0] != 'C')
-	error ("remote target does not support this operation");
+	error (_("remote target does not support this operation"));
 
       for (target_crc = 0, tmp = &buf[1]; *tmp; tmp++)
 	target_crc = target_crc * 16 + fromhex (*tmp);
 
-      printf_filtered ("Section %s, range 0x%s -- 0x%s: ",
+      printf_filtered (_("Section %s, range 0x%s -- 0x%s: "),
 		       sectname, paddr (lma), paddr (lma + size));
       if (host_crc == target_crc)
-	printf_filtered ("matched.\n");
+	printf_filtered (_("matched.\n"));
       else
 	{
-	  printf_filtered ("MIS-MATCHED!\n");
+	  printf_filtered (_("MIS-MATCHED!\n"));
 	  mismatched++;
 	}
 
       do_cleanups (old_chain);
     }
   if (mismatched > 0)
-    warning ("One or more sections of the remote executable does not match\n\
-the loaded file\n");
+    warning (_("One or more sections of the remote executable does not match\n\
+the loaded file\n"));
   if (args && !matched)
-    printf_filtered ("No loaded section named '%s'.\n", args);
+    printf_filtered (_("No loaded section named '%s'.\n"), args);
 }
 
 static int
@@ -5098,7 +5106,7 @@
   char *p2 = &buf2[0];
 
   if (!bufsiz)
-    error ("null pointer to remote bufer size specified");
+    error (_("null pointer to remote bufer size specified"));
 
   /* minimum outbuf size is (rs->remote_packet_size) - if bufsiz is not large enough let 
      the caller know and return what the minimum size is   */
@@ -5111,17 +5119,17 @@
 
   /* except for querying the minimum buffer size, target must be open */
   if (!remote_desc)
-    error ("remote query is only available after target open");
+    error (_("remote query is only available after target open"));
 
   /* we only take uppercase letters as query types, at least for now */
   if ((query_type < 'A') || (query_type > 'Z'))
-    error ("invalid remote query type");
+    error (_("invalid remote query type"));
 
   if (!buf)
-    error ("null remote query specified");
+    error (_("null remote query specified"));
 
   if (!outbuf)
-    error ("remote query requires a buffer to receive data");
+    error (_("remote query requires a buffer to receive data"));
 
   outbuf[0] = '\0';
 
@@ -5137,7 +5145,7 @@
     {
       /* bad caller may have sent forbidden characters */
       if ((!isprint (buf[i])) || (buf[i] == '$') || (buf[i] == '#'))
-	error ("illegal characters in query string");
+	error (_("illegal characters in query string"));
 
       *p2++ = buf[i];
       i++;
@@ -5145,7 +5153,7 @@
   *p2 = buf[i];
 
   if (buf[i])
-    error ("query larger than available buffer");
+    error (_("query larger than available buffer"));
 
   i = putpkt (buf2);
   if (i < 0)
@@ -5166,7 +5174,7 @@
   char *p = buf;
 
   if (!remote_desc)
-    error ("remote rcmd is only available after target open");
+    error (_("remote rcmd is only available after target open"));
 
   /* Send a NULL command across as an empty command */
   if (command == NULL)
@@ -5177,13 +5185,13 @@
   p = strchr (buf, '\0');
 
   if ((strlen (buf) + strlen (command) * 2 + 8/*misc*/) > (rs->remote_packet_size))
-    error ("\"monitor\" command ``%s'' is too long\n", command);
+    error (_("\"monitor\" command ``%s'' is too long\n"), command);
 
   /* Encode the actual command */
   bin2hex (command, p, 0);
 
   if (putpkt (buf) < 0)
-    error ("Communication problem with target\n");
+    error (_("Communication problem with target\n"));
 
   /* get/display the response */
   while (1)
@@ -5192,7 +5200,7 @@
       buf[0] = '\0';
       getpkt (buf, (rs->remote_packet_size), 0);
       if (buf[0] == '\0')
-	error ("Target does not support this command\n");
+	error (_("Target does not support this command\n"));
       if (buf[0] == 'O' && buf[1] != 'K')
 	{
 	  remote_console_output (buf + 1); /* 'O' message from stub */
@@ -5203,7 +5211,7 @@
       if (strlen (buf) == 3 && buf[0] == 'E'
 	  && isdigit (buf[1]) && isdigit (buf[2]))
 	{
-	  error ("Protocol error with Rcmd");
+	  error (_("Protocol error with Rcmd"));
 	}
       for (p = buf; p[0] != '\0' && p[1] != '\0'; p += 2)
 	{
@@ -5221,18 +5229,18 @@
   char *buf = alloca (rs->remote_packet_size);
 
   if (!remote_desc)
-    error ("command can only be used with remote target");
+    error (_("command can only be used with remote target"));
 
   if (!args)
-    error ("remote-packet command requires packet text as argument");
+    error (_("remote-packet command requires packet text as argument"));
 
-  puts_filtered ("sending: ");
+  puts_filtered (_("sending: "));
   print_packet (args);
   puts_filtered ("\n");
   putpkt (args);
 
   getpkt (buf, (rs->remote_packet_size), 0);
-  puts_filtered ("received: ");
+  puts_filtered (_("received: "));
   print_packet (buf);
   puts_filtered ("\n");
 }
@@ -5265,7 +5273,7 @@
 {
   int sample_thread = SAMPLE_THREAD;
 
-  printf_filtered ("Remote threadset test\n");
+  printf_filtered (_("Remote threadset test\n"));
   set_thread (sample_thread, 1);
 }
 
@@ -5276,9 +5284,9 @@
   int sample_thread = SAMPLE_THREAD;
 
   if (remote_thread_alive (pid_to_ptid (sample_thread)))
-    printf_filtered ("PASS: Thread alive test\n");
+    printf_filtered (_("PASS: Thread alive test\n"));
   else
-    printf_filtered ("FAIL: Thread alive test\n");
+    printf_filtered (_("FAIL: Thread alive test\n"));
 }
 
 void output_threadid (char *title, threadref * ref);
@@ -5301,10 +5309,10 @@
   int done, result_count;
   threadref threadlist[3];
 
-  printf_filtered ("Remote Threadlist test\n");
+  printf_filtered (_("Remote Threadlist test\n"));
   if (!remote_get_threadlist (startflag, &nextthread, 3, &done,
 			      &result_count, &threadlist[0]))
-    printf_filtered ("FAIL: threadlist test\n");
+    printf_filtered (_("FAIL: threadlist test\n"));
   else
     {
       threadref *scan = threadlist;
@@ -5346,9 +5354,9 @@
   int set;
 
   int_to_threadref (&thread, athread);
-  printf_filtered ("Remote Threadinfo test\n");
+  printf_filtered (_("Remote Threadinfo test\n"));
   if (!get_and_display_threadinfo (&thread))
-    printf_filtered ("FAIL cannot get thread info\n");
+    printf_filtered (_("FAIL cannot get thread info\n"));
 }
 
 static int
@@ -5361,7 +5369,7 @@
 static void
 threadlist_update_test_cmd (char *cmd, int tty)
 {
-  printf_filtered ("Remote Threadlist update test\n");
+  printf_filtered (_("Remote Threadlist update test\n"));
   remote_threadlist_iterator (thread_display_step, 0, CRAZY_MAX_THREADS);
 }
 
@@ -5369,15 +5377,15 @@
 init_remote_threadtests (void)
 {
   add_com ("tlist", class_obscure, threadlist_test_cmd,
-     "Fetch and print the remote list of thread identifiers, one pkt only");
+     N_("Fetch and print the remote list of thread identifiers, one pkt only"));
   add_com ("tinfo", class_obscure, threadinfo_test_cmd,
-	   "Fetch and display info about one thread");
+	   N_("Fetch and display info about one thread"));
   add_com ("tset", class_obscure, threadset_test_cmd,
-	   "Test setting to a different thread");
+	   N_("Test setting to a different thread"));
   add_com ("tupd", class_obscure, threadlist_update_test_cmd,
-	   "Iterate through updating all remote thread info");
+	   N_("Iterate through updating all remote thread info"));
   add_com ("talive", class_obscure, threadalive_test,
-	   " Remote thread alive test ");
+	   N_(" Remote thread alive test "));
 }
 
 #endif /* 0 */
@@ -5390,7 +5398,7 @@
 {
   static char buf[30];
 
-  sprintf (buf, "Thread %d", PIDGET (ptid));
+  sprintf (buf, _("Thread %d"), PIDGET (ptid));
   return buf;
 }
 
@@ -5398,11 +5406,11 @@
 init_remote_ops (void)
 {
   remote_ops.to_shortname = "remote";
-  remote_ops.to_longname = "Remote serial target in gdb-specific protocol";
+  remote_ops.to_longname = N_("Remote serial target in gdb-specific protocol");
   remote_ops.to_doc =
-    "Use a remote computer via a serial line, using a gdb-specific protocol.\n\
+    N_("Use a remote computer via a serial line, using a gdb-specific protocol.\n\
 Specify the serial device it is connected to\n\
-(e.g. /dev/ttyS0, /dev/ttya, COM1, etc.).";
+(e.g. /dev/ttyS0, /dev/ttya, COM1, etc.).");
   remote_ops.to_open = remote_open;
   remote_ops.to_close = remote_close;
   remote_ops.to_detach = remote_detach;
@@ -5445,10 +5453,10 @@
 
   extended_remote_ops.to_shortname = "extended-remote";
   extended_remote_ops.to_longname =
-    "Extended remote serial target in gdb-specific protocol";
+    N_("Extended remote serial target in gdb-specific protocol");
   extended_remote_ops.to_doc =
-    "Use a remote computer via a serial line, using a gdb-specific protocol.\n\
-Specify the serial device it is connected to (e.g. /dev/ttya).",
+    N_("Use a remote computer via a serial line, using a gdb-specific protocol.\n\
+Specify the serial device it is connected to (e.g. /dev/ttya)."),
     extended_remote_ops.to_open = extended_remote_open;
   extended_remote_ops.to_create_inferior = extended_remote_create_inferior;
   extended_remote_ops.to_mourn_inferior = extended_remote_mourn;
@@ -5476,7 +5484,7 @@
   char *buf = alloca (rs->remote_packet_size);
 
   if (remote_desc == 0)
-    error ("Command can only be used when connected to the remote target.");
+    error (_("Command can only be used when connected to the remote target."));
 
   putpkt ("qfProcessInfo");
   getpkt (buf, (rs->remote_packet_size), 0);
@@ -5484,7 +5492,7 @@
     return;			/* Silently: target does not support this feature. */
 
   if (buf[0] == 'E')
-    error ("info proc: target error.");
+    error (_("info proc: target error."));
 
   while (buf[0] == 'O')		/* Capitol-O packet */
     {
@@ -5503,8 +5511,8 @@
 {
   int ex;
   if (name == 0)
-    error ("To open a remote debug connection, you need to specify what \n"
-	   "device is attached to the remote system (e.g. host:port).");
+    error (_("To open a remote debug connection, you need to specify what \n"
+	   "device is attached to the remote system (e.g. host:port)."));
 
   /* See FIXME above */
   wait_forever_enabled_p = 1;
@@ -5538,7 +5546,7 @@
 
   if (from_tty)
     {
-      puts_filtered ("Remote debugging using ");
+      puts_filtered (_("Remote debugging using "));
       puts_filtered (name);
       puts_filtered ("\n");
     }
@@ -5569,8 +5577,8 @@
      need to re-throw the exception.  */
   ex = catch_exceptions (uiout,
 			 remote_start_remote_dummy, NULL,
-			 "Couldn't establish connection to remote"
-			 " target\n",
+			 _("Couldn't establish connection to remote"
+			 " target\n"),
 			 RETURN_MASK_ALL);
   if (ex < 0)
     {
@@ -5686,7 +5694,7 @@
   tty_bytecount = read (fileno (stdin), tty_input, sizeof (tty_input) - 1);
   if (tty_bytecount == -1)
     {
-      perror ("readtty: read failed");
+      perror (_("readtty: read failed"));
       return FATAL_ERROR;
     }
 
@@ -5710,7 +5718,7 @@
   tty_input[tty_bytecount] = 0;
   if (serial_write (remote_desc, tty_input, tty_bytecount))
     {
-      perror_with_name ("readtty: write failed");
+      perror_with_name (_("readtty: write failed"));
       return FATAL_ERROR;
     }
 
@@ -5741,7 +5749,7 @@
 
       if ((status = readsocket ()) == FATAL_ERROR)
 	{
-	  error ("Debugging terminated by communications error");
+	  error (_("Debugging terminated by communications error"));
 	}
       else if (status != READ_MORE)
 	{
@@ -5759,7 +5767,7 @@
       status = select (tablesize, &input, 0, 0, 0);
       if ((status == -1) && (errno != EINTR))
 	{
-	  error ("Communications error on select %d", errno);
+	  error (_("Communications error on select %d"), errno);
 	}
 
       /* Handle Control-C typed */
@@ -5768,9 +5776,9 @@
 	{
 	  if ((++quit_count) == 2)
 	    {
-	      if (query ("Interrupt GDB? "))
+	      if (query (_("Interrupt GDB? ")))
 		{
-		  printf_filtered ("Interrupted by user.\n");
+		  printf_filtered (_("Interrupted by user.\n"));
 		  throw_exception (RETURN_QUIT);
 		}
 	      quit_count = 0;
@@ -5805,7 +5813,7 @@
 {
   if (minitelnet () != ENTER_DEBUG)
     {
-      error ("Debugging session terminated by protocol error");
+      error (_("Debugging session terminated by protocol error"));
     }
   putpkt ("?");
   return remote_wait (ptid, status);
@@ -5815,10 +5823,10 @@
 init_remote_cisco_ops (void)
 {
   remote_cisco_ops.to_shortname = "cisco";
-  remote_cisco_ops.to_longname = "Remote serial target in cisco-specific protocol";
+  remote_cisco_ops.to_longname = N_("Remote serial target in cisco-specific protocol");
   remote_cisco_ops.to_doc =
-    "Use a remote machine via TCP, using a cisco-specific protocol.\n\
-Specify the serial device it is connected to (e.g. host:2020).";
+    N_("Use a remote machine via TCP, using a cisco-specific protocol.\n\
+Specify the serial device it is connected to (e.g. host:2020).");
   remote_cisco_ops.to_open = remote_cisco_open;
   remote_cisco_ops.to_close = remote_cisco_close;
   remote_cisco_ops.to_detach = remote_detach;
@@ -5882,7 +5890,7 @@
 {
   if (current_target.to_async_mask_value == 0)
     internal_error (__FILE__, __LINE__,
-		    "Calling remote_async when async is masked");
+		    _("Calling remote_async when async is masked"));
 
   if (callback != NULL)
     {
@@ -5904,10 +5912,10 @@
 init_remote_async_ops (void)
 {
   remote_async_ops.to_shortname = "async";
-  remote_async_ops.to_longname = "Remote serial target in async version of the gdb-specific protocol";
+  remote_async_ops.to_longname = N_("Remote serial target in async version of the gdb-specific protocol");
   remote_async_ops.to_doc =
-    "Use a remote computer via a serial line, using a gdb-specific protocol.\n\
-Specify the serial device it is connected to (e.g. /dev/ttya).";
+    N_("Use a remote computer via a serial line, using a gdb-specific protocol.\n\
+Specify the serial device it is connected to (e.g. /dev/ttya).");
   remote_async_ops.to_open = remote_async_open;
   remote_async_ops.to_close = remote_close;
   remote_async_ops.to_detach = remote_async_detach;
@@ -5956,10 +5964,10 @@
 
   extended_async_remote_ops.to_shortname = "extended-async";
   extended_async_remote_ops.to_longname =
-    "Extended remote serial target in async gdb-specific protocol";
+    N_("Extended remote serial target in async gdb-specific protocol");
   extended_async_remote_ops.to_doc =
-    "Use a remote computer via a serial line, using an async gdb-specific protocol.\n\
-Specify the serial device it is connected to (e.g. /dev/ttya).",
+    N_("Use a remote computer via a serial line, using an async gdb-specific protocol.\n\
+Specify the serial device it is connected to (e.g. /dev/ttya)."),
     extended_async_remote_ops.to_open = extended_remote_async_open;
   extended_async_remote_ops.to_create_inferior = extended_remote_async_create_inferior;
   extended_async_remote_ops.to_mourn_inferior = extended_remote_mourn;
@@ -6048,79 +6056,81 @@
 
   /* set/show remote ... */
 
-  add_prefix_cmd ("remote", class_maintenance, set_remote_cmd, "\
+  add_prefix_cmd ("remote", class_maintenance, set_remote_cmd, N_("\
 Remote protocol specific variables\n\
 Configure various remote-protocol specific variables such as\n\
-the packets being used",
+the packets being used"),
 		  &remote_set_cmdlist, "set remote ",
 		  0/*allow-unknown*/, &setlist);
-  add_prefix_cmd ("remote", class_maintenance, show_remote_cmd, "\
+  add_prefix_cmd ("remote", class_maintenance, show_remote_cmd, N_("\
 Remote protocol specific variables\n\
 Configure various remote-protocol specific variables such as\n\
-the packets being used",
+the packets being used"),
 		  &remote_show_cmdlist, "show remote ",
 		  0/*allow-unknown*/, &showlist);
 
   add_cmd ("compare-sections", class_obscure, compare_sections_command,
-	   "Compare section data on target to the exec file.\n\
-Argument is a single section name (default: all loaded sections).",
+	   N_("Compare section data on target to the exec file.\n\
+Argument is a single section name (default: all loaded sections)."),
 	   &cmdlist);
 
   add_cmd ("packet", class_maintenance, packet_command,
-	   "Send an arbitrary packet to a remote target.\n\
+	   N_("Send an arbitrary packet to a remote target.\n\
    maintenance packet TEXT\n\
 If GDB is talking to an inferior via the GDB serial protocol, then\n\
 this command sends the string TEXT to the inferior, and displays the\n\
 response packet.  GDB supplies the initial `$' character, and the\n\
-terminating `#' character and checksum.",
+terminating `#' character and checksum."),
 	   &maintenancelist);
 
   add_setshow_boolean_cmd ("remotebreak", no_class, &remote_break,
-			   "Set whether to send break if interrupted.\n",
-			   "Show whether to send break if interrupted.\n",
+			   N_("Set whether to send break if interrupted.\n"),
+			   N_("Show whether to send break if interrupted."),
+			   N_("Whether to send break if interrupted is %s."),
 			   NULL, NULL,
 			   &setlist, &showlist);
 
   /* Install commands for configuring memory read/write packets. */
 
   add_cmd ("remotewritesize", no_class, set_memory_write_packet_size,
-	   "Set the maximum number of bytes per memory write packet (deprecated).\n",
+	   N_("Set the maximum number of bytes per memory write packet (deprecated).\n"),
 	   &setlist);
   add_cmd ("remotewritesize", no_class, show_memory_write_packet_size,
-	   "Show the maximum number of bytes per memory write packet (deprecated).\n",
+	   N_("Show the maximum number of bytes per memory write packet (deprecated).\n"),
 	   &showlist);
   add_cmd ("memory-write-packet-size", no_class,
 	   set_memory_write_packet_size,
-	   "Set the maximum number of bytes per memory-write packet.\n"
+	   N_("Set the maximum number of bytes per memory-write packet.\n"
 	   "Specify the number of bytes in a packet or 0 (zero) for the\n"
 	   "default packet size.  The actual limit is further reduced\n"
 	   "dependent on the target.  Specify ``fixed'' to disable the\n"
-	   "further restriction and ``limit'' to enable that restriction\n",
+	   "further restriction and ``limit'' to enable that restriction\n"),
 	   &remote_set_cmdlist);
   add_cmd ("memory-read-packet-size", no_class,
 	   set_memory_read_packet_size,
-	   "Set the maximum number of bytes per memory-read packet.\n"
+	   N_("Set the maximum number of bytes per memory-read packet.\n"
 	   "Specify the number of bytes in a packet or 0 (zero) for the\n"
 	   "default packet size.  The actual limit is further reduced\n"
 	   "dependent on the target.  Specify ``fixed'' to disable the\n"
-	   "further restriction and ``limit'' to enable that restriction\n",
+	   "further restriction and ``limit'' to enable that restriction\n"),
 	   &remote_set_cmdlist);
   add_cmd ("memory-write-packet-size", no_class,
 	   show_memory_write_packet_size,
-	   "Show the maximum number of bytes per memory-write packet.\n",
+	   N_("Show the maximum number of bytes per memory-write packet.\n"),
 	   &remote_show_cmdlist);
   add_cmd ("memory-read-packet-size", no_class,
 	   show_memory_read_packet_size,
-	   "Show the maximum number of bytes per memory-read packet.\n",
+	   N_("Show the maximum number of bytes per memory-read packet.\n"),
 	   &remote_show_cmdlist);
 
-  add_show_from_set
-    (add_set_cmd ("remoteaddresssize", class_obscure,
-		  var_integer, (char *) &remote_address_size,
-		  "Set the maximum size of the address (in bits) \
-in a memory packet.\n",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("remoteaddresssize", class_obscure,
+		   var_integer, (char *) &remote_address_size,
+		   N_("Set the maximum size of the address (in bits) \
+in a memory packet.\n"),
+		   N_("Show the maximum size of the address (in bits) in a memory packet."),
+		   N_("The maximum size of the address (in bits) in a memory packet is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_packet_config_cmd (&remote_protocol_binary_download,
 			 "X", "binary-download",
@@ -6131,15 +6141,17 @@
 #if 0
   /* XXXX - should ``set remotebinarydownload'' be retained for
      compatibility. */
-  add_show_from_set
-    (add_set_cmd ("remotebinarydownload", no_class,
-		  var_boolean, (char *) &remote_binary_download,
-		  "Set binary downloads.\n", &setlist),
-     &showlist);
+  add_setshow_cmd ("remotebinarydownload", no_class,
+		   var_boolean, (char *) &remote_binary_download,
+		   N_("Set binary downloads.\n"),
+		   N_("Show binary downloads."),
+		   N_("Binary downloads is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 #endif
 
   add_info ("remote-process", remote_info_process,
-	    "Query the remote system for process info.");
+	    N_("Query the remote system for process info."));
 
   add_packet_config_cmd (&remote_protocol_qSymbol,
 			 "qSymbol", "symbol-lookup",
@@ -6214,9 +6226,10 @@
 
   /* Keep the old ``set remote Z-packet ...'' working. */
   add_setshow_auto_boolean_cmd ("Z-packet", class_obscure,
-				&remote_Z_packet_detect, "\
-Set use of remote protocol `Z' packets",
-				"Show use of remote protocol `Z' packets ",
+				&remote_Z_packet_detect, N_("\
+Set use of remote protocol `Z' packets"),
+				N_("Show use of remote protocol `Z' packets."),
+				N_("Use of remote protocol `Z' packets is %s."),
 				set_remote_protocol_Z_packet_cmd,
 				show_remote_protocol_Z_packet_cmd,
 				&remote_set_cmdlist, &remote_show_cmdlist);
Index: remote-utils.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-utils.c,v
retrieving revision 1.13
diff -u -r1.13 remote-utils.c
--- remote-utils.c 23 Mar 2002 17:38:12 -0000 1.13
+++ remote-utils.c 1 Jul 2002 18:23:45 -0000
@@ -596,12 +596,15 @@
 _initialize_sr_support (void)
 {
 /* FIXME-now: if target is open... */
-  add_show_from_set (add_set_cmd ("remotedevice", no_class,
-				  var_filename, (char *) &sr_settings.device,
-				  "Set device for remote serial I/O.\n\
+  add_setshow_cmd ("remotedevice", no_class,
+		   var_filename, (char *) &sr_settings.device,
+		   N_("Set device for remote serial I/O.\n\
 This device is used as the serial port when debugging using remote\n\
-targets.", &setlist),
-		     &showlist);
+targets."),
+		   N_("Show device for remote serial I/O."),
+		   N_("Device for remote serial I/O is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_com ("remote <command>", class_obscure, sr_com,
 	   "Send a command to the remote monitor.");
Index: remote-sds.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-sds.c,v
retrieving revision 1.20
diff -u -r1.20 remote-sds.c
--- remote-sds.c 10 Feb 2002 04:08:42 -0000 1.20
+++ remote-sds.c 1 Jul 2002 18:23:45 -0000
@@ -1135,10 +1135,13 @@
   init_sds_ops ();
   add_target (&sds_ops);
 
-  add_show_from_set (add_set_cmd ("sdstimeout", no_class,
-				  var_integer, (char *) &sds_timeout,
-			     "Set timeout value for sds read.\n", &setlist),
-		     &showlist);
+  add_setshow_cmd ("sdstimeout", no_class,
+		   var_integer, (char *) &sds_timeout,
+		   N_("Set timeout value for sds read.\n"),
+		   N_("Show timeout value for sds read."),
+		   N_("Timeout value for sds read is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
   add_com ("sds", class_obscure, sds_command,
 	   "Send a command to the SDS monitor.");
Index: remote-os9k.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-os9k.c,v
retrieving revision 1.19
diff -u -r1.19 remote-os9k.c
--- remote-os9k.c 29 Apr 2002 11:01:13 -0000 1.19
+++ remote-os9k.c 1 Jul 2002 18:23:46 -0000
@@ -1191,39 +1191,44 @@
   init_rombug_ops ();
   add_target (&rombug_ops);
 
-  add_show_from_set (
-	     add_set_cmd ("hash", no_class, var_boolean, (char *) &hashmark,
-			  "Set display of activity while downloading a file.\nWhen enabled, a period \'.\' is displayed.",
-			  &setlist),
-		      &showlist);
+  add_setshow_cmd ("hash", no_class, var_boolean, (char *) &hashmark,
+		   N_("Set display of activity while downloading a file.\nWhen enabled, a period \'.\' is displayed."),
+		   N_("Show display of activity while downloading a file."),
+		   N_("Display of activity while downloading a file is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
-  add_show_from_set (
-		      add_set_cmd ("timeout", no_class, var_zinteger,
-				   (char *) &timeout,
-		       "Set timeout in seconds for remote MIPS serial I/O.",
-				   &setlist),
-		      &showlist);
+  add_setshow_cmd ("timeout", no_class, var_zinteger,
+		   (char *) &timeout,
+		   N_("Set timeout in seconds for remote MIPS serial I/O."),
+		   N_("Show timeout in seconds for remote MIPS serial I/O."),
+		   N_("Timeout in seconds for remote MIPS serial I/O is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
-  add_show_from_set (
-		      add_set_cmd ("remotelog", no_class, var_zinteger,
-				   (char *) &monitor_log,
-			      "Set monitor activity log on(=1) or off(=0).",
-				   &setlist),
-		      &showlist);
+  add_setshow_cmd ("remotelog", no_class, var_zinteger,
+		   (char *) &monitor_log,
+		   N_("Set monitor activity log on(=1) or off(=0)."),
+		   N_("Show monitor activity log on(=1) or off(=0)."),
+		   N_("Monitor activity log on(=1) or off(=0) is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
-  add_show_from_set (
-		      add_set_cmd ("remotexon", no_class, var_zinteger,
-				   (char *) &tty_xon,
-				   "Set remote tty line XON control",
-				   &setlist),
-		      &showlist);
+  add_setshow_cmd ("remotexon", no_class, var_zinteger,
+		   (char *) &tty_xon,
+		   N_("Set remote tty line XON control."),
+		   N_("Show remote tty line XON control."),
+		   N_("Remote tty line XON control is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
-  add_show_from_set (
-		      add_set_cmd ("remotexoff", no_class, var_zinteger,
-				   (char *) &tty_xoff,
-				   "Set remote tty line XOFF control",
-				   &setlist),
-		      &showlist);
+  add_setshow_cmd ("remotexoff", no_class, var_zinteger,
+		   (char *) &tty_xoff,
+		   N_("Set remote tty line XOFF control."),
+		   N_("Show remote tty line XOFF control."),
+		   N_("Remote tty line XOFF control is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_com ("rombug <command>", class_obscure, rombug_command,
 	   "Send a command to the debug monitor.");
Index: remote-nrom.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-nrom.c,v
retrieving revision 1.9
diff -u -r1.9 remote-nrom.c
--- remote-nrom.c 15 Jul 2001 20:34:13 -0000 1.9
+++ remote-nrom.c 1 Jul 2002 18:23:46 -0000
@@ -340,10 +340,13 @@
 	       "Set the port to use for NetROM downloads\n", &setlist),
 		      &showlist);
 
-  add_show_from_set (
-		      add_set_cmd ("nrom_control_port", no_class, var_zinteger, (char *) &control_port,
-	    "Set the port to use for NetROM debugger services\n", &setlist),
-		      &showlist);
+  add_setshow_cmd ("nrom_control_port",
+		   no_class, var_zinteger, (char *) &control_port,
+		   N_("Set the port to use for NetROM debugger services.\n"),
+		   N_("Show the port to use for NetROM debugger services."),
+		   N_("The port to use for NetROM debugger services is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_cmd ("nrom", no_class, nrom_passthru,
 	   "Pass arguments as command to NetROM",
Index: remote-mips.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-mips.c,v
retrieving revision 1.27
diff -u -r1.27 remote-mips.c
--- remote-mips.c 5 May 2002 01:15:13 -0000 1.27
+++ remote-mips.c 1 Jul 2002 18:23:50 -0000
@@ -3546,54 +3546,62 @@
   add_target (&ddb_ops);
   add_target (&lsi_ops);
 
-  add_show_from_set (
-		      add_set_cmd ("timeout", no_class, var_zinteger,
-				   (char *) &mips_receive_wait,
-		       "Set timeout in seconds for remote MIPS serial I/O.",
-				   &setlist),
-		      &showlist);
-
-  add_show_from_set (
-		  add_set_cmd ("retransmit-timeout", no_class, var_zinteger,
-			       (char *) &mips_retransmit_wait,
-			       "Set retransmit timeout in seconds for remote MIPS serial I/O.\n\
+  add_setshow_cmd ("timeout", no_class, var_zinteger,
+		   (char *) &mips_receive_wait,
+		   N_("Set timeout in seconds for remote MIPS serial I/O."),
+		   N_("Show timeout in seconds for remote MIPS serial I/O."),
+		   N_("Timeout in seconds for remote MIPS serial I/O is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("retransmit-timeout", no_class, var_zinteger,
+		   (char *) &mips_retransmit_wait,
+		   N_("Set retransmit timeout in seconds for remote MIPS serial I/O.\n\
 This is the number of seconds to wait for an acknowledgement to a packet\n\
-before resending the packet.", &setlist),
-		      &showlist);
-
-  add_show_from_set (
-		   add_set_cmd ("syn-garbage-limit", no_class, var_zinteger,
-				(char *) &mips_syn_garbage,
-				"Set the maximum number of characters to ignore when scanning for a SYN.\n\
+before resending the packet."),
+		   N_("Show retransmit timeout in seconds for remote MIPS serial I/O."),
+		   N_("Retransmit timeout in seconds for remote MIPS serial I/O is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("syn-garbage-limit", no_class, var_zinteger,
+		   (char *) &mips_syn_garbage,
+		   N_("Set the maximum number of characters to ignore when scanning for a SYN.\n\
 This is the maximum number of characters GDB will ignore when trying to\n\
 synchronize with the remote system.  A value of -1 means that there is no limit\n\
-(Note that these characters are printed out even though they are ignored.)",
-				&setlist),
-		      &showlist);
-
-  add_show_from_set
-    (add_set_cmd ("monitor-prompt", class_obscure, var_string,
-		  (char *) &mips_monitor_prompt,
-		  "Set the prompt that GDB expects from the monitor.",
-		  &setlist),
-     &showlist);
-
-  add_show_from_set (
-	       add_set_cmd ("monitor-warnings", class_obscure, var_zinteger,
-			    (char *) &monitor_warnings,
-			    "Set printing of monitor warnings.\n"
-		"When enabled, monitor warnings about hardware breakpoints "
-			    "will be displayed.",
-			    &setlist),
-		      &showlist);
+(Note that these characters are printed out even though they are ignored.)"),
+		   N_("Show the maximum number of characters to ignore when scanning for a SYN."),
+		   N_("The maximum number of characters to ignore when scanning for a SYN is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("monitor-prompt", class_obscure, var_string,
+		   (char *) &mips_monitor_prompt,
+		   N_("Set the prompt that GDB expects from the monitor."),
+		   N_("Show the prompt that GDB expects from the monitor."),
+		   N_("The prompt that GDB expects from the monitor is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd ("monitor-warnings", class_obscure, var_zinteger,
+		   (char *) &monitor_warnings,
+		   N_("Set printing of monitor warnings.\n"
+		      "When enabled, monitor warnings about hardware breakpoints "
+		      "will be displayed."),
+		   N_("Show printing of monitor warnings.")
+		   N_("Printing of monitor warning is %ss.")
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_com ("pmon <command>", class_obscure, pmon_command,
 	   "Send a packet to PMON (must be in debug mode).");
 
-  add_show_from_set (add_set_cmd ("mask-address", no_class,
-				  var_boolean, &mask_address_p,
-				  "Set zeroing of upper 32 bits of 64-bit addresses when talking to PMON targets.\n\
-Use \"on\" to enable the masking and \"off\" to disable it.\n",
-				  &setlist),
-		     &showlist);
+  add_setshow_cmd ("mask-address", no_class,
+		   var_boolean, &mask_address_p,
+		   N_("Set zeroing of upper 32 bits of 64-bit addresses when talking to PMON targets.\n\
+Use \"on\" to enable the masking and \"off\" to disable it.\n"),
+		   N_("Set zeroing of upper 32 bits of 64-bit addresses when talking to PMON targets."),
+		   N_("Zeroing of upper 32 bits of 64-bit addresses when talking to PMON targets is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: remote-bug.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-bug.c,v
retrieving revision 1.21
diff -u -r1.21 remote-bug.c
--- remote-bug.c 19 Jan 2002 03:32:37 -0000 1.21
+++ remote-bug.c 1 Jul 2002 18:23:50 -0000
@@ -965,63 +965,69 @@
   init_bug_ops ();
   add_target (&bug_ops);
 
-  add_show_from_set
-    (add_set_cmd ("srec-bytes", class_support, var_uinteger,
-		  (char *) &srec_bytes,
-		  "\
+  add_setshow_cmd ("srec-bytes", class_support, var_uinteger,
+		   (char *) &srec_bytes,
+		   N_("\
 Set the number of bytes represented in each S-record.\n\
-This affects the communication protocol with the remote target.",
-		  &setlist),
-     &showlist);
+This affects the communication protocol with the remote target."),
+		   N_("Show the number of bytes represented in each S-record.")
+		   N_("The number of bytes represented in each S-recor is %sd.")
+		   NULL, NULL,
+		   &setlist, &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("srec-max-retries", class_support, var_uinteger,
-		  (char *) &srec_max_retries,
-		  "\
+  add_setshow_cmd ("srec-max-retries", class_support, var_uinteger,
+		   (char *) &srec_max_retries,
+		   N_("\
 Set the number of retries for shipping S-records.\n\
-This affects the communication protocol with the remote target.",
-		  &setlist),
-     &showlist);
+This affects the communication protocol with the remote target."),
+		   N_("Show the number of retries for shipping S-records."),
+		   N_("The number of retries for shipping S-records is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
 #if 0
   /* This needs to set SREC_SIZE, not srec_frame which gets changed at the
      end of a download.  But do we need the option at all?  */
-  add_show_from_set
-    (add_set_cmd ("srec-frame", class_support, var_uinteger,
-		  (char *) &srec_frame,
-		  "\
+  add_setshow_cmd ("srec-frame", class_support, var_uinteger,
+		   (char *) &srec_frame,
+		   N_("\
 Set the number of bytes in an S-record frame.\n\
-This affects the communication protocol with the remote target.",
-		  &setlist),
-     &showlist);
+This affects the communication protocol with the remote target."),
+		   N_("Show the number of bytes in an S-record frame."),
+		   N_("The number of bytes in an S-record frame is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 #endif /* 0 */
 
-  add_show_from_set
-    (add_set_cmd ("srec-noise", class_support, var_zinteger,
-		  (char *) &srec_noise,
-		  "\
+  add_setshow_cmd ("srec-noise", class_support, var_zinteger,
+		   (char *) &srec_noise,
+		   N_("\
 Set number of S-record to send before deliberately flubbing a checksum.\n\
 Zero means flub none at all.  This affects the communication protocol\n\
-with the remote target.",
-		  &setlist),
-     &showlist);
+with the remote target."),
+		   N_("Show number of S-record to send before deliberately flubbing a checksum."),
+		   N_("Number of S-record to send before deliberately flubbing a checksum is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("srec-sleep", class_support, var_zinteger,
-		  (char *) &srec_sleep,
-		  "\
+  add_setshow_cmd ("srec-sleep", class_support, var_zinteger,
+		   (char *) &srec_sleep,
+		   N_("\
 Set number of seconds to sleep after an S-record for a possible error message to arrive.\n\
-This affects the communication protocol with the remote target.",
-		  &setlist),
-     &showlist);
+This affects the communication protocol with the remote target."),
+		   N_("Show number of seconds to sleep after an S-record for a possible error message to arrive."),
+		   N_("Number of seconds to sleep after an S-record for a possible error message to arrive is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("srec-echo-pace", class_support, var_boolean,
-		  (char *) &srec_echo_pace,
-		  "\
+  add_setshow_cmd ("srec-echo-pace", class_support, var_boolean,
+		   (char *) &srec_echo_pace,
+		   N_("\
 Set echo-verification.\n\
 When on, use verification by echo when downloading S-records.  This is\n\
-much slower, but generally more reliable.",
-		  &setlist),
-     &showlist);
+much slower, but generally more reliable."),
+		   N_("Show echo-verification."),
+		   N_("Echo-verification is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: remote-e7000.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-e7000.c,v
retrieving revision 1.28
diff -u -r1.28 remote-e7000.c
--- remote-e7000.c 5 May 2002 01:15:13 -0000 1.28
+++ remote-e7000.c 1 Jul 2002 18:23:52 -0000
@@ -2220,8 +2220,11 @@
   add_com ("drain", class_obscure, e7000_drain_command,
 	   "Drain pending e7000 text buffers.");
 
-  add_show_from_set (add_set_cmd ("usehardbreakpoints", no_class,
-				var_integer, (char *) &use_hard_breakpoints,
-	"Set use of hardware breakpoints for all breakpoints.\n", &setlist),
-		     &showlist);
+  add_setshow_cmd ("usehardbreakpoints", no_class,
+		   var_integer, (char *) &use_hard_breakpoints,
+		   N_("Set use of hardware breakpoints for all breakpoints.\n"),
+		   N_("Show use of hardware breakpoints for all breakpoints."),
+		   N_("Use of hardware breakpoints for all breakpoints is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: proc-api.c
===================================================================
RCS file: /cvs/src/src/gdb/proc-api.c,v
retrieving revision 1.12
diff -u -r1.12 proc-api.c
--- proc-api.c 6 Mar 2002 06:28:33 -0000 1.12
+++ proc-api.c 1 Jul 2002 18:23:54 -0000
@@ -772,18 +772,20 @@
 {
   struct cmd_list_element *c;
 
-  c = add_set_cmd ("procfs-trace", no_class,
-		   var_boolean, (char *) &procfs_trace, 
-		   "Set tracing for /proc api calls.\n", &setlist);
-
-  add_show_from_set (c, &showlist);
-  set_cmd_sfunc (c, set_procfs_trace_cmd);
+  c = add_setshow_cmd ("procfs-trace", no_class,
+		       var_boolean, (char *) &procfs_trace, 
+		       N_("Set tracing for /proc api calls.\n"),
+		       N_("Show tracing for /proc api calls."),
+		       N_("Tracing for /proc api calls is %s."),
+		       set_procfs_trace_cmd, show_cmd,
+		       &setlist, &showlist);
   set_cmd_completer (c, filename_completer);
 
-  c = add_set_cmd ("procfs-file", no_class, var_filename,
+  add_setshow_cmd ("procfs-file", no_class, var_filename,
 		   (char *) &procfs_filename, 
-		   "Set filename for /proc tracefile.\n", &setlist);
-
-  add_show_from_set (c, &showlist);
-  set_cmd_sfunc (c, set_procfs_file_cmd);
+		   N_("Set filename for /proc tracefile.\n"),
+		   N_("Show filename for /proc tracefile."),
+		   N_("Filename for /proc tracefile is %s."),
+		   set_procfs_file_cmd, show_cmd,
+		   &setlist, &showlist);
 }
Index: printcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/printcmd.c,v
retrieving revision 1.39
diff -u -r1.39 printcmd.c
--- printcmd.c 11 May 2002 23:48:23 -0000 1.39
+++ printcmd.c 1 Jul 2002 18:23:57 -0000
@@ -2541,18 +2541,20 @@
 environment, the value is printed in its own window.");
   set_cmd_completer (c, location_completer);
 
-  add_show_from_set (
-		 add_set_cmd ("max-symbolic-offset", no_class, var_uinteger,
-			      (char *) &max_symbolic_offset,
-       "Set the largest offset that will be printed in <symbol+1234> form.",
-			      &setprintlist),
-		      &showprintlist);
-  add_show_from_set (
-		      add_set_cmd ("symbol-filename", no_class, var_boolean,
-				   (char *) &print_symbol_filename,
-	   "Set printing of source filename and line number with <symbol>.",
-				   &setprintlist),
-		      &showprintlist);
+  add_setshow_cmd ("max-symbolic-offset", no_class, var_uinteger,
+		   (char *) &max_symbolic_offset,
+		   N_("Set the largest offset that will be printed in <symbol+1234> form."),
+		   N_("Show the largest offset that will be printed in <symbol+1234> form."),
+		   N_("The largest offset that will be printed in <symbol+1234> form is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
+  add_setshow_cmd ("symbol-filename", no_class, var_boolean,
+		   (char *) &print_symbol_filename,
+		   N_("Set printing of source filename and line number with <symbol>."),
+		   N_("Show printing of source filename and line number with <symbol>."),
+		   N_("Printing of source filename and line number with <symbol> is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
 
   /* For examine/instruction a single byte quantity is specified as
      the data.  This avoids problems with value_at_lazy() requiring a
Index: parse.c
===================================================================
RCS file: /cvs/src/src/gdb/parse.c,v
retrieving revision 1.25
diff -u -r1.25 parse.c
--- parse.c 21 Jun 2002 14:32:10 -0000 1.25
+++ parse.c 1 Jul 2002 18:23:59 -0000
@@ -1402,11 +1402,12 @@
 
   register_gdbarch_swap (NULL, 0, build_parse);
 
-  add_show_from_set (
-	    add_set_cmd ("expression", class_maintenance, var_zinteger,
-			 (char *) &expressiondebug,
-			 "Set expression debugging.\n\
-When non-zero, the internal representation of expressions will be printed.",
-			 &setdebuglist),
-		      &showdebuglist);
+  add_setshow_cmd ("expression", class_maintenance, var_zinteger,
+		   (char *) &expressiondebug,
+		   N_("Set expression debugging.\n\
+When non-zero, the internal representation of expressions will be printed."),
+		   N_("Show expression debugging."),
+		   N_("Expression debugging is %s."),
+		   NULL, NULL,
+		   &setdebuglist, &showdebuglist);
 }
Index: pa64solib.c
===================================================================
RCS file: /cvs/src/src/gdb/pa64solib.c,v
retrieving revision 1.15
diff -u -r1.15 pa64solib.c
--- pa64solib.c 8 Jun 2002 20:02:50 -0000 1.15
+++ pa64solib.c 1 Jul 2002 18:24:01 -0000
@@ -887,26 +887,28 @@
   add_info ("sharedlibrary", pa64_sharedlibrary_info_command,
 	    "Status of loaded shared object libraries.");
 
-  add_show_from_set
-    (add_set_cmd ("auto-solib-add", class_support, var_boolean,
-		  (char *) &auto_solib_add,
-		  "Set autoloading of shared library symbols.\n\
+  add_setshow_cmd ("auto-solib-add", class_support, var_boolean,
+		   (char *) &auto_solib_add,
+		   N_("Set autoloading of shared library symbols.\n\
 If \"on\", symbols from all shared object libraries will be loaded\n\
 automatically when the inferior begins execution, when the dynamic linker\n\
 informs gdb that a new library has been loaded, or when attaching to the\n\
-inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'.",
-		  &setlist),
-     &showlist);
+inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'."),
+		   N_("Show autoloading of shared library symbols."),
+		   N_("Autoloading of shared library symbols is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("auto-solib-limit", class_support, var_zinteger,
-		  (char *) &auto_solib_limit,
-		  "Set threshold (in Mb) for autoloading shared library symbols.\n\
+  add_setshow_cmd ("auto-solib-limit", class_support, var_zinteger,
+		   (char *) &auto_solib_limit,
+		   N_("Set threshold (in Mb) for autoloading shared library symbols.\n\
 When shared library autoloading is enabled, new libraries will be loaded\n\
 only until the total size of shared library symbols exceeds this\n\
-threshold in megabytes.  Is ignored when using `sharedlibrary'.",
-		  &setlist),
-     &showlist);
+threshold in megabytes.  Is ignored when using `sharedlibrary'."),
+		   N_("Show threshold (in Mb) for autoloading shared library symbols."),
+		   N_("Threshold (in Mb) for autoloading shared library symbols is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
   /* ??rehrauer: On HP-UX, the kernel parameter MAXDSIZ limits how
      much data space a process can use.  We ought to be reading
Index: p-valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/p-valprint.c,v
retrieving revision 1.10
diff -u -r1.10 p-valprint.c
--- p-valprint.c 2 May 2002 11:18:07 -0000 1.10
+++ p-valprint.c 1 Jul 2002 18:24:02 -0000
@@ -1105,12 +1105,13 @@
 void
 _initialize_pascal_valprint (void)
 {
-  add_show_from_set
-    (add_set_cmd ("pascal_static-members", class_support, var_boolean,
-		  (char *) &pascal_static_field_print,
-		  "Set printing of pascal static members.",
-		  &setprintlist),
-     &showprintlist);
+  add_setshow_cmd ("pascal_static-members", class_support, var_boolean,
+		   (char *) &pascal_static_field_print,
+		   N_("Set printing of pascal static members."),
+		   N_("Show printing of pascal static members."),
+		   N_("Printing of pascal static members is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
   /* Turn on printing of static fields.  */
   pascal_static_field_print = 1;
 
Index: osfsolib.c
===================================================================
RCS file: /cvs/src/src/gdb/osfsolib.c,v
retrieving revision 1.13
diff -u -r1.13 osfsolib.c
--- osfsolib.c 27 Feb 2002 01:40:35 -0000 1.13
+++ osfsolib.c 1 Jul 2002 18:24:02 -0000
@@ -925,14 +925,15 @@
   add_info ("sharedlibrary", info_sharedlibrary_command,
 	    "Status of loaded shared object libraries.");
 
-  add_show_from_set
-    (add_set_cmd ("auto-solib-add", class_support, var_boolean,
-		  (char *) &auto_solib_add,
-		  "Set autoloading of shared library symbols.\n\
+  add_setshow_cmd ("auto-solib-add", class_support, var_boolean,
+		   (char *) &auto_solib_add,
+		   N_("Set autoloading of shared library symbols.\n\
 If \"on\", symbols from all shared object libraries will be loaded\n\
 automatically when the inferior begins execution, when the dynamic linker\n\
 informs gdb that a new library has been loaded, or when attaching to the\n\
-inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'.",
-		  &setlist),
-     &showlist);
+inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'."),
+		   N_("Show autoloading of shared library symbols."),
+		   N_("Autoloading of shared library symbols is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 }
Index: ocd.c
===================================================================
RCS file: /cvs/src/src/gdb/ocd.c,v
retrieving revision 1.21
diff -u -r1.21 ocd.c
--- ocd.c 5 May 2002 01:15:13 -0000 1.21
+++ ocd.c 1 Jul 2002 18:24:03 -0000
@@ -1373,10 +1373,13 @@
   extern struct cmd_list_element *cmdlist;
   static struct cmd_list_element *ocd_cmd_list = NULL;
 
-  add_show_from_set (add_set_cmd ("remotetimeout", no_class,
-				  var_integer, (char *) &remote_timeout,
-			  "Set timeout value for remote read.\n", &setlist),
-		     &showlist);
+  add_setshow_cmd ("remotetimeout", no_class,
+		   var_integer, (char *) &remote_timeout,
+		   N_("Set timeout value for remote read.\n"),
+		   N_("Show timeout value for remote read."),
+		   N_("Timeout value for remote read is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
   add_prefix_cmd ("ocd", class_obscure, bdm_command, "", &ocd_cmd_list, "ocd ",
 		  0, &cmdlist);
Index: monitor.c
===================================================================
RCS file: /cvs/src/src/gdb/monitor.c,v
retrieving revision 1.34
diff -u -r1.34 monitor.c
--- monitor.c 26 Jun 2002 15:14:32 -0000 1.34
+++ monitor.c 1 Jul 2002 18:24:05 -0000
@@ -2376,18 +2376,22 @@
 _initialize_remote_monitors (void)
 {
   init_base_monitor_ops ();
-  add_show_from_set (add_set_cmd ("hash", no_class, var_boolean,
-				  (char *) &hashmark,
-				  "Set display of activity while downloading a file.\n\
-When enabled, a hashmark \'#\' is displayed.",
-				  &setlist),
-		     &showlist);
+  add_setshow_cmd ("hash", no_class, var_boolean,
+		   (char *) &hashmark,
+		   N_("Set display of activity while downloading a file.\n\
+When enabled, a hashmark \'#\' is displayed."),
+		   N_("Show display of activity while downloading a file."),
+		   N_("Display of activity while downloading a file is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("monitor", no_class, var_zinteger,
-		  (char *) &monitor_debug_p,
-		  "Set debugging of remote monitor communication.\n\
+  add_setshow_cmd ("monitor", no_class, var_zinteger,
+		   (char *) &monitor_debug_p,
+		   N_("Set debugging of remote monitor communication.\n\
 When enabled, communication between GDB and the remote monitor\n\
-is displayed.", &setdebuglist),
-     &showdebuglist);
+is displayed."),
+		   N_("Show debugging of remote monitor communication."),
+		   N_("Debugging of remote monitor communication is %s."),
+		   set_cmd, show_cmd,
+		   &setdebuglist, &showdebuglist);
 }
Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.81
diff -u -r1.81 mips-tdep.c
--- mips-tdep.c 19 Jun 2002 16:48:47 -0000 1.81
+++ mips-tdep.c 1 Jul 2002 18:24:10 -0000
@@ -5035,7 +5035,6 @@
 _initialize_mips_tdep (void)
 {
   static struct cmd_list_element *mipsfpulist = NULL;
-  struct cmd_list_element *c;
 
   mips_abi_string = mips_abi_strings [MIPS_ABI_UNKNOWN];
   if (MIPS_ABI_LAST + 1
@@ -5056,48 +5055,53 @@
 		  &showmipscmdlist, "show mips ", 0, &showlist);
 
   /* Allow the user to override the saved register size. */
-  add_show_from_set (add_set_enum_cmd ("saved-gpreg-size",
-				       class_obscure,
-				       size_enums,
-				       &mips_saved_regsize_string, "\
+  add_setshow_enum_cmd ("saved-gpreg-size",
+			class_obscure,
+			size_enums,
+			&mips_saved_regsize_string, N_("\
 Set size of general purpose registers saved on the stack.\n\
 This option can be set to one of:\n\
   32    - Force GDB to treat saved GP registers as 32-bit\n\
   64    - Force GDB to treat saved GP registers as 64-bit\n\
   auto  - Allow GDB to use the target's default setting or autodetect the\n\
           saved GP register size from information contained in the executable.\n\
-          (default: auto)",
-				       &setmipscmdlist),
-		     &showmipscmdlist);
+          (default: auto)"),
+			N_("Show size of general purpose registers saved on the stack."),
+			N_("Size of general purpose registers saved on the stack is %s."),
+			NULL, NULL,
+			&setmipscmdlist, &showmipscmdlist);
 
   /* Allow the user to override the argument stack size. */
-  add_show_from_set (add_set_enum_cmd ("stack-arg-size",
-				       class_obscure,
-				       size_enums,
-				       &mips_stack_argsize_string, "\
+  add_setshow_enum_cmd ("stack-arg-size",
+			class_obscure,
+			size_enums,
+			&mips_stack_argsize_string, N_("\
 Set the amount of stack space reserved for each argument.\n\
 This option can be set to one of:\n\
   32    - Force GDB to allocate 32-bit chunks per argument\n\
   64    - Force GDB to allocate 64-bit chunks per argument\n\
   auto  - Allow GDB to determine the correct setting from the current\n\
-          target and executable (default)",
-				       &setmipscmdlist),
-		     &showmipscmdlist);
+          target and executable (default)"),
+			N_("Show the amount of stack space reserved for each argument."),
+			N_("The amount of stack space reserved for each argument is %s."),
+			NULL, NULL,
+			&setmipscmdlist, &showmipscmdlist);
 
   /* Allow the user to override the ABI. */
-  c = add_set_enum_cmd
+  add_setshow_enum_cmd
     ("abi", class_obscure, mips_abi_strings, &mips_abi_string,
-     "Set the ABI used by this program.\n"
-     "This option can be set to one of:\n"
-     "  auto  - the default ABI associated with the current binary\n"
-     "  o32\n"
-     "  o64\n"
-     "  n32\n"
-     "  eabi32\n"
-     "  eabi64",
-     &setmipscmdlist);
-  add_show_from_set (c, &showmipscmdlist);
-  set_cmd_sfunc (c, mips_abi_update);
+     N_("Set the ABI used by this program.\n"
+	"This option can be set to one of:\n"
+	"  auto  - the default ABI associated with the current binary\n"
+	"  o32\n"
+	"  o64\n"
+	"  n32\n"
+	"  eabi32\n"
+	"  eabi64"),
+     N_("Show the ABI used by this program."),
+     N_("The ABI used by this program is %s."),
+     mips_abi_update, NULL,
+     &setmipscmdlist, &showmipscmdlist);
 
   /* Let the user turn off floating point and set the fence post for
      heuristic_proc_start.  */
@@ -5130,45 +5134,53 @@
   /* We really would like to have both "0" and "unlimited" work, but
      command.c doesn't deal with that.  So make it a var_zinteger
      because the user can always use "999999" or some such for unlimited.  */
-  c = add_set_cmd ("heuristic-fence-post", class_support, var_zinteger,
+  add_setshow_cmd ("heuristic-fence-post", class_support, var_zinteger,
 		   (char *) &heuristic_fence_post,
-		   "\
+		   N_("\
 Set the distance searched for the start of a function.\n\
 If you are debugging a stripped executable, GDB needs to search through the\n\
 program for the start of a function.  This command sets the distance of the\n\
-search.  The only need to set it is when debugging a stripped executable.",
-		   &setlist);
-  /* We need to throw away the frame cache when we set this, since it
-     might change our ability to get backtraces.  */
-  set_cmd_sfunc (c, reinit_frame_cache_sfunc);
-  add_show_from_set (c, &showlist);
+search.  The only need to set it is when debugging a stripped executable."),
+		   N_("Set the distance searched for the start of a function."),
+		   N_("The distance searched for the start of a function is %s."),
+		   reinit_frame_cache_sfunc, NULL,
+		   &setlist, &showlist);
 
   /* Allow the user to control whether the upper bits of 64-bit
      addresses should be zeroed.  */
-  add_setshow_auto_boolean_cmd ("mask-address", no_class, &mask_address_var, "\
+  add_setshow_auto_boolean_cmd ("mask-address", no_class, &mask_address_var,
+				N_("\
 Set zeroing of upper 32 bits of 64-bit addresses.\n\
 Use \"on\" to enable the masking, \"off\" to disable it and \"auto\" to \n\
-allow GDB to determine the correct value.\n", "\
-Show zeroing of upper 32 bits of 64-bit addresses.",
+allow GDB to determine the correct value.\n"), N_("\
+Show zeroing of upper 32 bits of 64-bit addresses."), N_("\
+Zeroing of upper 32 bits of 64-bit addresses is %s."),
 				NULL, show_mask_address,
 				&setmipscmdlist, &showmipscmdlist);
 
   /* Allow the user to control the size of 32 bit registers within the
      raw remote packet.  */
-  add_show_from_set (add_set_cmd ("remote-mips64-transfers-32bit-regs",
-				  class_obscure,
-				  var_boolean,
-				  (char *)&mips64_transfers_32bit_regs_p, "\
+  add_setshow_cmd ("remote-mips64-transfers-32bit-regs",
+		   class_obscure,
+		   var_boolean,
+		   (char *)&mips64_transfers_32bit_regs_p,
+		   N_("\
 Set compatibility with MIPS targets that transfers 32 and 64 bit quantities.\n\
 Use \"on\" to enable backward compatibility with older MIPS 64 GDB+target\n\
 that would transfer 32 bits for some registers (e.g. SR, FSR) and\n\
-64 bits for others.  Use \"off\" to disable compatibility mode",
-				  &setlist),
-		     &showlist);
+64 bits for others.  Use \"off\" to disable compatibility mode"),
+		   N_("Set compatibility with MIPS targets that transfers 32 and 64 bit quantities."),
+		   N_("Compatibility with MIPS targets that transfers 32 and 64 bit quantities is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   /* Debug this files internals. */
-  add_show_from_set (add_set_cmd ("mips", class_maintenance, var_zinteger,
-				  &mips_debug, "Set mips debugging.\n\
-When non-zero, mips specific debugging is enabled.", &setdebuglist),
-		     &showdebuglist);
+  add_setshow_cmd ("mips", class_maintenance, var_zinteger,
+		   &mips_debug,
+		   N_("Set mips debugging.\n\
+When non-zero, mips specific debugging is enabled."),
+		   N_("Set mips debugging."),
+		   N_("Mips debugging is %s."),
+		   NULL, NULL,
+		   &setdebuglist, &showdebuglist);
 }
Index: mcore-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mcore-tdep.c,v
retrieving revision 1.13
diff -u -r1.13 mcore-tdep.c
--- mcore-tdep.c 18 Apr 2002 18:09:02 -0000 1.13
+++ mcore-tdep.c 1 Jul 2002 18:24:10 -0000
@@ -988,9 +988,12 @@
   tm_print_insn = print_insn_mcore;
 
 #ifdef MCORE_DEBUG
-  add_show_from_set (add_set_cmd ("mcoredebug", no_class,
-				  var_boolean, (char *) &mcore_debug,
-				  "Set mcore debugging.\n", &setlist),
-		     &showlist);
+  add_setshow_cmd ("mcoredebug", no_class,
+		   var_boolean, (char *) &mcore_debug,
+		   N_("Set mcore debugging.\n"),
+		   N_("Show mcore debugging."),
+		   N_("Mcore debugging is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 #endif
 }
Index: maint.c
===================================================================
RCS file: /cvs/src/src/gdb/maint.c,v
retrieving revision 1.27
diff -u -r1.27 maint.c
--- maint.c 15 Jun 2002 21:07:57 -0000 1.27
+++ maint.c 1 Jul 2002 18:24:10 -0000
@@ -773,23 +773,26 @@
 If you decide you want to use it: maintenance undeprecate 'commandname'",
 	   &maintenancelist);
 
-  add_show_from_set (
-		      add_set_cmd ("watchdog", class_maintenance, var_zinteger, (char *) &watchdog,
-				   "Set watchdog timer.\n\
+  add_setshow_cmd ("watchdog", class_maintenance, var_zinteger, (char *) &watchdog,
+		   N_("Set watchdog timer.\n\
 When non-zero, this timeout is used instead of waiting forever for a target to\n\
 finish a low-level step or continue operation.  If the specified amount of time\n\
-passes without a response from the target, an error occurs.", &setlist),
-		      &showlist);
+passes without a response from the target, an error occurs."),
+		   N_("Set watchdog timer."),
+		   N_("Watchdog timer is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
 
 #ifdef NOTYET
   /* FIXME: cagney/2002-06-15: A patch implementing profiling is
      pending, this just sets up the framework.  */
   tmpcmd = add_setshow_boolean_cmd ("profile", class_maintenance,
-				    var_boolean, &maintenance_profile_p, "\
+				    var_boolean, &maintenance_profile_p, N_("\
 Set internal profiling.\n\
-When enabled GDB is profiled.", "\
-Show internal profiling.\n",
+When enabled GDB is profiled."), N_("\
+Show internal profiling.\n"), N_("\
+Internal profiling is %s.\n"),
 				    maintenance_set_profile_cmd, NULL,
 				    &maintenance_set_cmdlist,
 				    &maintenance_show_cmdlist);
Index: solib.c
===================================================================
RCS file: /cvs/src/src/gdb/solib.c,v
retrieving revision 1.50
diff -u -r1.50 solib.c
--- solib.c 12 May 2002 04:20:06 -0000 1.50
+++ solib.c 1 Jul 2002 18:24:11 -0000
@@ -231,7 +231,7 @@
   if (!abfd)
     {
       close (scratch_chan);
-      error ("Could not open `%s' as an executable file: %s",
+      error (_("Could not open `%s' as an executable file: %s"),
 	     scratch_pathname, bfd_errmsg (bfd_get_error ()));
     }
 
@@ -242,17 +242,17 @@
   /* copy full path name into so_name, so that later symbol_file_add
      can find it */
   if (strlen (scratch_pathname) >= SO_NAME_MAX_PATH_SIZE)
-    error ("Full path name length of shared library exceeds SO_NAME_MAX_PATH_SIZE in so_list structure.");
+    error (_("Full path name length of shared library exceeds SO_NAME_MAX_PATH_SIZE in so_list structure."));
   strcpy (so->so_name, scratch_pathname);
 
   if (!bfd_check_format (abfd, bfd_object))
     {
-      error ("\"%s\": not in executable format: %s.",
+      error (_("\"%s\": not in executable format: %s."),
 	     scratch_pathname, bfd_errmsg (bfd_get_error ()));
     }
   if (build_section_table (abfd, &so->sections, &so->sections_end))
     {
-      error ("Can't find the file sections in `%s': %s",
+      error (_("Can't find the file sections in `%s': %s"),
 	     bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ()));
     }
 
@@ -307,7 +307,7 @@
     {
       bfd_filename = bfd_get_filename (so->abfd);
       if (! bfd_close (so->abfd))
-	warning ("cannot close \"%s\": %s",
+	warning (_("cannot close \"%s\": %s"),
 		 bfd_filename, bfd_errmsg (bfd_get_error ()));
     }
 
@@ -387,7 +387,7 @@
   if (attach_flag &&
       symfile_objfile == NULL)
     catch_errors (TARGET_SO_OPEN_SYMBOL_FILE_OBJECT, (PTR) &from_tty, 
-		  "Error reading attached process's symbol file.\n",
+		  _("Error reading attached process's symbol file.\n"),
 		  RETURN_MASK_ALL);
 
   /* Since this function might actually add some elements to the
@@ -487,7 +487,7 @@
 
 	  /* Fill in the rest of the `struct so_list' node.  */
 	  catch_errors (solib_map_sections, i,
-			"Error while mapping shared library sections:\n",
+			_("Error while mapping shared library sections:\n"),
 			RETURN_MASK_ALL);
 
 	  /* If requested, add the shared object's sections to the TARGET's
@@ -540,7 +540,7 @@
       char *re_err = re_comp (pattern);
 
       if (re_err)
-	error ("Invalid regexp: %s", re_err);
+	error (_("Invalid regexp: %s"), re_err);
     }
 
   update_solib_list (from_tty, target);
@@ -560,18 +560,18 @@
 	  if (gdb->symbols_loaded)
 	    {
 	      if (from_tty)
-		printf_unfiltered ("Symbols already loaded for %s\n",
+		printf_unfiltered (_("Symbols already loaded for %s\n"),
 				   gdb->so_name);
 	    }
 	  else if (readsyms)
 	    {
 	      if (catch_errors
 		  (symbol_add_stub, gdb,
-		   "Error while reading shared library symbols:\n",
+		   _("Error while reading shared library symbols:\n"),
 		   RETURN_MASK_ALL))
 		{
 		  if (from_tty)
-		    printf_unfiltered ("Loaded symbols for %s\n",
+		    printf_unfiltered (_("Loaded symbols for %s\n"),
 				       gdb->so_name);
 		  gdb->symbols_loaded = 1;
 		  loaded_any_symbols = 1;
@@ -581,7 +581,7 @@
 
     if (from_tty && pattern && ! any_matches)
       printf_unfiltered
-	("No loaded shared libraries match the pattern `%s'.\n", pattern);
+	(_("No loaded shared libraries match the pattern `%s'.\n"), pattern);
 
     if (loaded_any_symbols)
       {
@@ -632,7 +632,7 @@
   else
     {
       internal_error (__FILE__, __LINE__,
-		      "TARGET_PTR_BIT returned unknown size %d",
+		      _("TARGET_PTR_BIT returned unknown size %d"),
 		      TARGET_PTR_BIT);
     }
 
@@ -644,9 +644,9 @@
 	{
 	  if (!header_done)
 	    {
-	      printf_unfiltered ("%-*s%-*s%-12s%s\n", addr_width, "From",
-				 addr_width, "To", "Syms Read",
-				 "Shared Object Library");
+	      printf_unfiltered ("%-*s%-*s%-12s%s\n", addr_width, _("From"),
+				 addr_width, _("To"), _("Syms Read"),
+				 _("Shared Object Library"));
 	      header_done++;
 	    }
 
@@ -662,13 +662,13 @@
 			           (LONGEST) so->textsection->endaddr,
 	                           addr_fmt)
 			       : "");
-	  printf_unfiltered ("%-12s", so->symbols_loaded ? "Yes" : "No");
+	  printf_unfiltered ("%-12s", so->symbols_loaded ? _("Yes") : _("No"));
 	  printf_unfiltered ("%s\n", so->so_name);
 	}
     }
   if (so_list_head == NULL)
     {
-      printf_unfiltered ("No shared libraries loaded at this time.\n");
+      printf_unfiltered (_("No shared libraries loaded at this time.\n"));
     }
 }
 
@@ -849,36 +849,43 @@
   struct cmd_list_element *c;
 
   add_com ("sharedlibrary", class_files, sharedlibrary_command,
-	   "Load shared object library symbols for files matching REGEXP.");
+	   _("Load shared object library symbols for files matching REGEXP."));
   add_info ("sharedlibrary", info_sharedlibrary_command,
-	    "Status of loaded shared object libraries.");
+	    _("Status of loaded shared object libraries."));
   add_com ("nosharedlibrary", class_files, no_shared_libraries,
-	   "Unload all shared object library symbols.");
+	   _("Unload all shared object library symbols."));
 
-  add_show_from_set
-    (add_set_cmd ("auto-solib-add", class_support, var_boolean,
-		  (char *) &auto_solib_add,
-		  "Set autoloading of shared library symbols.\n\
+  add_setshow_cmd ("auto-solib-add", class_support, var_boolean,
+		   (char *) &auto_solib_add,
+		   N_("Set autoloading of shared library symbols.\n\
 If \"on\", symbols from all shared object libraries will be loaded\n\
 automatically when the inferior begins execution, when the dynamic linker\n\
 informs gdb that a new library has been loaded, or when attaching to the\n\
-inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'.",
-		  &setlist),
-     &showlist);
-
-  c = add_set_cmd ("solib-absolute-prefix", class_support, var_filename,
-		   (char *) &solib_absolute_prefix,
-		   "Set prefix for loading absolute shared library symbol files.\n\
-For other (relative) files, you can add values using `set solib-search-path'.",
-		   &setlist);
-  add_show_from_set (c, &showlist);
+inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'."),
+		   N_("Show autoloading of shared library symbols."),
+		   N_("Autoloading of shared library symbols is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd_full ("solib-absolute-prefix", class_support, var_filename,
+			(char *) &solib_absolute_prefix,
+			N_("Set prefix for loading absolute shared library symbol files.\n\
+For other (relative) files, you can add values using `set solib-search-path'."),
+			N_("Show prefix for loading absolute shared library symbol files."),
+			N_("Prefix for loading absolute shared library symbol files is %s."),
+			NULL, NULL,
+			&setlist, &showlist,
+			&c, NULL);
   set_cmd_completer (c, filename_completer);
 
-  c = add_set_cmd ("solib-search-path", class_support, var_string,
-		   (char *) &solib_search_path,
-		   "Set the search path for loading non-absolute shared library symbol files.\n\
-This takes precedence over the environment variables PATH and LD_LIBRARY_PATH.",
-		   &setlist);
-  add_show_from_set (c, &showlist);
+  add_setshow_cmd_full ("solib-search-path", class_support, var_string,
+			(char *) &solib_search_path,
+			N_("Set the search path for loading non-absolute shared library symbol files.\n\
+This takes precedence over the environment variables PATH and LD_LIBRARY_PATH."),
+			N_("Show the search path for loading non-absolute shared library symbol files."),
+			N_("The search path for loading non-absolute shared library symbol files is %s."),
+			NULL, NULL,
+			&setlist, &showlist,
+			&c, NULL);
   set_cmd_completer (c, filename_completer);
 }
Index: m32r-rom.c
===================================================================
RCS file: /cvs/src/src/gdb/m32r-rom.c,v
retrieving revision 1.9
diff -u -r1.9 m32r-rom.c
--- m32r-rom.c 10 Jun 2001 16:25:51 -0000 1.9
+++ m32r-rom.c 1 Jul 2002 18:24:12 -0000
@@ -598,26 +598,29 @@
   mon2000_ops.to_open = mon2000_open;
   add_target (&mon2000_ops);
 
-  add_show_from_set
-    (add_set_cmd ("download-path", class_obscure, var_string,
-		  (char *) &download_path,
-		  "Set the default path for downloadable SREC files.",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("download-path", class_obscure, var_string,
+		   (char *) &download_path,
+		   N_("Set the default path for downloadable SREC files."),
+		   N_("Show the default path for downloadable SREC files."),
+		   N_("The default path for downloadable SREC files is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("board-address", class_obscure, var_string,
-		  (char *) &board_addr,
-		  "Set IP address for M32R-EVA target board.",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("board-address", class_obscure, var_string,
+		   (char *) &board_addr,
+		   N_("Set IP address for M32R-EVA target board."),
+		   N_("Show IP address for M32R-EVA target board."),
+		   N_("Ip address for M32R-EVA target board is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("server-address", class_obscure, var_string,
-		  (char *) &server_addr,
-		"Set IP address for download server (GDB's host computer).",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("server-address", class_obscure, var_string,
+		   (char *) &server_addr,
+		   N_("Set IP address for download server (GDB's host computer)."),
+		   N_("Show IP address for download server (GDB's host computer)."),
+		   N_("Ip address for download server (GDB's host computer) is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
   add_com ("upload", class_obscure, m32r_upload_command,
       "Upload the srec file via the monitor's Ethernet upload capability.");
Index: lin-lwp.c
===================================================================
RCS file: /cvs/src/src/gdb/lin-lwp.c,v
retrieving revision 1.34
diff -u -r1.34 lin-lwp.c
--- lin-lwp.c 31 Mar 2002 15:10:38 -0000 1.34
+++ lin-lwp.c 1 Jul 2002 18:24:13 -0000
@@ -165,13 +165,13 @@
   static char buf[64];
 
   if (WIFSTOPPED (status))
-    snprintf (buf, sizeof (buf), "%s (stopped)",
+    snprintf (buf, sizeof (buf), _("%s (stopped)"),
 	      strsignal (WSTOPSIG (status)));
   else if (WIFSIGNALED (status))
-    snprintf (buf, sizeof (buf), "%s (terminated)",
+    snprintf (buf, sizeof (buf), _("%s (terminated)"),
 	      strsignal (WSTOPSIG (status)));
   else
-    snprintf (buf, sizeof (buf), "%d (exited)",
+    snprintf (buf, sizeof (buf), _("%d (exited)"),
 	      WEXITSTATUS (status));
 
   return buf;
@@ -361,7 +361,7 @@
     }
 
   if (verbose)
-    printf_filtered ("[New %s]\n", target_pid_to_str (ptid));
+    printf_filtered (_("[New %s]\n"), target_pid_to_str (ptid));
 
   lp = find_lwp_pid (ptid);
   if (lp == NULL)
@@ -375,7 +375,7 @@
       int status;
 
       if (ptrace (PTRACE_ATTACH, GET_LWP (ptid), 0, 0) < 0)
-	error ("Can't attach %s: %s", target_pid_to_str (ptid),
+	error (_("Can't attach %s: %s"), target_pid_to_str (ptid),
 	       safe_strerror (errno));
 
       pid = waitpid (GET_LWP (ptid), &status, 0);
@@ -423,7 +423,7 @@
   pid = waitpid (GET_PID (inferior_ptid), &status, 0);
   if (pid == -1 && errno == ECHILD)
     {
-      warning ("%s is a cloned process", target_pid_to_str (inferior_ptid));
+      warning (_("%s is a cloned process"), target_pid_to_str (inferior_ptid));
 
       /* Try again with __WCLONE to check cloned processes.  */
       pid = waitpid (GET_PID (inferior_ptid), &status, __WCLONE);
@@ -446,14 +446,14 @@
   gdb_assert (lp->status == 0 || WIFSTOPPED (lp->status));
 
   if (debug_lin_lwp && lp->status)
-    fprintf_unfiltered (gdb_stdlog, "Pending %s for LWP %ld on detach.\n",
+    fprintf_unfiltered (gdb_stdlog, _("Pending %s for LWP %ld on detach.\n"),
 			strsignal (WSTOPSIG (lp->status)), GET_LWP (lp->ptid));
 
   while (lp->signalled && lp->stopped)
     {
       if (ptrace (PTRACE_CONT, GET_LWP (lp->ptid), 0,
 		  WSTOPSIG (lp->status)) < 0)
-	error ("Can't continue %s: %s", target_pid_to_str (lp->ptid),
+	error (_("Can't continue %s: %s"), target_pid_to_str (lp->ptid),
 	       safe_strerror (errno));
 
       lp->stopped = 0;
@@ -470,7 +470,7 @@
     {
       if (ptrace (PTRACE_DETACH, GET_LWP (lp->ptid), 0,
 		  WSTOPSIG (lp->status)) < 0)
-	error ("Can't detach %s: %s", target_pid_to_str (lp->ptid),
+	error (_("Can't detach %s: %s"), target_pid_to_str (lp->ptid),
 	       safe_strerror (errno));
 
       delete_lwp (lp->ptid);
@@ -679,12 +679,13 @@
 		 thread.  */
 	      if (!ptid_equal (lp->ptid, inferior_ptid))
 		delete_thread (lp->ptid);
-	      printf_unfiltered ("[%s exited]\n",
+	      printf_unfiltered (_("[%s exited]\n"),
 				 target_pid_to_str (lp->ptid));
 	    }
 	  if (debug_lin_lwp)
 	    fprintf_unfiltered (gdb_stdlog, 
-				"%s exited.\n", target_pid_to_str (lp->ptid));
+				_("%s exited.\n"),
+				target_pid_to_str (lp->ptid));
 
 	  delete_lwp (lp->ptid);
 	  return 0;
@@ -721,7 +722,7 @@
 	      if (debug_lin_lwp)
 		{
 		  fprintf_unfiltered (gdb_stderr, 
-				      "SWC: Candidate SIGTRAP event in %ld\n",
+				      _("SWC: Candidate SIGTRAP event in %ld\n"),
 				      GET_LWP (lp->ptid));
 		}
 	      /* Hold the SIGTRAP for handling by lin_lwp_wait. */
@@ -741,7 +742,7 @@
 	      if (debug_lin_lwp)
 		{
 		  fprintf_unfiltered (gdb_stderr, 
-				      "SWC: Pending event %d in %ld\n",
+				      _("SWC: Pending event %d in %ld\n"),
 				      WSTOPSIG (status), GET_LWP (lp->ptid));
 		}
 	      /* Now resume this LWP and get the SIGSTOP event. */
@@ -863,7 +864,7 @@
     {
       if (debug_lin_lwp)
 	fprintf_unfiltered (gdb_stdlog,
-			    "Push back breakpoint for LWP %ld\n",
+			    _("Push back breakpoint for LWP %ld\n"),
 			    GET_LWP (lp->ptid));
 
       /* Back up the PC if necessary.  */
@@ -895,7 +896,7 @@
     {
       if (debug_lin_lwp)
 	fprintf_unfiltered (gdb_stdlog,
-			    "Select single-step LWP %ld\n",
+			    _("Select single-step LWP %ld\n"),
 			    GET_LWP (event_lp->ptid));
     }
   else
@@ -912,7 +913,7 @@
 
       if (debug_lin_lwp && num_events > 1)
 	fprintf_unfiltered (gdb_stdlog, 
-			    "Found %d SIGTRAP events, selecting #%d\n", 
+			    _("Found %d SIGTRAP events, selecting #%d\n"), 
 			    num_events, random_selector);
 
       event_lp = iterate_over_lwps (select_event_lwp_callback,
@@ -973,7 +974,8 @@
 
   if (pid == -1)
     {
-      warning ("Child process unexpectedly missing: %s", safe_strerror (errno));
+      warning (_("Child process unexpectedly missing: %s"),
+	       safe_strerror (errno));
 
       /* Claim it exited with unknown signal.  */
       ourstatus->kind = TARGET_WAITKIND_SIGNALLED;
@@ -1023,7 +1025,7 @@
 
 	  if (debug_lin_lwp && status)
 	    fprintf_unfiltered (gdb_stdlog,
-				"Using pending wait status %s for LWP %ld.\n",
+				_("Using pending wait status %s for LWP %ld.\n"),
 				status_to_str (status), GET_LWP (lp->ptid));
 	}
 
@@ -1036,7 +1038,7 @@
     {
       if (debug_lin_lwp)
 	fprintf_unfiltered (gdb_stdlog, 
-			    "Waiting for specific LWP %ld.\n",
+			    _("Waiting for specific LWP %ld.\n"),
 			    GET_LWP (ptid));
 
       /* We have a specific LWP to check.  */
@@ -1047,7 +1049,7 @@
 
       if (debug_lin_lwp && status)
 	fprintf_unfiltered (gdb_stdlog,
-			    "Using pending wait status %s for LWP %ld.\n",
+			    _("Using pending wait status %s for LWP %ld.\n"),
 			    status_to_str (status), GET_LWP (lp->ptid));
 
       /* If we have to wait, take into account whether PID is a cloned
@@ -1113,7 +1115,7 @@
 		    }
 
 		  add_thread (lp->ptid);
-		  printf_unfiltered ("[New %s]\n",
+		  printf_unfiltered (_("[New %s]\n"),
 				     target_pid_to_str (lp->ptid));
 		}
 	    }
@@ -1129,12 +1131,12 @@
                      thread.  */
 		  if (! ptid_equal (lp->ptid, inferior_ptid))
 		    delete_thread (lp->ptid);
-		  printf_unfiltered ("[%s exited]\n",
+		  printf_unfiltered (_("[%s exited]\n"),
 				     target_pid_to_str (lp->ptid));
 		}
 	      if (debug_lin_lwp)
 		fprintf_unfiltered (gdb_stdlog, 
-				    "%s exited.\n", 
+				    _("%s exited.\n"), 
 				    target_pid_to_str (lp->ptid));
 
 	      delete_lwp (lp->ptid);
@@ -1154,7 +1156,7 @@
 	    {
 	      if (debug_lin_lwp)
 		fprintf_unfiltered (gdb_stdlog, 
-				    "Delayed SIGSTOP caught for %s.\n",
+				    _("Delayed SIGSTOP caught for %s.\n"),
 				    target_pid_to_str (lp->ptid));
 
 	      /* This is a delayed SIGSTOP.  */
@@ -1233,7 +1235,7 @@
   lp->stopped = 1;
 
   if (debug_lin_lwp)
-    fprintf_unfiltered (gdb_stdlog, "Candidate event %s in LWP %ld.\n",
+    fprintf_unfiltered (gdb_stdlog, _("Candidate event %s in LWP %ld.\n"),
 			status_to_str (status), GET_LWP (lp->ptid));
 
   /* Now stop all other LWP's ...  */
@@ -1262,7 +1264,7 @@
       trap_ptid = (threaded ? lp->ptid : pid_to_ptid (GET_LWP (lp->ptid)));
       if (debug_lin_lwp)
 	fprintf_unfiltered (gdb_stdlog, 
-			    "LLW: trap_ptid is %ld\n",
+			    _("LLW: trap_ptid is %ld\n"),
 			    GET_LWP (trap_ptid));
     }
   else
@@ -1422,8 +1424,8 @@
   lin_lwp_ops.to_open = lin_lwp_open;
 #endif
   lin_lwp_ops.to_shortname = "lwp-layer";
-  lin_lwp_ops.to_longname = "lwp-layer";
-  lin_lwp_ops.to_doc = "Low level threads support (LWP layer)";
+  lin_lwp_ops.to_longname = N_ ("lwp-layer");
+  lin_lwp_ops.to_doc = N_ ("Low level threads support (LWP layer)");
   lin_lwp_ops.to_attach = lin_lwp_attach;
   lin_lwp_ops.to_detach = lin_lwp_detach;
   lin_lwp_ops.to_resume = lin_lwp_resume;
@@ -1474,12 +1476,14 @@
 
   sigemptyset (&blocked_mask);
 
-  add_show_from_set (add_set_cmd ("lin-lwp", no_class, var_zinteger,
-				  (char *) &debug_lin_lwp, 
-				  "Set debugging of GNU/Linux lwp module.\n\
-Enables printf debugging output.\n",
-				      &setdebuglist),
-		     &showdebuglist);
+  add_setshow_cmd ("lin-lwp", no_class, var_zinteger,
+		   (char *) &debug_lin_lwp, 
+		   N_("Set debugging of GNU/Linux lwp module.\n\
+Enables printf debugging output.\n"),
+		   N_("Set debugging of GNU/Linux lwp module."),
+		   N_("Debugging of GNU/Linux lwp module is %s."),
+		   NULL, NULL,
+		   &setdebuglist, &showdebuglist);
 }
 
 
Index: language.c
===================================================================
RCS file: /cvs/src/src/gdb/language.c,v
retrieving revision 1.24
diff -u -r1.24 language.c
--- language.c 12 May 2002 04:20:05 -0000 1.24
+++ language.c 1 Jul 2002 18:24:14 -0000
@@ -1509,11 +1509,14 @@
 
   /* GDB commands for language specific stuff */
 
-  set = add_set_cmd ("language", class_support, var_string_noescape,
-		     (char *) &language,
-		     "Set the current source language.",
-		     &setlist);
-  show = add_show_from_set (set, &showlist);
+  add_setshow_cmd_full ("language", class_support, var_string_noescape,
+			(char *) &language,
+			N_("Set the current source language."),
+			N_("Show the current source language."),
+			N_("The current source language is %s."),
+			NULL, NULL,
+			&setlist, &showlist,
+			&set, &show);
   set_cmd_cfunc (set, set_language_command);
   set_cmd_cfunc (show, show_language_command);
 
@@ -1529,28 +1532,37 @@
   add_alias_cmd ("c", "check", no_class, 1, &showlist);
   add_alias_cmd ("ch", "check", no_class, 1, &showlist);
 
-  set = add_set_cmd ("type", class_support, var_string_noescape,
-		     (char *) &type,
-		     "Set type checking.  (on/warn/off/auto)",
-		     &setchecklist);
-  show = add_show_from_set (set, &showchecklist);
+  add_setshow_cmd_full ("type", class_support, var_string_noescape,
+			(char *) &type,
+			N_("Set type checking.  (on/warn/off/auto)"),
+			N_("Show type checking."),
+			N_("Type checking is %s."),
+			NULL, NULL,
+			&setchecklist, &showchecklist,
+			&set, &show);
   set_cmd_cfunc (set, set_type_command);
   set_cmd_cfunc (show, show_type_command);
 
-  set = add_set_cmd ("range", class_support, var_string_noescape,
-		     (char *) &range,
-		     "Set range checking.  (on/warn/off/auto)",
-		     &setchecklist);
-  show = add_show_from_set (set, &showchecklist);
+  add_setshow_cmd_full ("range", class_support, var_string_noescape,
+			(char *) &range,
+			N_("Set range checking.  (on/warn/off/auto)"),
+			N_("Show range checking."),
+			N_("Range checking is %s."),
+			NULL, NULL,
+			&setchecklist, &showchecklist,
+			&set, &show);
   set_cmd_cfunc (set, set_range_command);
   set_cmd_cfunc (show, show_range_command);
 
-  set = add_set_cmd ("case-sensitive", class_support, var_string_noescape,
-                     (char *) &case_sensitive,
-                     "Set case sensitivity in name search.  (on/off/auto)\n\
-For Fortran the default is off; for other languages the default is on.",
-                     &setlist);
-  show = add_show_from_set (set, &showlist);
+  add_setshow_cmd_full ("case-sensitive", class_support, var_string_noescape,
+			(char *) &case_sensitive,
+			N_("Set case sensitivity in name search.  (on/off/auto)\n\
+For Fortran the default is off; for other languages the default is on."),
+			N_("Set case sensitivity in name search."),
+			N_("Case sensitivity in name search is %s."),
+			NULL, NULL,
+			&setlist, &showlist,
+			&set, &show);
   set_cmd_cfunc (set, set_case_command);
   set_cmd_cfunc (show, show_case_command);
 
Index: kod.c
===================================================================
RCS file: /cvs/src/src/gdb/kod.c,v
retrieving revision 1.8
diff -u -r1.8 kod.c
--- kod.c 18 Mar 2002 02:26:31 -0000 1.8
+++ kod.c 1 Jul 2002 18:24:14 -0000
@@ -228,12 +228,11 @@
 void
 _initialize_kod (void)
 {
-  struct cmd_list_element *c;
-
-  c = add_set_cmd ("os", no_class, var_string,
+  add_setshow_cmd ("os", no_class, var_string,
 		   (char *) &operating_system,
-		   "Set operating system",
-		   &setlist);
-  set_cmd_sfunc (c, kod_set_os);
-  add_show_from_set (c, &showlist);
+		   N_("Set operating system."),
+		   N_("Show operating system."),
+		   N_("Operating system is %sm"),
+		   kod_set_os, NULL,
+		   &setlist, &showlist);
 }
Index: irix5-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/irix5-nat.c,v
retrieving revision 1.17
diff -u -r1.17 irix5-nat.c
--- irix5-nat.c 27 Feb 2002 01:40:35 -0000 1.17
+++ irix5-nat.c 1 Jul 2002 18:24:15 -0000
@@ -1288,16 +1288,17 @@
   add_info ("sharedlibrary", info_sharedlibrary_command,
 	    "Status of loaded shared object libraries.");
 
-  add_show_from_set
-    (add_set_cmd ("auto-solib-add", class_support, var_boolean,
-		  (char *) &auto_solib_add,
-		  "Set autoloading of shared library symbols.\n\
+  add_setshow_cmd ("auto-solib-add", class_support, var_boolean,
+		   (char *) &auto_solib_add,
+		   N_("Set autoloading of shared library symbols.\n\
 If \"on\", symbols from all shared object libraries will be loaded\n\
 automatically when the inferior begins execution, when the dynamic linker\n\
 informs gdb that a new library has been loaded, or when attaching to the\n\
-inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'.",
-		  &setlist),
-     &showlist);
+inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'."),
+		   N_("Show autoloading of shared library symbols."),
+		   N_("Autoloading of shared library symbols is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
 
 
Index: infrun.c
===================================================================
RCS file: /cvs/src/src/gdb/infrun.c,v
retrieving revision 1.61
diff -u -r1.61 infrun.c
--- infrun.c 25 Jun 2002 18:38:57 -0000 1.61
+++ infrun.c 1 Jul 2002 18:24:19 -0000
@@ -4166,7 +4166,6 @@
 {
   register int i;
   register int numsigs;
-  struct cmd_list_element *c;
 
   register_gdbarch_swap (&stop_registers, sizeof (stop_registers), NULL);
   register_gdbarch_swap (NULL, 0, build_infrun);
@@ -4269,18 +4268,19 @@
   signal_print[TARGET_SIGNAL_CANCEL] = 0;
 
 #ifdef SOLIB_ADD
-  add_show_from_set
-    (add_set_cmd ("stop-on-solib-events", class_support, var_zinteger,
-		  (char *) &stop_on_solib_events,
-		  "Set stopping for shared library events.\n\
+  add_setshow_cmd ("stop-on-solib-events", class_support, var_zinteger,
+		   (char *) &stop_on_solib_events,
+		   N_("Set stopping for shared library events.\n\
 If nonzero, gdb will give control to the user when the dynamic linker\n\
 notifies gdb of shared library events.  The most common event of interest\n\
-to the user would be loading/unloading of a new library.\n",
-		  &setlist),
-     &showlist);
+to the user would be loading/unloading of a new library.\n"),
+		   N_("Show stopping for shared library events."),
+		   N_("Stopping for shared library events is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 #endif
 
-  c = add_set_enum_cmd ("follow-fork-mode",
+  add_setshow_enum_cmd ("follow-fork-mode",
 			class_run,
 			follow_fork_mode_kind_names,
 			&follow_fork_mode_string,
@@ -4302,39 +4302,43 @@
    For \"parent\" or \"child\", the unfollowed process will run free.\n\
    By default, the debugger will follow the parent process.",
  */
-			"Set debugger response to a program call of fork \
+			N_("Set debugger response to a program call of fork \
 or vfork.\n\
 A fork or vfork creates a new process.  follow-fork-mode can be:\n\
   parent  - the original process is debugged after a fork\n\
   child   - the new process is debugged after a fork\n\
   ask     - the debugger will ask for one of the above choices\n\
 For \"parent\" or \"child\", the unfollowed process will run free.\n\
-By default, the debugger will follow the parent process.",
-			&setlist);
-  add_show_from_set (c, &showlist);
+By default, the debugger will follow the parent process."),
+			N_("Show debugger response to a program call of fork or vfork."),
+			N_("Debugger response to a program call of fork or vfork is %s."),
+			NULL, NULL,
+			&setlist, &showlist);
 
-  c = add_set_enum_cmd ("scheduler-locking", class_run,
+  add_setshow_enum_cmd ("scheduler-locking", class_run,
 			scheduler_enums,	/* array of string names */
 			&scheduler_mode,	/* current mode  */
-			"Set mode for locking scheduler during execution.\n\
+			N_("Set mode for locking scheduler during execution.\n\
 off  == no locking (threads may preempt at any time)\n\
 on   == full locking (no thread except the current thread may run)\n\
 step == scheduler locked during every single-step operation.\n\
 	In this mode, no other thread may run during a step command.\n\
-	Other threads may run while stepping over a function call ('next').",
-			&setlist);
+	Other threads may run while stepping over a function call ('next')."),
+			N_("Show mode for locking scheduler during execution."),
+			N_("Mode for locking scheduler during execution is %s."),
+			set_schedlock_func, NULL,
+			&setlist, &showlist);
 
-  set_cmd_sfunc (c, set_schedlock_func);	/* traps on target vector */
-  add_show_from_set (c, &showlist);
-
-  c = add_set_cmd ("step-mode", class_run,
+  add_setshow_cmd ("step-mode", class_run,
 		   var_boolean, (char*) &step_stop_if_no_debug,
-"Set mode of the step operation. When set, doing a step over a\n\
+		   N_("Set mode of the step operation. When set, doing a step over a\n\
 function without debug line information will stop at the first\n\
 instruction of that function. Otherwise, the function is skipped and\n\
-the step command stops at a different source line.",
-			&setlist);
-  add_show_from_set (c, &showlist);
+the step command stops at a different source line."),
+		   N_("Show mode of the step operation."),
+		   N_("Mode of the step operation is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   /* ptid initializations */
   null_ptid = ptid_build (0, 0, 0);
Index: gdbtypes.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbtypes.c,v
retrieving revision 1.53
diff -u -r1.53 gdbtypes.c
--- gdbtypes.c 14 Jun 2002 14:34:25 -0000 1.53
+++ gdbtypes.c 1 Jul 2002 18:24:22 -0000
@@ -3286,11 +3286,13 @@
 	       "bool", (struct objfile *) NULL);
 
   /* Add user knob for controlling resolution of opaque types */
-  add_show_from_set
-    (add_set_cmd ("opaque-type-resolution", class_support, var_boolean, (char *) &opaque_type_resolution,
-		  "Set resolution of opaque struct/class/union types (if set before loading symbols).",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("opaque-type-resolution", class_support,
+		   var_boolean, (char *) &opaque_type_resolution,
+		   N_("Set resolution of opaque struct/class/union types (if set before loading symbols)."),
+		   N_("Show resolution of opaque struct/class/union types (if set before loading symbols)."),
+		   N_("Resolution of opaque struct/class/union types (if set before loading symbols) is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
   opaque_type_resolution = 1;
 
   /* Build SIMD types.  */
@@ -3498,10 +3500,13 @@
 	       0, "builtin_type_ia64_quad_little", NULL);
   TYPE_FLOATFORMAT (builtin_type_ia64_quad_little) = &floatformat_ia64_quad_little;
 
-  add_show_from_set (
-		     add_set_cmd ("overload", no_class, var_zinteger, (char *) &overload_debug,
-				  "Set debugging of C++ overloading.\n\
-			  When enabled, ranking of the functions\n\
-			  is displayed.", &setdebuglist),
-		     &showdebuglist);
+  add_setshow_cmd ("overload", no_class,
+		   var_zinteger, (char *) &overload_debug,
+		   N_("Set debugging of C++ overloading.\n\
+When enabled, ranking of the functions\n\
+is displayed."),
+		   N_("Show debugging of C++ overloading."),
+		   N_("Debugging of C++ overloading is %s."),
+		   NULL, NULL,
+		   &setdebuglist, &showdebuglist);
 }
Index: gdbarch.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.c,v
retrieving revision 1.135
diff -u -r1.135 gdbarch.c
--- gdbarch.c 17 Jun 2002 23:32:27 -0000 1.135
+++ gdbarch.c 1 Jul 2002 18:24:29 -0000
@@ -5310,7 +5310,7 @@
 void
 _initialize_gdbarch (void)
 {
-  struct cmd_list_element *c;
+  struct cmd_list_element *set, *show;
 
   INIT_DISASSEMBLE_INFO_NO_ARCH (tm_print_insn_info, gdb_stdout, (fprintf_ftype)fprintf_filtered);
   tm_print_insn_info.flavour = bfd_target_unknown_flavour;
@@ -5318,20 +5318,28 @@
   tm_print_insn_info.memory_error_func = dis_asm_memory_error;
   tm_print_insn_info.print_address_func = dis_asm_print_address;
 
-  add_show_from_set (add_set_cmd ("arch",
-				  class_maintenance,
-				  var_zinteger,
-				  (char *)&gdbarch_debug,
-				  "Set architecture debugging.\n\
-When non-zero, architecture debugging is enabled.", &setdebuglist),
-		     &showdebuglist);
-  c = add_set_cmd ("archdebug",
+  add_setshow_cmd ("arch",
 		   class_maintenance,
 		   var_zinteger,
 		   (char *)&gdbarch_debug,
-		   "Set architecture debugging.\n\
-When non-zero, architecture debugging is enabled.", &setlist);
+		   N_("Set architecture debugging.\n\
+When non-zero, architecture debugging is enabled."),
+		   N_("Show architecture debugging."),
+		   N_("Architecture debugging is %s."),
+		   NULL, NULL,
+		   &setdebuglist, &showdebuglist);
 
-  deprecate_cmd (c, "set debug arch");
-  deprecate_cmd (add_show_from_set (c, &showlist), "show debug arch");
+  add_setshow_cmd_full ("archdebug",
+			class_maintenance,
+			var_zinteger,
+			(char *)&gdbarch_debug,
+			N_("Set architecture debugging.\n\
+When non-zero, architecture debugging is enabled."),
+			N_("Show architecture debugging."),
+			N_("Architecture debugging is %s."),
+			NULL, NULL,
+			&setlist, &showlist,
+			&set, &show);
+  deprecate_cmd (set, "set debug arch");
+  deprecate_cmd (show, "show debug arch");
 }
Index: gdb-events.c
===================================================================
RCS file: /cvs/src/src/gdb/gdb-events.c,v
retrieving revision 1.9
diff -u -r1.9 gdb-events.c
--- gdb-events.c 19 Mar 2002 02:51:05 -0000 1.9
+++ gdb-events.c 1 Jul 2002 18:24:29 -0000
@@ -324,7 +324,7 @@
 void
 _initialize_gdb_events (void)
 {
-  struct cmd_list_element *c;
+  struct cmd_list_element *set, *show;
 #if WITH_GDB_EVENTS
   queue_event_hooks.breakpoint_create = queue_breakpoint_create;
   queue_event_hooks.breakpoint_delete = queue_breakpoint_delete;
@@ -335,17 +335,26 @@
   queue_event_hooks.architecture_changed = queue_architecture_changed;
 #endif
 
-  c = add_set_cmd ("eventdebug", class_maintenance, var_zinteger,
-		   (char *) (&gdb_events_debug), "Set event debugging.\n\
-When non-zero, event/notify debugging is enabled.", &setlist);
-  deprecate_cmd (c, "set debug event");
-  deprecate_cmd (add_show_from_set (c, &showlist), "show debug event");
+  add_setshow_cmd_full ("eventdebug", class_maintenance, var_zinteger,
+			(char *) (&gdb_events_debug),
+			N_("Set event debugging.\n\
+When non-zero, event/notify debugging is enabled."),
+			N_("Show event debugging."),
+			N_("Event debugging is %s."),
+			NULL, NULL,
+			&setlist, &showlist,
+			&set, &show);
+  deprecate_cmd (set, "set debug event");
+  deprecate_cmd (show, "show debug event");
 
-  add_show_from_set (add_set_cmd ("event",
-				  class_maintenance,
-				  var_zinteger,
-				  (char *) (&gdb_events_debug),
-				  "Set event debugging.\n\
-When non-zero, event/notify debugging is enabled.", &setdebuglist),
-		     &showdebuglist);
+  add_setshow_cmd ("event",
+		   class_maintenance,
+		   var_zinteger,
+		   (char *) (&gdb_events_debug),
+		   N_("Set event debugging.\n\
+When non-zero, event/notify debugging is enabled."),
+		   N_("Show event debugging."),
+		   N_("Event debugging is %s."),
+		   NULL, NULL,
+		   &setdebuglist, &showdebuglist);
 }
Index: exec.c
===================================================================
RCS file: /cvs/src/src/gdb/exec.c,v
retrieving revision 1.18
diff -u -r1.18 exec.c
--- exec.c 6 Mar 2002 06:28:33 -0000 1.18
+++ exec.c 1 Jul 2002 18:24:30 -0000
@@ -759,11 +759,12 @@
 file itself are wrong.  Each section must be changed separately.  The\n\
 ``info files'' command lists all the sections and their addresses.");
 
-  add_show_from_set
-    (add_set_cmd ("write", class_support, var_boolean, (char *) &write_files,
-		  "Set writing into executable and core files.",
-		  &setlist),
-     &showlist);
+  add_setshow_cmd ("write", class_support, var_boolean, (char *) &write_files,
+		   N_("Set writing into executable and core files."),
+		   N_("Show writing into executable and core files."),
+		   N_("Writing into executable and core files is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_target (&exec_ops);
 }
Index: dcache.c
===================================================================
RCS file: /cvs/src/src/gdb/dcache.c,v
retrieving revision 1.15
diff -u -r1.15 dcache.c
--- dcache.c 6 Apr 2001 22:43:55 -0000 1.15
+++ dcache.c 1 Jul 2002 18:24:31 -0000
@@ -584,18 +584,19 @@
 void
 _initialize_dcache (void)
 {
-  add_show_from_set
-    (add_set_cmd ("remotecache", class_support, var_boolean,
-		  (char *) &dcache_enabled_p,
-		  "\
+  add_setshow_cmd ("remotecache", class_support, var_boolean,
+		   (char *) &dcache_enabled_p,
+		   N_("\
 Set cache use for remote targets.\n\
 When on, use data caching for remote targets.  For many remote targets\n\
 this option can offer better throughput for reading target memory.\n\
 Unfortunately, gdb does not currently know anything about volatile\n\
 registers and thus data caching will produce incorrect results with\n\
-volatile registers are in use.  By default, this option is off.",
-		  &setlist),
-     &showlist);
+volatile registers are in use.  By default, this option is off."),
+		   N_("Show cache use for remote targets."),
+		   N_("Cache use for remote targets is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_info ("dcache", dcache_info,
 	    "Print information on the dcache performance.");
Index: d30v-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/d30v-tdep.c,v
retrieving revision 1.13
diff -u -r1.13 d30v-tdep.c
--- d30v-tdep.c 12 Apr 2002 18:18:56 -0000 1.13
+++ d30v-tdep.c 1 Jul 2002 18:24:32 -0000
@@ -1353,13 +1353,18 @@
   add_info ("trace", trace_info,
 	    "Display info about the trace data buffer.");
 
-  add_show_from_set (add_set_cmd ("tracedisplay", no_class,
-				  var_integer, (char *) &trace_display,
-			     "Set automatic display of trace.\n", &setlist),
-		     &showlist);
-  add_show_from_set (add_set_cmd ("tracesource", no_class,
-			   var_integer, (char *) &default_trace_show_source,
-		      "Set display of source code with trace.\n", &setlist),
-		     &showlist);
-
+  add_setshow_cmd ("tracedisplay", no_class,
+		   var_integer, (char *) &trace_display,
+		   N_("Set automatic display of trace.\n"),
+		   N_("Show automatic display of trace."),
+		   N_("Automatic display of trace is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
+  add_setshow_cmd ("tracesource", no_class,
+		   var_integer, (char *) &default_trace_show_source,
+		   N_("Set display of source code with trace.\n"),
+		   N_("Show display of source code with trace."),
+		   N_("Display of source code with trace is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 }
Index: d10v-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/d10v-tdep.c,v
retrieving revision 1.48
diff -u -r1.48 d10v-tdep.c
--- d10v-tdep.c 17 Jun 2002 23:32:27 -0000 1.48
+++ d10v-tdep.c 1 Jul 2002 18:24:33 -0000
@@ -1677,13 +1677,18 @@
   add_info ("itrace", trace_info,
 	    "Display info about the trace data buffer.");
 
-  add_show_from_set (add_set_cmd ("itracedisplay", no_class,
-				  var_integer, (char *) &trace_display,
-			     "Set automatic display of trace.\n", &setlist),
-		     &showlist);
-  add_show_from_set (add_set_cmd ("itracesource", no_class,
-			   var_integer, (char *) &default_trace_show_source,
-		      "Set display of source code with trace.\n", &setlist),
-		     &showlist);
-
+  add_setshow_cmd ("itracedisplay", no_class,
+		   var_integer, (char *) &trace_display,
+		   N_("Set automatic display of trace.\n"),
+		   N_("Show automatic display of trace."),
+		   N_("Automatic display of trace is %sn"),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
+  add_setshow_cmd ("itracesource", no_class,
+		   var_integer, (char *) &default_trace_show_source,
+		   N_("Set display of source code with trace.\n"),
+		   N_("Show display of source code with trace.\n"),
+		   N_("Display of source code with trace is %s.\n"),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 }
Index: cris-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/cris-tdep.c,v
retrieving revision 1.18
diff -u -r1.18 cris-tdep.c
--- cris-tdep.c 26 Jun 2002 15:28:46 -0000 1.18
+++ cris-tdep.c 1 Jul 2002 18:24:36 -0000
@@ -3874,23 +3874,29 @@
   tm_print_insn = cris_delayed_get_disassembler;
 
   /* CRIS-specific user-commands.  */
-  c = add_set_cmd ("cris-version", class_support, var_integer, 
+  add_setshow_cmd ("cris-version", class_support, var_integer, 
                    (char *) &usr_cmd_cris_version, 
-                   "Set the current CRIS version.", &setlist);
-  set_cmd_sfunc (c, cris_version_update);
-  add_show_from_set (c, &showlist);
+                   N_("Set the current CRIS version."),
+                   N_("Show the current CRIS version."),
+                   N_("The current CRIS version is %s."),
+		   cris_version_update, show_cmd,
+		   &setlist, &showlist);
   
-  c = add_set_enum_cmd ("cris-mode", class_support, cris_mode_enums, 
+  add_setshow_enum_cmd ("cris-mode", class_support, cris_mode_enums, 
                         &usr_cmd_cris_mode, 
-                        "Set the current CRIS mode.", &setlist);
-  set_cmd_sfunc (c, cris_mode_update);
-  add_show_from_set (c, &showlist);
+                        N_("Set the current CRIS mode."),
+			N_("Show the current CRIS mode."),
+			N_("The current CRIS mode is %s."),
+			cris_mode_update, NULL,
+			&setlist, &showlist);
 
-  c = add_set_enum_cmd ("cris-abi", class_support, cris_abi_enums, 
+  add_setshow_enum_cmd ("cris-abi", class_support, cris_abi_enums, 
                         &usr_cmd_cris_abi, 
-                        "Set the current CRIS ABI version.", &setlist);
-  set_cmd_sfunc (c, cris_abi_update);
-  add_show_from_set (c, &showlist);
+                        N_("Set the current CRIS ABI version."),
+                        N_("Show the current CRIS ABI version."),
+                        N_("The current CRIS ABI version is %s."),
+			cris_abi_update, NULL,
+			&setlist, &showlist);
 
   c = add_cmd ("cris-fpless-backtrace", class_support, cris_fpless_backtrace, 
                "Display call chain using the subroutine return pointer.\n"
Index: cp-valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/cp-valprint.c,v
retrieving revision 1.12
diff -u -r1.12 cp-valprint.c
--- cp-valprint.c 16 Mar 2002 20:53:14 -0000 1.12
+++ cp-valprint.c 1 Jul 2002 18:24:36 -0000
@@ -822,26 +822,29 @@
 void
 _initialize_cp_valprint (void)
 {
-  add_show_from_set
-    (add_set_cmd ("static-members", class_support, var_boolean,
-		  (char *) &static_field_print,
-		  "Set printing of C++ static members.",
-		  &setprintlist),
-     &showprintlist);
+  add_setshow_cmd ("static-members", class_support, var_boolean,
+		   (char *) &static_field_print,
+		   N_("Set printing of C++ static members."),
+		   N_("Show printing of C++ static members."),
+		   N_("Printing of C++ static members is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
   /* Turn on printing of static fields.  */
   static_field_print = 1;
 
-  add_show_from_set
-    (add_set_cmd ("vtbl", class_support, var_boolean, (char *) &vtblprint,
-		  "Set printing of C++ virtual function tables.",
-		  &setprintlist),
-     &showprintlist);
+  add_setshow_cmd ("vtbl", class_support, var_boolean, (char *) &vtblprint,
+		   N_("Set printing of C++ virtual function tables."),
+		   N_("Show printing of C++ virtual function tables."),
+		   N_("Printing of C++ virtual function tables is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
 
-  add_show_from_set
-    (add_set_cmd ("object", class_support, var_boolean, (char *) &objectprint,
-	      "Set printing of object's derived type based on vtable info.",
-		  &setprintlist),
-     &showprintlist);
+  add_setshow_cmd ("object", class_support, var_boolean, (char *) &objectprint,
+		   N_("Set printing of object's derived type based on vtable info."),
+		   N_("Show printing of object's derived type based on vtable info."),
+		   N_("Printing of object's derived type based on vtable info is %s."),
+		   NULL, NULL,
+		   &setprintlist, &showprintlist);
 
   /* Give people the defaults which they are used to.  */
   objectprint = 0;
Index: corefile.c
===================================================================
RCS file: /cvs/src/src/gdb/corefile.c,v
retrieving revision 1.19
diff -u -r1.19 corefile.c
--- corefile.c 30 May 2002 22:41:24 -0000 1.19
+++ corefile.c 1 Jul 2002 18:24:37 -0000
@@ -457,13 +457,14 @@
 `target core' and `detach' commands.", &cmdlist);
   set_cmd_completer (c, filename_completer);
 
-  c = add_set_cmd ("gnutarget", class_files, var_string_noescape,
+  add_setshow_cmd ("gnutarget", class_files, var_string_noescape,
 		   (char *) &gnutarget_string,
-		   "Set the current BFD target.\n\
-Use `set gnutarget auto' to specify automatic detection.",
-		   &setlist);
-  set_cmd_sfunc (c, set_gnutarget_command);
-  add_show_from_set (c, &showlist);
+		   N_("Set the current BFD target.\n\
+Use `set gnutarget auto' to specify automatic detection."),
+		   N_("Show the current BFD target."),
+		   N_("The current BFD target is %s."),
+		   set_gnutarget_command, NULL,
+		   &setlist, &showlist);
 
   if (getenv ("GNUTARGET"))
     set_gnutarget (getenv ("GNUTARGET"));
Index: complaints.c
===================================================================
RCS file: /cvs/src/src/gdb/complaints.c,v
retrieving revision 1.6
diff -u -r1.6 complaints.c
--- complaints.c 6 Nov 2001 23:38:14 -0000 1.6
+++ complaints.c 1 Jul 2002 18:24:37 -0000
@@ -158,11 +158,11 @@
 void
 _initialize_complaints (void)
 {
-  add_show_from_set
-    (add_set_cmd ("complaints", class_support, var_zinteger,
-		  (char *) &stop_whining,
-		  "Set max number of complaints about incorrect symbols.",
-		  &setlist),
-     &showlist);
-
+  add_setshow_cmd ("complaints", class_support, var_zinteger,
+		   (char *) &stop_whining,
+		   N_("Set max number of complaints about incorrect symbols."),
+		   N_("Show max number of complaints about incorrect symbols."),
+		   N_("Max number of complaints about incorrect symbols is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.78
diff -u -r1.78 breakpoint.c
--- breakpoint.c 26 Jun 2002 05:20:04 -0000 1.78
+++ breakpoint.c 1 Jul 2002 18:24:42 -0000
@@ -7724,15 +7724,17 @@
 	    "Synonym for ``info breakpoints''.");
 
 
-  c = add_set_cmd ("can-use-hw-watchpoints", class_support, var_zinteger,
+  add_setshow_cmd ("can-use-hw-watchpoints", class_support, var_zinteger,
 		   (char *) &can_use_hw_watchpoints,
-		   "Set debugger's willingness to use watchpoint hardware.\n\
+		   N_("Set debugger's willingness to use watchpoint hardware.\n\
 If zero, gdb will not use hardware for new watchpoints, even if\n\
 such is available.  (However, any hardware watchpoints that were\n\
 created before setting this to nonzero, will continue to use watchpoint\n\
-hardware.)",
-		   &setlist);
-  add_show_from_set (c, &showlist);
+hardware.)"),
+		   N_("Show debugger's willingness to use watchpoint hardware."),
+		   N_("Debugger's willingness to use watchpoint hardware is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   can_use_hw_watchpoints = 1;
 }
Index: arm-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/arm-tdep.c,v
retrieving revision 1.66
diff -u -r1.66 arm-tdep.c
--- arm-tdep.c 14 Jun 2002 22:55:40 -0000 1.66
+++ arm-tdep.c 1 Jul 2002 18:24:45 -0000
@@ -3041,7 +3041,6 @@
 {
   struct ui_file *stb;
   long length;
-  struct cmd_list_element *new_cmd;
   const char *setname;
   const char *setdesc;
   const char **regnames;
@@ -3074,6 +3073,7 @@
 
   /* Begin creating the help text.  */
   stb = mem_fileopen ();
+  /* FIXME: i18n */
   fprintf_unfiltered (stb, "Set the disassembly flavor.\n\
 The valid values are:\n");
 
@@ -3104,19 +3104,23 @@
   ui_file_delete (stb);
 
   /* Add the disassembly-flavor command.  */
-  new_cmd = add_set_enum_cmd ("disassembly-flavor", no_class,
-			      valid_flavors,
-			      &disassembly_flavor,
-			      helptext,
-			      &setlist);
-  set_cmd_sfunc (new_cmd, set_disassembly_flavor_sfunc);
-  add_show_from_set (new_cmd, &showlist);
+  add_setshow_enum_cmd ("disassembly-flavor", no_class,
+			valid_flavors,
+			&disassembly_flavor,
+			helptext,
+			N_("Show the disassembly flavor."),
+			N_("The disassembly flavor is %s."),
+			set_disassembly_flavor_sfunc, NULL,
+			&setlist, &showlist);
 
   /* ??? Maybe this should be a boolean.  */
-  add_show_from_set (add_set_cmd ("apcs32", no_class,
-				  var_zinteger, (char *) &arm_apcs_32,
-				  "Set usage of ARM 32-bit mode.\n", &setlist),
-		     &showlist);
+  add_setshow_cmd ("apcs32", no_class,
+		   var_zinteger, (char *) &arm_apcs_32,
+		   N_("Set usage of ARM 32-bit mode.\n"),
+		   N_("Show usage of ARM 32-bit mode.\n"),
+		   N_("Usage of ARM 32-bit mode.\ is %sn"),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   /* Add the deprecated "othernames" command.  */
 
@@ -3129,8 +3133,11 @@
     xcalloc (1, sizeof (struct frame_extra_info));
 
   /* Debugging flag.  */
-  add_show_from_set (add_set_cmd ("arm", class_maintenance, var_zinteger,
-				  &arm_debug, "Set arm debugging.\n\
-When non-zero, arm specific debugging is enabled.", &setdebuglist),
-		     &showdebuglist);
+  add_setshow_cmd ("arm", class_maintenance, var_zinteger,
+		   &arm_debug, N_("Set arm debugging.\n\
+When non-zero, arm specific debugging is enabled."),
+		   N_("Show arm debugging."),
+		   N_("Arm debugging is %s."),
+		   NULL, NULL,
+		   &setdebuglist, &showdebuglist);
 }
Index: arc-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/arc-tdep.c,v
retrieving revision 1.11
diff -u -r1.11 arc-tdep.c
--- arc-tdep.c 22 Apr 2002 02:18:59 -0000 1.11
+++ arc-tdep.c 1 Jul 2002 18:24:45 -0000
@@ -692,46 +692,50 @@
 void
 _initialize_arc_tdep (void)
 {
-  struct cmd_list_element *c;
-
-  c = add_set_cmd ("cpu", class_support, var_string_noescape,
+  add_setshow_cmd ("cpu", class_support, var_string_noescape,
 		   (char *) &tmp_arc_cpu_type,
-		   "Set the type of ARC cpu in use.\n\
+		   N_("Set the type of ARC cpu in use.\n\
 This command has two purposes.  In a multi-cpu system it lets one\n\
 change the cpu being debugged.  It also gives one access to\n\
 cpu-type-specific registers and recognize cpu-type-specific instructions.\
-",
-		   &setlist);
-  set_cmd_cfunc (c, arc_set_cpu_type_command);
-  c = add_show_from_set (c, &showlist);
-  set_cmd_cfunc (c, arc_show_cpu_type_command);
+"),
+		   N_("Show the type of ARC cpu in use."),
+		   N_("The type of ARC cpu in use is %s."),
+		   arc_set_cpu_type_command, arc_show_cpu_type_command,
+		   &setlist, &showlist);
 
   /* We have to use xstrdup() here because the `set' command frees it
      before setting a new value.  */
   tmp_arc_cpu_type = xstrdup (DEFAULT_ARC_CPU_TYPE);
   arc_set_cpu_type (tmp_arc_cpu_type);
 
-  c = add_set_cmd ("displaypipeline", class_support, var_zinteger,
+  add_setshow_cmd ("displaypipeline", class_support, var_zinteger,
 		   (char *) &display_pipeline_p,
-		   "Set pipeline display (simulator only).\n\
-When enabled, the state of the pipeline after each cycle is displayed.",
-		   &setlist);
-  c = add_show_from_set (c, &showlist);
+		   N_("Set pipeline display (simulator only).\n\
+When enabled, the state of the pipeline after each cycle is displayed."),
+		   N_("Show pipeline display (simulator only)."),
+		   N_("Pipeline display (simulator only) is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
-  c = add_set_cmd ("debugpipeline", class_support, var_zinteger,
+  add_setshow_cmd ("debugpipeline", class_support, var_zinteger,
 		   (char *) &debug_pipeline_p,
-		   "Set pipeline debug display (simulator only).\n\
-When enabled, debugging information about the pipeline is displayed.",
-		   &setlist);
-  c = add_show_from_set (c, &showlist);
+		   N_("Set pipeline debug display (simulator only).\n\
+When enabled, debugging information about the pipeline is displayed."),
+		   N_("Set pipeline debug display (simulator only)."),
+		   N_("Pipeline debug display (simulator only) is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
-  c = add_set_cmd ("cputimer", class_support, var_zinteger,
+  add_setshow_cmd ("cputimer", class_support, var_zinteger,
 		   (char *) &cpu_timer,
-		   "Set maximum cycle count (simulator only).\n\
+		   N_("Set maximum cycle count (simulator only).\n\
 Control will return to gdb if the timer expires.\n\
-A negative value disables the timer.",
-		   &setlist);
-  c = add_show_from_set (c, &showlist);
+A negative value disables the timer."),
+		   N_("Set maximum cycle count (simulator only)."),
+		   N_("Maximum cycle count (simulator only) is %s."),
+		   set_cmd, show_cmd,
+		   &setlist, &showlist);
 
   tm_print_insn = arc_print_insn;
 }
Index: alpha-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/alpha-tdep.c,v
retrieving revision 1.37
diff -u -r1.37 alpha-tdep.c
--- alpha-tdep.c 19 Jun 2002 01:12:07 -0000 1.37
+++ alpha-tdep.c 1 Jul 2002 18:24:47 -0000
@@ -1997,8 +1997,6 @@
 void
 _initialize_alpha_tdep (void)
 {
-  struct cmd_list_element *c;
-
   gdbarch_register (bfd_arch_alpha, alpha_gdbarch_init, alpha_dump_tdep);
 
   tm_print_insn = print_insn_alpha;
@@ -2008,16 +2006,15 @@
   /* We really would like to have both "0" and "unlimited" work, but
      command.c doesn't deal with that.  So make it a var_zinteger
      because the user can always use "999999" or some such for unlimited.  */
-  c = add_set_cmd ("heuristic-fence-post", class_support, var_zinteger,
+  add_setshow_cmd ("heuristic-fence-post", class_support, var_zinteger,
 		   (char *) &heuristic_fence_post,
-		   "\
+		   N_("\
 Set the distance searched for the start of a function.\n\
 If you are debugging a stripped executable, GDB needs to search through the\n\
 program for the start of a function.  This command sets the distance of the\n\
-search.  The only need to set it is when debugging a stripped executable.",
-		   &setlist);
-  /* We need to throw away the frame cache when we set this, since it
-     might change our ability to get backtraces.  */
-  set_cmd_sfunc (c, reinit_frame_cache_sfunc);
-  add_show_from_set (c, &showlist);
+search.  The only need to set it is when debugging a stripped executable."),
+		   N_("Set the distance searched for the start of a function."),
+		   N_("The distance searched for the start of a function is %s."),
+		   reinit_frame_cache_sfunc, NULL,
+		   &setlist, &showlist);
 }
Index: cli/cli-setshow.c
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-setshow.c,v
retrieving revision 1.8
diff -u -r1.8 cli-setshow.c
--- cli/cli-setshow.c 15 Jun 2002 18:45:32 -0000 1.8
+++ cli/cli-setshow.c 1 Jul 2002 18:24:47 -0000
@@ -258,7 +258,8 @@
     {
       struct cleanup *old_chain;
       struct ui_stream *stb;
-      int quote;
+      int quote, len;
+      char *text, *ps, *tem;
 
       stb = ui_out_stream_new (uiout);
       old_chain = make_cleanup_ui_out_stream_delete (stb);
@@ -267,11 +268,23 @@
       if (c->pre_show_hook)
 	(c->pre_show_hook) (c);
 
-      /* Print doc minus "show" at start.  */
-      print_doc_line (gdb_stdout, c->doc + 5);
+      /* Translate and print the `show' string.  We deal with the `%s'
+	 by hand to simplify some of the processing -- this way we
+	 don't have to figure out how to allocate a temporary buffer.  */
+      text = gettext (c->print_doc);
+      ps = strstr (text, "%s");
+      len = strlen (text);
+      if (! ps)
+	internal_error (__FILE__, __LINE__,
+			"do_setshow_command: invalid translation");
+      if (ps - text > len)
+	len = ps - text;
+      tem = xmalloc (len + 1);
+      strncpy (tem, text, ps - text);
+      tem[ps - text] = '\0';
+
+      ui_out_text (uiout, tem);
 
-      ui_out_text (uiout, " is ");
-      ui_out_wrap_hint (uiout, "    ");
       quote = 0;
       switch (c->var_type)
 	{
@@ -339,7 +352,13 @@
       ui_out_field_stream (uiout, "value", stb);
       if (quote)
 	ui_out_text (uiout, "\"");
-      ui_out_text (uiout, ".\n");
+
+      strcpy (tem, ps + 2);
+      ui_out_text (uiout, tem);
+      xfree (tem);
+
+      ui_out_text (uiout, "\n");
+
       do_cleanups (old_chain);
     }
   else
Index: cli/cli-decode.c
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-decode.c,v
retrieving revision 1.26
diff -u -r1.26 cli-decode.c
--- cli/cli-decode.c 26 Jun 2002 20:58:17 -0000 1.26
+++ cli/cli-decode.c 1 Jul 2002 18:24:48 -0000
@@ -159,6 +159,7 @@
   set_cmd_cfunc (c, fun);
   set_cmd_context (c, NULL);
   c->doc = doc;
+  c->print_doc = NULL;
   c->flags = 0;
   c->replacement = NULL;
   c->pre_show_hook = NULL;
@@ -338,6 +339,7 @@
 		      enum command_class class,
 		      var_types var_type, void *var,
 		      char *set_doc, char *show_doc,
+		      char *print_doc,
 		      cmd_sfunc_ftype *set_func, cmd_sfunc_ftype *show_func,
 		      struct cmd_list_element **set_list,
 		      struct cmd_list_element **show_list,
@@ -354,6 +356,7 @@
 			      show_doc, show_list);
   if (show_func != NULL)
     set_cmd_sfunc (show, show_func);
+  show->print_doc = print_doc;
 
   if (set_result != NULL)
     *set_result = set;
@@ -372,12 +375,13 @@
 		 enum command_class class,
 		 var_types var_type, void *var,
 		 char *set_doc, char *show_doc,
+		 char *print_doc,
 		 cmd_sfunc_ftype *set_func, cmd_sfunc_ftype *show_func,
 		 struct cmd_list_element **set_list,
 		 struct cmd_list_element **show_list)
 {
   add_setshow_cmd_full (name, class, var_type, var, set_doc, show_doc,
-			set_func, show_func, set_list, show_list,
+			print_doc, set_func, show_func, set_list, show_list,
 			NULL, NULL);
 }
 
@@ -398,6 +402,36 @@
    ENUMLIST is a list of strings which may follow NAME.
    VAR is address of the variable which will contain the matching string
    (from ENUMLIST).
+   SET_DOC is the documentation string for the `set' command.
+   SHOW_DOC is the documentation string for the `show' command.
+   PRINT_DOC is the format string for the `show foo' command.  */
+
+void
+add_setshow_enum_cmd (char *name,
+		      enum command_class class,
+		      const char *enumlist[],
+		      const char **var,
+		      char *set_doc, char *show_doc, char *print_doc,
+		      cmd_sfunc_ftype *set_func, cmd_sfunc_ftype *show_func,
+		      struct cmd_list_element **set_list,
+		      struct cmd_list_element **show_list)
+{
+  struct cmd_list_element *set;
+  add_setshow_cmd_full (name, class, var_enum, var,
+			set_doc, show_doc, print_doc,
+			set_func, show_func,
+			set_list, show_list,
+			&set, NULL);
+  set->enums = enumlist;
+}
+
+
+/* Add element named NAME to command list LIST (the list for set
+   or some sublist thereof).
+   CLASS is as in add_cmd.
+   ENUMLIST is a list of strings which may follow NAME.
+   VAR is address of the variable which will contain the matching string
+   (from ENUMLIST).
    DOC is the documentation string.  */
 
 struct cmd_list_element *
@@ -424,6 +458,7 @@
 			      enum command_class class,
 			      enum auto_boolean *var,
 			      char *set_doc, char *show_doc,
+			      char *print_doc,
 			      cmd_sfunc_ftype *set_func,
 			      cmd_sfunc_ftype *show_func,
 			      struct cmd_list_element **set_list,
@@ -432,7 +467,7 @@
   static const char *auto_boolean_enums[] = { "on", "off", "auto", NULL };
   struct cmd_list_element *c;
   add_setshow_cmd_full (name, class, var_auto_boolean, var,
-			set_doc, show_doc, set_func, show_func,
+			set_doc, show_doc, print_doc, set_func, show_func,
 			set_list, show_list,
 			&c, NULL);
   c->enums = auto_boolean_enums;
@@ -446,6 +481,7 @@
 add_setshow_boolean_cmd (char *name,
 			 enum command_class class,
 			 int *var, char *set_doc, char *show_doc,
+			 char *print_doc,
 			 cmd_sfunc_ftype *set_func,
 			 cmd_sfunc_ftype *show_func,
 			 struct cmd_list_element **set_list,
@@ -454,7 +490,7 @@
   static const char *boolean_enums[] = { "on", "off", NULL };
   struct cmd_list_element *c;
   add_setshow_cmd_full (name, class, var_boolean, var,
-			set_doc, show_doc,
+			set_doc, show_doc, print_doc,
 			set_func, show_func,
 			set_list, show_list,
 			&c, NULL);
Index: cli/cli-decode.h
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-decode.h,v
retrieving revision 1.15
diff -u -r1.15 cli-decode.h
--- cli/cli-decode.h 15 Jun 2002 22:05:33 -0000 1.15
+++ cli/cli-decode.h 1 Jul 2002 18:24:48 -0000
@@ -86,6 +86,11 @@
        Entire string should also end with a period, not a newline.  */
     char *doc;
 
+    /* More documentation for this command.  This is a printf()-style
+       format string with a single `%s' substitution.  It is used when
+       printing the value of a variable via, e.g., `show foo'.  */
+    char *print_doc;
+
     /* flags : a bitfield 
        
        bit 0: (LSB) CMD_DEPRECATED, when 1 indicated that this command
Index: cli/cli-cmds.c
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-cmds.c,v
retrieving revision 1.19
diff -u -r1.19 cli-cmds.c
--- cli/cli-cmds.c 12 Apr 2002 22:31:23 -0000 1.19
+++ cli/cli-cmds.c 1 Jul 2002 18:24:49 -0000
@@ -42,8 +42,6 @@
 
 extern void dont_repeat (void);
 
-extern void set_verbose (char *, int, struct cmd_list_element *);
-
 extern void show_history (char *, int);
 
 extern void set_history (char *, int);
@@ -638,7 +636,7 @@
 void
 init_cli_cmds (void)
 {
-  struct cmd_list_element *c;
+  struct cmd_list_element *c, *set, *show;
 
   /* Define the classes of commands.
      They will appear in the help list in the reverse of this order.  */
@@ -711,12 +709,14 @@
   add_com_alias ("q", "quit", class_support, 1);
   add_com_alias ("h", "help", class_support, 1);
 
-  c = add_set_cmd ("verbose", class_support, var_boolean, (char *) &info_verbose,
-		   "Set ",
-		   &setlist),
-    add_show_from_set (c, &showlist);
-  set_cmd_sfunc (c, set_verbose);
-  set_verbose (NULL, 0, c);
+  add_setshow_cmd_full ("verbose", class_support,
+			var_boolean, (char *) &info_verbose,
+			N_("Set verbosity."),
+			N_("Show verbosity."),
+			N_("Verbosity is %s."),
+			NULL, NULL,
+			&setlist, &showlist,
+			NULL, NULL);
 
   add_prefix_cmd ("history", class_support, set_history,
 		  "Generic command for setting command history parameters.",
@@ -725,11 +725,14 @@
 		  "Generic command for showing command history parameters.",
 		  &showhistlist, "show history ", 0, &showlist);
 
-  add_show_from_set
-    (add_set_cmd ("expansion", no_class, var_boolean, (char *) &history_expansion_p,
-		  "Set history expansion on command input.\n\
-Without an argument, history expansion is enabled.", &sethistlist),
-     &showhistlist);
+  add_setshow_cmd ("expansion", no_class,
+		   var_boolean, (char *) &history_expansion_p,
+		   N_("Set history expansion on command input.\n\
+Without an argument, history expansion is enabled."),
+		   N_("Show history expansion on command input."),
+		   N_("History expansion on command input is %s."),
+		   NULL, NULL,
+		   &sethistlist, &showhistlist);
 
   add_prefix_cmd ("info", class_info, info_command,
      "Generic command for showing things about the program being debugged.",
@@ -769,34 +772,48 @@
 
   /* If target is open when baud changes, it doesn't take effect until the
      next open (I think, not sure).  */
-  add_show_from_set (add_set_cmd ("remotebaud", no_class,
-				  var_zinteger, (char *) &baud_rate,
-				  "Set baud rate for remote serial I/O.\n\
+  add_setshow_cmd ("remotebaud", no_class,
+		   var_zinteger, (char *) &baud_rate,
+		   N_("Set baud rate for remote serial I/O.\n\
 This value is used to set the speed of the serial port when debugging\n\
-using remote targets.", &setlist),
-		     &showlist);
+using remote targets."),
+		   N_("Show baud rate for remote serial I/O."),
+		   N_("Baud rate for remote serial I/O is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
+
+  add_setshow_cmd_full ("remotedebug", no_class, var_zinteger,
+			(char *) &remote_debug,
+			N_("Set debugging of remote protocol.\n\
+When enabled, each packet sent or received with the remote target\n\
+is displayed."),
+			N_("Show debugging of remote protocol."),
+			N_("Debugging of remote protocol is %s."),
+			NULL, NULL,
+			&setlist, &showlist,
+			&set, &show);
+  deprecate_cmd (set, "set debug remote");
+  deprecate_cmd (show, "show debug remote");
 
-  c = add_set_cmd ("remotedebug", no_class, var_zinteger,
+  add_setshow_cmd ("remote", no_class, var_zinteger,
 		   (char *) &remote_debug,
-		   "Set debugging of remote protocol.\n\
+		   N_("Set debugging of remote protocol.\n\
 When enabled, each packet sent or received with the remote target\n\
-is displayed.", &setlist);
-  deprecate_cmd (c, "set debug remote");
-  deprecate_cmd (add_show_from_set (c, &showlist), "show debug remote");
-
-  add_show_from_set (add_set_cmd ("remote", no_class, var_zinteger,
-				  (char *) &remote_debug,
-				  "Set debugging of remote protocol.\n\
-When enabled, each packet sent or received with the remote target\n\
-is displayed.", &setdebuglist),
-		     &showdebuglist);
-
-  add_show_from_set (
-		      add_set_cmd ("remotetimeout", no_class, var_integer, (char *) &remote_timeout,
-				   "Set timeout limit to wait for target to respond.\n\
+is displayed."),
+		   N_("Show debugging of remote protocol."),
+		   N_("Debugging of remote protocol is %s."),
+		   NULL, NULL,
+		   &setdebuglist, &showdebuglist);
+
+  add_setshow_cmd ("remotetimeout", no_class,
+		   var_integer, (char *) &remote_timeout,
+		   N_("Set timeout limit to wait for target to respond.\n\
 This value is used to set the time limit for gdb to wait for a response\n\
-from the target.", &setlist),
-		      &showlist);
+from the target."),
+		   N_("Show timeout limit to wait for target to respond."),
+		   N_("Timeout limit to wait for target to respond is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 
   add_prefix_cmd ("debug", no_class, set_debug,
 		  "Generic command for setting gdb debugging flags",
@@ -829,10 +846,11 @@
 With no argument, show definitions of all user defined commands.", &showlist);
   add_com ("apropos", class_support, apropos_command, "Search for commands matching a REGEXP");
 
-  add_show_from_set (
-		      add_set_cmd ("max-user-call-depth", no_class, var_integer, 
-				   (char *) &max_user_call_depth,
-				   "Set the max call depth for user-defined commands.\n", 
-				   &setlist),
-		      &showlist);
+  add_setshow_cmd ("max-user-call-depth", no_class, var_integer, 
+		   (char *) &max_user_call_depth,
+		   N_("Set the max call depth for user-defined commands.\n"), 
+		   N_("Show the max call depth for user-defined commands."),
+		   N_("The max call depth for user-defined commands is %s."),
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: testsuite/ChangeLog
from  Tom Tromey  <tromey@redhat.com>

	* gdb.base/setshow.exp (show verbose): Updated for new gdb
	output.
	* gdb.base/help.exp (help set prompt, help show annotate, help
	show args, help show check range, help show check type, help show
	editing, help show history expansion, help show history filename,
	help show history save, help show history size, help show print
	elements, help show prompt): Updated for new gdb output.
	* gdb.base/default.exp (show verbose): Updated for new gdb
	output.

Index: testsuite/gdb.base/default.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/default.exp,v
retrieving revision 1.12
diff -u -r1.12 default.exp
--- testsuite/gdb.base/default.exp 8 May 2002 21:05:44 -0000 1.12
+++ testsuite/gdb.base/default.exp 1 Jul 2002 18:24:59 -0000
@@ -665,7 +665,7 @@
 #test show values
 gdb_test "show values" "" "show values"
 #test show verbose
-gdb_test "show verbose" "Verbose printing of informational messages is o.*|Verbosity is off.*" "show verbose"
+gdb_test "show verbose" "Verbosity is (on|off)\." "show verbose"
 #test show version
 gdb_test "show version" "GNU gdb \[0-9\.\]*(\[^\r\n\]*\[\r\n\])+Copyright \[0-9\]* Free Software Foundation, Inc(\[^\r\n\]*\[\r\n\])+GDB is free software, covered by the GNU General Public License, and you are(\[^\r\n\]*\[\r\n\])+welcome to change it and/or distribute copies of it under certain conditions(\[^\r\n\]*\[\r\n\])+Type \"show copying\" to see the conditions(\[^\r\n\]*\[\r\n\])+There is absolutely no warranty for GDB.  Type \"show warranty\" for details(\[^\r\n\]*\[\r\n\])+This GDB was configured as .*|GDB is free software and you are welcome to distribute copies of it(\[^\r\n\]*\[\r\n\])+ under certain conditions; type \"show copying\" to see the conditions.(\[^\r\n\]*\[\r\n\])+There is absolutely no warranty for GDB; type \"show warranty\" for details.(\[^\r\n\]*\[\r\n\])+GDB.*Copyright \[0-9\]* Free Software Foundation, Inc.*" "show version"
 #test show width
Index: testsuite/gdb.base/help.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/help.exp,v
retrieving revision 1.11
diff -u -r1.11 help.exp
--- testsuite/gdb.base/help.exp 24 Apr 2002 03:07:33 -0000 1.11
+++ testsuite/gdb.base/help.exp 1 Jul 2002 18:25:00 -0000
@@ -406,7 +406,7 @@
 # test help set print vtbl
 gdb_test "help set print vtbl" "Set printing of C\[+\]+ virtual function tables\." "help set print vtbl"
 # test help set prompt
-gdb_test "help set prompt" "Set gdb's prompt" "help set prompt"
+gdb_test "help set prompt" "Set gdb's prompt\." "help set prompt"
 # test help set radix
 gdb_test "help set radix" "Set default input and output number radices\.\[\r\n\]+Use \'set input-radix\' or \'set output-radix\' to independently set each\.\[\r\n\]+Without an argument, sets both radices back to the default value of 10\." "help set radix"
 # test help set symbol-reloading
@@ -428,17 +428,17 @@
 # test help shell
 gdb_test "help shell" "Execute the rest of the line as a shell command\.\[\r\n\]+With no arguments, run an inferior shell\." "help shell"
 #test help show annotate
-gdb_test "help show annotate" "Show annotation_level\.\[\r\n\]+0 == normal;     1 == fullname \\(for use when running under emacs\\)\[\r\n\]+2 == output annotated suitably for use by programs that control GDB\." "help show annotate"
+gdb_test "help show annotate" "Show annotation_level\." "help show annotate"
 # test help show args
-gdb_test "help show args" "Show argument list to give program being debugged when it is started\.\[\r\n\]+Follow this command with any number of args, to be passed to the program\."
+gdb_test "help show args" "Show argument list to give program being debugged when it is started\."
 # test help show check "c" abbreviation
 gdb_test "help show c" "Show the status of the type/range checker\.\[\r\n\]+List of show check subcommands:\[\r\n\]+show check range -- Show range checking\[\r\n\]+show check type -- Show type checking\[\r\n\]+Type \"help show check\" followed by show check subcommand name for full documentation\.\[\r\n\]+Command name abbreviations are allowed if unambiguous\." "help show check \"c\" abbreviation"
 # test help show check
 gdb_test "help show check" "Show the status of the type/range checker\.\[\r\n\]+List of show check subcommands:\[\r\n\]+show check range -- Show range checking\[\r\n\]+show check type -- Show type checking\[\r\n\]+Type \"help show check\" followed by show check subcommand name for full documentation\.\[\r\n\]+Command name abbreviations are allowed if unambiguous\." "help show check"
 # test help show check range
-gdb_test "help show check range" "Show range checking\.  \\(on/warn/off/auto\\)" "help show check range"
+gdb_test "help show check range" "Show range checking\." "help show check range"
 # test help show check type
-gdb_test "help show check type" "Show type checking\.  \\(on/warn/off/auto\\)" "help show check type"
+gdb_test "help show check type" "Show type checking\." "help show check type"
 # test help show commands
 gdb_test "help show commands" "Show the history of commands you typed\.\[\r\n\]+You can supply a command number to start with, or a `\[+\]' to start after\[\r\n\]+the previous command number shown\." "help show commands"
 # test help show complaints
@@ -450,19 +450,19 @@
 # test help show directories
 gdb_test "help show directories" "Current search path for finding source files\.\[\r\n\]+\\\$cwd in the path means the current working directory\.\[\r\n\]+\\\$cdir in the path means the compilation directory of the source file\." "help show directories"
 # test help show editing
-gdb_test "help show editing" "Show editing of command lines as they are typed\.\[\r\n\]+Use \"on\" to enable the editing, and \"off\" to disable it\.\[\r\n\]+Without an argument, command line editing is enabled\.  To edit, use\[\r\n\]+EMACS-like or VI-like commands like control-P or ESC\." "help show editing"
+gdb_test "help show editing" "Show editing of command lines as they are typed\." "help show editing"
 # test help show environment
 gdb_test "help show environment" "The environment to give the program, or one variable's value\.\[\r\n\]+With an argument VAR, prints the value of environment variable VAR to\[\r\n\]+give the program being debugged\.  With no arguments, prints the entire\[\r\n\]+environment to be given to the program\." "help show environment"
 # test help show height
 gdb_test "help show height" "Show number of lines gdb thinks are in a page\." "help show height"
 # test help show history expansion
-gdb_test "help show history expansion" "Show history expansion on command input\.\[\r\n\]+Without an argument, history expansion is enabled\." "help show history expansion"
+gdb_test "help show history expansion" "Show history expansion on command input\." "help show history expansion"
 # test help show history filename
-gdb_test "help show history filename" "Show the filename in which to record the command history\[\r\n\]+\\(the list of previous commands of which a record is kept\\)\." "help show history filename"
+gdb_test "help show history filename" "Show the filename in which to record the command history\." "help show history filename"
 # test help show history save
-gdb_test "help show history save" "Show saving of the history record on exit\.\[\r\n\]+Use \"on\" to enable the saving, and \"off\" to disable it\.\[\r\n\]+Without an argument, saving is enabled\." "help show history save"
+gdb_test "help show history save" "Show saving of the history record on exit\." "help show history save"
 # test help show history size
-gdb_test "help show history size" "Show the size of the command history,\[\r\n\]+ie\. the number of previous commands to keep a record of\." "help show history size"
+gdb_test "help show history size" "Show the size of the command history\." "help show history size"
 # test help show history
 gdb_test "help show history" "Generic command for showing command history parameters\.\[\r\n\]+List of show history subcommands:\[\r\n\]+show history expansion -- Show history expansion on command input\[\r\n\]+show history filename -- Show the filename in which to record the command history\[\r\n\]+show history save -- Show saving of the history record on exit\[\r\n\]+show history size -- Show the size of the command history\[\r\n\]+Type \"help show history\" followed by show history subcommand name for full documentation\.\[\r\n\]+Command name abbreviations are allowed if unambiguous\." "help show history"
 # test help show language
@@ -486,7 +486,7 @@
 # test help show print demangle
 gdb_test "help show print demangle" "Show demangling of encoded C\[+\]+ names when displaying symbols\." "help show print demangle"
 # test help show print elements
-gdb_test "help show print elements" "Show limit on string chars or array elements to print\.\[\r\n\]+\"set print elements 0\" causes there to be no limit\." "help show print elements"
+gdb_test "help show print elements" "Show limit on string chars or array elements to print\." "help show print elements"
 # test help show print object
 gdb_test "help show print object" "Show printing of object's derived type based on vtable info\." "help show print object"
 # test help show print pretty
@@ -498,7 +498,7 @@
 # test help show print vtbl
 gdb_test "help show print vtbl" "Show printing of C\[+\]+ virtual function tables\." "help show print vtbl"
 # test help show prompt
-gdb_test "help show prompt" "Show gdb's prompt" "help show prompt"
+gdb_test "help show prompt" "Show gdb's prompt\." "help show prompt"
 # test help show radix
 gdb_test "help show radix" "Show the default input and output number radices\.\[\r\n\]+Use \'show input-radix\' or \'show output-radix\' to independently show each\." "help show radix"
 # test help show symbol-reloading
Index: testsuite/gdb.base/setshow.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/setshow.exp,v
retrieving revision 1.2
diff -u -r1.2 setshow.exp
--- testsuite/gdb.base/setshow.exp 6 Mar 2001 08:21:51 -0000 1.2
+++ testsuite/gdb.base/setshow.exp 1 Jul 2002 18:25:01 -0000
@@ -236,7 +236,7 @@
 #test set verbose on
 gdb_test "set verbose on" "" "set verbose on" 
 #test show verbose on
-gdb_test "show verbose" "Verbose printing of informational messages is on..*" "show verbose (on)" 
+gdb_test "show verbose" "Verbosity is on..*" "show verbose (on)" 
 #test set verbose off
 gdb_test "set verbose off" "" "set verbose off" 
 #test show verbose off
Index: demangle.c
===================================================================
RCS file: /cvs/src/src/gdb/demangle.c,v
retrieving revision 1.9
diff -u -r1.9 demangle.c
--- demangle.c 5 Feb 2002 04:37:21 -0000 1.9
+++ demangle.c 1 Jul 2002 18:36:33 -0000
@@ -178,7 +178,6 @@
 void
 _initialize_demangler (void)
 {
-  struct cmd_list_element *set, *show;
   int i, ndems;
 
   /* Fill the demangling_style_names[] array.  */
@@ -193,14 +192,15 @@
     demangling_style_names[i] =
       xstrdup (libiberty_demanglers[i].demangling_style_name);
 
-  set = add_set_enum_cmd ("demangle-style", class_support,
-			  demangling_style_names,
-			  (const char **) &current_demangling_style_string,
-			  "Set the current C++ demangling style.\n\
-Use `set demangle-style' without arguments for a list of demangling styles.",
-			  &setlist);
-  show = add_show_from_set (set, &showlist);
-  set_cmd_sfunc (set, set_demangling_command);
+  add_setshow_enum_cmd ("demangle-style", class_support,
+			demangling_style_names,
+			(const char **) &current_demangling_style_string,
+			N_("Set the current C++ demangling style.\n\
+Use `set demangle-style' without arguments for a list of demangling styles."),
+			N_("Show the current C++ demangling style."),
+			N_("The current C++ demangling style is %s."),
+			set_demangling_command, NULL,
+			&setlist, &showlist);
 
   /* Set the default demangling style chosen at compilation time. */
   set_demangling_style (DEFAULT_DEMANGLING_STYLE);
Index: i386-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/i386-tdep.c,v
retrieving revision 1.66
diff -u -r1.66 i386-tdep.c
--- i386-tdep.c 17 Jun 2002 23:32:30 -0000 1.66
+++ i386-tdep.c 1 Jul 2002 18:36:39 -0000
@@ -930,7 +930,7 @@
     {
       if (FP0_REGNUM == 0)
 	{
-	  warning ("Cannot find floating-point return value.");
+	  warning (_("Cannot find floating-point return value."));
 	  memset (valbuf, 0, len);
 	  return;
 	}
@@ -958,7 +958,8 @@
 	}
       else
 	internal_error (__FILE__, __LINE__,
-			"Cannot extract return value of %d bytes long.", len);
+			_("Cannot extract return value of %d bytes long."),
+			len);
     }
 }
 
@@ -984,7 +985,7 @@
 
       if (FP0_REGNUM == 0)
 	{
-	  warning ("Cannot set floating-point return value.");
+	  warning (_("Cannot set floating-point return value."));
 	  return;
 	}
 
@@ -1029,7 +1030,7 @@
 	}
       else
 	internal_error (__FILE__, __LINE__,
-			"Cannot store return value of %d bytes long.", len);
+			_("Cannot store return value of %d bytes long."), len);
     }
 }
 
@@ -1119,8 +1120,8 @@
   /* We only support floating-point values.  */
   if (TYPE_CODE (type) != TYPE_CODE_FLT)
     {
-      warning ("Cannot convert floating-point register value "
-	       "to non-floating-point type.");
+      warning (_("Cannot convert floating-point register value "
+	       "to non-floating-point type."));
       memset (to, 0, TYPE_LENGTH (type));
       return;
     }
@@ -1142,8 +1143,8 @@
   /* We only support floating-point values.  */
   if (TYPE_CODE (type) != TYPE_CODE_FLT)
     {
-      warning ("Cannot convert non-floating-point type "
-	       "to floating-point register value.");
+      warning (_("Cannot convert non-floating-point type "
+	       "to floating-point register value."));
       memset (to, 0, TYPE_LENGTH (type));
       return;
     }
@@ -1225,7 +1226,7 @@
     return print_insn_i386_intel (memaddr, info);
   /* Never reached -- disassembly_flavour is always either att_flavor
      or intel_flavor.  */
-  internal_error (__FILE__, __LINE__, "failed internal consistency check");
+  internal_error (__FILE__, __LINE__, _("failed internal consistency check"));
 }
 
 
@@ -1533,32 +1534,28 @@
   tm_print_insn_info.mach = bfd_lookup_arch (bfd_arch_i386, 0)->mach;
 
   /* Add the variable that controls the disassembly flavor.  */
-  {
-    struct cmd_list_element *new_cmd;
-
-    new_cmd = add_set_enum_cmd ("disassembly-flavor", no_class,
-				valid_flavors,
-				&disassembly_flavor,
-				"\
+  add_setshow_enum_cmd ("disassembly-flavor", no_class,
+			valid_flavors,
+			&disassembly_flavor,
+			N_("\
 Set the disassembly flavor, the valid values are \"att\" and \"intel\", \
-and the default value is \"att\".",
-				&setlist);
-    add_show_from_set (new_cmd, &showlist);
-  }
+and the default value is \"att\"."),
+			N_("Show the disassembly flavor."),
+			N_("The disassembly flavor is %s."),
+			NULL, NULL,
+			&setlist, &showlist);
 
   /* Add the variable that controls the convention for returning
      structs.  */
-  {
-    struct cmd_list_element *new_cmd;
-
-    new_cmd = add_set_enum_cmd ("struct-convention", no_class,
-				 valid_conventions,
-				&struct_convention, "\
+  add_setshow_enum_cmd ("struct-convention", no_class,
+			valid_conventions,
+			&struct_convention, N_("\
 Set the convention for returning small structs, valid values \
-are \"default\", \"pcc\" and \"reg\", and the default value is \"default\".",
-                                &setlist);
-    add_show_from_set (new_cmd, &showlist);
-  }
+are \"default\", \"pcc\" and \"reg\", and the default value is \"default\"."),
+			N_("Show the convention for returning small structs."),
+			N_("The convention for returning small structs is %s."),
+			NULL, NULL,
+			&setlist, &showlist);
 
   gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_coff_flavour,
 				  i386_coff_osabi_sniffer);
Index: infcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/infcmd.c,v
retrieving revision 1.48
diff -u -r1.48 infcmd.c
--- infcmd.c 25 Jun 2002 18:38:57 -0000 1.48
+++ infcmd.c 1 Jul 2002 18:36:41 -0000
@@ -1887,15 +1887,16 @@
 	       "Set terminal for future runs of program being debugged.");
   set_cmd_completer (c, filename_completer);
 
-  c = add_set_cmd ("args", class_run, var_string_noescape,
-		   (char *) &inferior_args,
-		   "Set argument list to give program being debugged when it is started.\n\
-Follow this command with any number of args, to be passed to the program.",
-		   &setlist);
+  add_setshow_cmd_full ("args", class_run, var_string_noescape,
+			(char *) &inferior_args,
+			N_("Set argument list to give program being debugged when it is started.\n\
+Follow this command with any number of args, to be passed to the program."),
+			N_("Show argument list to give program being debugged when it is started."),
+			N_("Argument list to give program being debugged when it is started is %s."),
+			notice_args_set, notice_args_read,
+			&setlist, &showlist,
+			&c, NULL);
   set_cmd_completer (c, filename_completer);
-  set_cmd_sfunc (c, notice_args_set);
-  c = add_show_from_set (c, &showlist);
-  set_cmd_sfunc (c, notice_args_read);
 
   c = add_cmd
     ("environment", no_class, environment_info,
Index: remote-rdi.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-rdi.c,v
retrieving revision 1.24
diff -u -r1.24 remote-rdi.c
--- remote-rdi.c 15 Jun 2002 21:07:58 -0000 1.24
+++ remote-rdi.c 1 Jul 2002 18:36:43 -0000
@@ -1043,20 +1043,22 @@
 
   add_setshow_boolean_cmd
     ("rdiromatzero", no_class, &rom_at_zero,
-     "Set target has ROM at addr 0.\n"
-     "A true value disables vector catching, false enables vector catching.\n"
-     "This is evaluated at the time the 'target rdi' command is executed\n",
-     "Show if target has ROM at addr 0.\n",
+     N_("Set target has ROM at addr 0.\n"
+	"A true value disables vector catching, false enables vector catching.\n"
+	"This is evaluated at the time the 'target rdi' command is executed\n"),
+     N_("Show if target has ROM at addr 0.\n"),
+     N_("If target has ROM at addr 0 is %s.\n"),
      NULL, NULL,
      &setlist, &showlist);
 
   add_setshow_boolean_cmd
     ("rdiheartbeat", no_class, &rdi_heartbeat,
-     "Set enable for ADP heartbeat packets.\n"
-     "I don't know why you would want this. If you enable them,\n"
-     "it will confuse ARM and EPI JTAG interface boxes as well\n"
-     "as the Angel Monitor.\n",
-     "Show enable for ADP heartbeat packets.\n",
+     N_("Set enable for ADP heartbeat packets.\n"
+	"I don't know why you would want this. If you enable them,\n"
+	"it will confuse ARM and EPI JTAG interface boxes as well\n"
+	"as the Angel Monitor.\n"),
+     N_("Show enable for ADP heartbeat packets.\n"),
+     N_("Enable for ADP heartbeat packets is %s.\n"),
      NULL, NULL,
      &setlist, &showlist);
 }
Index: remote-vx.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-vx.c,v
retrieving revision 1.19
diff -u -r1.19 remote-vx.c
--- remote-vx.c 19 Jan 2002 03:32:40 -0000 1.19
+++ remote-vx.c 1 Jul 2002 18:36:44 -0000
@@ -1401,10 +1401,12 @@
   init_vx_run_ops ();
   add_target (&vx_run_ops);
 
-  add_show_from_set
-    (add_set_cmd ("vxworks-timeout", class_support, var_uinteger,
-		  (char *) &rpcTimeout.tv_sec,
-		  "Set seconds to wait for rpc calls to return.\n\
-Set the number of seconds to wait for rpc calls to return.", &setlist),
-     &showlist);
+  add_setshow_cmd ("vxworks-timeout", class_support, var_uinteger,
+		   (char *) &rpcTimeout.tv_sec,
+		   N_("Set seconds to wait for rpc calls to return.\n\
+Set the number of seconds to wait for rpc calls to return."),
+		   N_("Show seconds to wait for rpc calls to return.")
+		   N_("Seconds to wait for rpc calls to return is %s.")
+		   NULL, NULL,
+		   &setlist, &showlist);
 }
Index: target.c
===================================================================
RCS file: /cvs/src/src/gdb/target.c,v
retrieving revision 1.37
diff -u -r1.37 target.c
--- target.c 25 Jun 2002 05:39:17 -0000 1.37
+++ target.c 1 Jul 2002 18:36:47 -0000
@@ -2292,20 +2292,23 @@
   add_info ("target", target_info, targ_desc);
   add_info ("files", target_info, targ_desc);
 
-  add_show_from_set 
-    (add_set_cmd ("target", class_maintenance, var_zinteger,
-		  (char *) &targetdebug,
-		  "Set target debugging.\n\
-When non-zero, target debugging is enabled.", &setdebuglist),
-     &showdebuglist);
+  add_setshow_cmd ("target", class_maintenance, var_zinteger,
+		   (char *) &targetdebug,
+		   N_("Set target debugging.\n\
+When non-zero, target debugging is enabled."),
+		   N_("Show target debugging."),
+		   N_("Target debugging is %s."),
+		   NULL, NULL,
+		   &setdebuglist, &showdebuglist);
 
   add_setshow_boolean_cmd ("trust-readonly-sections", class_support, 
-			   &trust_readonly, "\
+			   &trust_readonly, N_("\
 Set mode for reading from readonly sections.\n\
 When this mode is on, memory reads from readonly sections (such as .text)\n\
 will be read from the object file instead of from the target.  This will\n\
-result in significant performance improvement for remote targets.", "\
-Show mode for reading from readonly sections.\n",
+result in significant performance improvement for remote targets."), N_("\
+Show mode for reading from readonly sections."), N_("\
+Mode for reading from readonly sections is %s."),
 			   NULL, NULL,
 			   &setlist, &showlist);
 
Index: x86-64-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/x86-64-tdep.c,v
retrieving revision 1.24
diff -u -r1.24 x86-64-tdep.c
--- x86-64-tdep.c 20 Jun 2002 13:08:11 -0000 1.24
+++ x86-64-tdep.c 1 Jul 2002 18:36:48 -0000
@@ -1145,13 +1145,12 @@
   tm_print_insn_info.mach = bfd_lookup_arch (bfd_arch_i386, 3)->mach;
 
   /* Add the variable that controls the disassembly flavour.  */
-  {
-    struct cmd_list_element *new_cmd;
-
-    new_cmd = add_set_enum_cmd ("disassembly-flavour", no_class,
-				valid_flavours, &disassembly_flavour, "\
+  add_setshow_enum_cmd ("disassembly-flavour", no_class,
+			valid_flavours, &disassembly_flavour, N_("\
 Set the disassembly flavour, the valid values are \"att\" and \"intel\", \
-and the default value is \"att\".", &setlist);
-    add_show_from_set (new_cmd, &showlist);
-  }
+and the default value is \"att\"."),
+			N_("Show the disassembly flavor."),
+			N_("The disassembly flavor is %s."),
+			NULL, NULL,
+			&setlist, &showlist);
 }
Index: tui/ChangeLog
from  Tom Tromey  <tromey@redhat.com>

	* tuiWin.c (_initialize_tuiWin): Updated for new
	add_setshow_enum_cmd.

Index: tui/tuiWin.c
===================================================================
RCS file: /cvs/src/src/gdb/tui/tuiWin.c,v
retrieving revision 1.19
diff -u -r1.19 tuiWin.c
--- tui/tuiWin.c 1 Mar 2002 06:19:28 -0000 1.19
+++ tui/tuiWin.c 1 Jul 2002 18:36:49 -0000
@@ -294,7 +294,6 @@
 void
 _initialize_tuiWin (void)
 {
-  struct cmd_list_element *c;
   static struct cmd_list_element *tui_setlist;
   static struct cmd_list_element *tui_showlist;
 
@@ -354,46 +353,52 @@
 Usage: w <#lines>\n");
 
   /* Define the tui control variables.  */
-  c = add_set_enum_cmd
+  add_setshow_enum_cmd
     ("border-kind", no_class,
      tui_border_kind_enums, &tui_border_kind,
-     "Set the kind of border for TUI windows.\n"
-     "This variable controls the border of TUI windows:\n"
-     "space           use a white space\n"
-     "ascii           use ascii characters + - | for the border\n"
-     "acs             use the Alternate Character Set\n",
-     &tui_setlist);
-  add_show_from_set (c, &tui_showlist);
+     N_("Set the kind of border for TUI windows.\n"
+	"This variable controls the border of TUI windows:\n"
+	"space           use a white space\n"
+	"ascii           use ascii characters + - | for the border\n"
+	"acs             use the Alternate Character Set\n"),
+     N_("Show the kind of border for TUI windows."),
+     N_("The kind of border for TUI windows is %s."),
+     NULL, NULL,
+     &tui_setlist, &tui_showlist);
 
-  c = add_set_enum_cmd
+  add_setshow_enum_cmd
     ("border-mode", no_class,
      tui_border_mode_enums, &tui_border_mode,
-     "Set the attribute mode to use for the TUI window borders.\n"
-     "This variable controls the attributes to use for the window borders:\n"
-     "normal          normal display\n"
-     "standout        use highlight mode of terminal\n"
-     "reverse         use reverse video mode\n"
-     "half            use half bright\n"
-     "half-standout   use half bright and standout mode\n"
-     "bold            use extra bright or bold\n"
-     "bold-standout   use extra bright or bold with standout mode\n",
-     &tui_setlist);
-  add_show_from_set (c, &tui_showlist);
+     N_("Set the attribute mode to use for the TUI window borders.\n"
+	"This variable controls the attributes to use for the window borders:\n"
+	"normal          normal display\n"
+	"standout        use highlight mode of terminal\n"
+	"reverse         use reverse video mode\n"
+	"half            use half bright\n"
+	"half-standout   use half bright and standout mode\n"
+	"bold            use extra bright or bold\n"
+	"bold-standout   use extra bright or bold with standout mode\n"),
+     N_("Show the attribute mode to use for the TUI window borders."),
+     N_("The attribute mode to use for the TUI window borders is %s."),
+     NULL, NULL,
+     &tui_setlist, &tui_showlist);
 
-  c = add_set_enum_cmd
+  add_setshow_enum_cmd
     ("active-border-mode", no_class,
      tui_border_mode_enums, &tui_active_border_mode,
-     "Set the attribute mode to use for the active TUI window border.\n"
-     "This variable controls the attributes to use for the active window border:\n"
-     "normal          normal display\n"
-     "standout        use highlight mode of terminal\n"
-     "reverse         use reverse video mode\n"
-     "half            use half bright\n"
-     "half-standout   use half bright and standout mode\n"
-     "bold            use extra bright or bold\n"
-     "bold-standout   use extra bright or bold with standout mode\n",
-     &tui_setlist);
-  add_show_from_set (c, &tui_showlist);
+     N_("Set the attribute mode to use for the active TUI window border.\n"
+	"This variable controls the attributes to use for the active window border:\n"
+	"normal          normal display\n"
+	"standout        use highlight mode of terminal\n"
+	"reverse         use reverse video mode\n"
+	"half            use half bright\n"
+	"half-standout   use half bright and standout mode\n"
+	"bold            use extra bright or bold\n"
+	"bold-standout   use extra bright or bold with standout mode\n"),
+     N_("Show the attribute mode to use for the active TUI window border."),
+     N_("The attribute mode to use for the active TUI window border is %s."),
+     NULL, NULL,
+     &tui_setlist, &tui_showlist);
 }
 
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]