* remote.c (add_packet_config_cmd): Delete unused variables.
[binutils-gdb.git] / gdb / remote.c
index d84a57229ba9f797406b6701f2083f8e3487b4de..95f94a01898d585d0bc81307697a0f0df5792886 100644 (file)
@@ -1,7 +1,7 @@
 /* Remote target communications for serial-line targets in custom GDB protocol
 
    Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
-   1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+   1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -41,6 +41,7 @@
 #include "regcache.h"
 #include "value.h"
 #include "gdb_assert.h"
+#include "observer.h"
 
 #include <ctype.h>
 #include <sys/time.h>
@@ -412,9 +413,9 @@ get_memory_packet_size (struct memory_packet_config *config)
 #ifndef MAX_REMOTE_PACKET_SIZE
 #define MAX_REMOTE_PACKET_SIZE 16384
 #endif
-  /* NOTE: 16 is just chosen at random.  */
+  /* NOTE: 20 ensures we can write at least one byte.  */
 #ifndef MIN_REMOTE_PACKET_SIZE
-#define MIN_REMOTE_PACKET_SIZE 16
+#define MIN_REMOTE_PACKET_SIZE 20
 #endif
   long what_they_get;
   if (config->fixed_p)
@@ -452,7 +453,7 @@ set_memory_packet_size (char *args, struct memory_packet_config *config)
   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;
@@ -464,23 +465,23 @@ set_memory_packet_size (char *args, struct memory_packet_config *config)
       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;
@@ -490,12 +491,12 @@ set_memory_packet_size (char *args, struct memory_packet_config *config)
 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));
 }
 
@@ -618,12 +619,12 @@ show_packet_config_cmd (struct packet_config *config)
   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;
     }
@@ -634,18 +635,15 @@ add_packet_config_cmd (struct packet_config *config,
                       char *name,
                       char *title,
                       cmd_sfunc_ftype *set_func,
-                      cmd_sfunc_ftype *show_func,
+                      show_value_ftype *show_func,
                       struct cmd_list_element **set_remote_list,
                       struct cmd_list_element **show_remote_list,
                       int legacy)
 {
-  struct cmd_list_element *set_cmd;
-  struct cmd_list_element *show_cmd;
   char *set_doc;
   char *show_doc;
-  char *help_doc;
-  char *print;
   char *cmd_name;
+
   config->name = name;
   config->title = title;
   config->detect = AUTO_BOOLEAN_AUTO;
@@ -654,13 +652,10 @@ add_packet_config_cmd (struct packet_config *config,
                        name, title);
   show_doc = xstrprintf ("Show current use of remote protocol `%s' (%s) packet",
                         name, title);
-  print = xstrprintf ("Current use of remote protocol `%s' (%s) is %%s",
-                     name, title);
   /* set/show TITLE-packet {auto,on,off} */
   cmd_name = xstrprintf ("%s-packet", title);
   add_setshow_auto_boolean_cmd (cmd_name, class_obscure,
-                               &config->detect, set_doc, show_doc,
-                               "", NULL /*print*/,
+                               &config->detect, set_doc, show_doc, NULL, /* help_doc */
                                set_func, show_func,
                                set_remote_list, show_remote_list);
   /* set/show remote NAME-packet {auto,on,off} -- legacy.  */
@@ -693,7 +688,7 @@ packet_ok (const char *buf, struct packet_config *config)
          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;
@@ -718,11 +713,11 @@ packet_ok (const char *buf, struct packet_config *config)
          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:
@@ -750,8 +745,9 @@ set_remote_protocol_vcont_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_vcont_packet_cmd (char *args, int from_tty,
-                                      struct cmd_list_element *c)
+show_remote_protocol_vcont_packet_cmd (struct ui_file *file, int from_tty,
+                                      struct cmd_list_element *c,
+                                      const char *value)
 {
   show_packet_config_cmd (&remote_protocol_vcont);
 }
@@ -767,8 +763,9 @@ set_remote_protocol_qSymbol_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_qSymbol_packet_cmd (char *args, int from_tty,
-                                        struct cmd_list_element *c)
+show_remote_protocol_qSymbol_packet_cmd (struct ui_file *file, int from_tty,
+                                        struct cmd_list_element *c,
+                                        const char *value)
 {
   show_packet_config_cmd (&remote_protocol_qSymbol);
 }
@@ -785,8 +782,9 @@ set_remote_protocol_P_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_P_packet_cmd (char *args, int from_tty,
-                                  struct cmd_list_element *c)
+show_remote_protocol_P_packet_cmd (struct ui_file *file, int from_tty,
+                                  struct cmd_list_element *c,
+                                  const char *value)
 {
   show_packet_config_cmd (&remote_protocol_P);
 }
@@ -816,8 +814,9 @@ set_remote_protocol_Z_software_bp_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_Z_software_bp_packet_cmd (char *args, int from_tty,
-                                              struct cmd_list_element *c)
+show_remote_protocol_Z_software_bp_packet_cmd (struct ui_file *file, int from_tty,
+                                              struct cmd_list_element *c,
+                                              const char *value)
 {
   show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_SOFTWARE_BP]);
 }
@@ -830,8 +829,9 @@ set_remote_protocol_Z_hardware_bp_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_Z_hardware_bp_packet_cmd (char *args, int from_tty,
-                                              struct cmd_list_element *c)
+show_remote_protocol_Z_hardware_bp_packet_cmd (struct ui_file *file, int from_tty,
+                                              struct cmd_list_element *c,
+                                              const char *value)
 {
   show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_HARDWARE_BP]);
 }
@@ -844,8 +844,9 @@ set_remote_protocol_Z_write_wp_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_Z_write_wp_packet_cmd (char *args, int from_tty,
-                                           struct cmd_list_element *c)
+show_remote_protocol_Z_write_wp_packet_cmd (struct ui_file *file, int from_tty,
+                                           struct cmd_list_element *c,
+                                           const char *value)
 {
   show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_WRITE_WP]);
 }
@@ -858,8 +859,9 @@ set_remote_protocol_Z_read_wp_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_Z_read_wp_packet_cmd (char *args, int from_tty,
-                                          struct cmd_list_element *c)
+show_remote_protocol_Z_read_wp_packet_cmd (struct ui_file *file, int from_tty,
+                                          struct cmd_list_element *c,
+                                          const char *value)
 {
   show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_READ_WP]);
 }
@@ -872,8 +874,9 @@ set_remote_protocol_Z_access_wp_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_Z_access_wp_packet_cmd (char *args, int from_tty,
-                                            struct cmd_list_element *c)
+show_remote_protocol_Z_access_wp_packet_cmd (struct ui_file *file, int from_tty,
+                                            struct cmd_list_element *c,
+                                            const char *value)
 {
   show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_ACCESS_WP]);
 }
@@ -896,8 +899,9 @@ set_remote_protocol_Z_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_Z_packet_cmd (char *args, int from_tty,
-                                  struct cmd_list_element *c)
+show_remote_protocol_Z_packet_cmd (struct ui_file *file, int from_tty,
+                                  struct cmd_list_element *c,
+                                  const char *value)
 {
   int i;
   for (i = 0; i < NR_Z_PACKET_TYPES; i++)
@@ -938,8 +942,9 @@ set_remote_protocol_binary_download_cmd (char *args,
 }
 
 static void
-show_remote_protocol_binary_download_cmd (char *args, int from_tty,
-                                         struct cmd_list_element *c)
+show_remote_protocol_binary_download_cmd (struct ui_file *file, int from_tty,
+                                         struct cmd_list_element *c,
+                                         const char *value)
 {
   show_packet_config_cmd (&remote_protocol_binary_download);
 }
@@ -955,8 +960,9 @@ set_remote_protocol_qPart_auxv_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_qPart_auxv_packet_cmd (char *args, int from_tty,
-                                           struct cmd_list_element *c)
+show_remote_protocol_qPart_auxv_packet_cmd (struct ui_file *file, int from_tty,
+                                           struct cmd_list_element *c,
+                                           const char *value)
 {
   show_packet_config_cmd (&remote_protocol_qPart_auxv);
 }
@@ -971,8 +977,9 @@ set_remote_protocol_p_packet_cmd (char *args, int from_tty,
 }
 
 static void
-show_remote_protocol_p_packet_cmd (char *args, int from_tty,
-                                  struct cmd_list_element *c)
+show_remote_protocol_p_packet_cmd (struct ui_file *file, int from_tty,
+                                  struct cmd_list_element *c,
+                                  const char *value)
 {
   show_packet_config_cmd (&remote_protocol_p);
 }
@@ -1486,10 +1493,10 @@ remote_unpack_thread_info_response (char *pkt, threadref *expectedref,
   pkt = unpack_threadid (pkt, &ref);
 
   if (mask == 0)
-    warning ("Incomplete response to threadinfo request\n");
+    warning (_("Incomplete response to threadinfo request."));
   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."));
       return 0;
     }
   copy_threadref (&info->threadid, &ref);
@@ -1503,7 +1510,7 @@ remote_unpack_thread_info_response (char *pkt, threadref *expectedref,
       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."));
          retval = 0;
          break;
        }
@@ -1511,7 +1518,7 @@ remote_unpack_thread_info_response (char *pkt, threadref *expectedref,
        {
          if (length != 16)
            {
-             warning ("ERROR RMT: length of threadid is not 16\n");
+             warning (_("ERROR RMT: length of threadid is not 16."));
              retval = 0;
              break;
            }
@@ -1526,7 +1533,7 @@ remote_unpack_thread_info_response (char *pkt, threadref *expectedref,
          mask = mask & ~(TAG_EXISTS);
          if (length > 8)
            {
-             warning ("ERROR RMT: 'exists' length too long\n");
+             warning (_("ERROR RMT: 'exists' length too long."));
              retval = 0;
              break;
            }
@@ -1550,7 +1557,7 @@ remote_unpack_thread_info_response (char *pkt, threadref *expectedref,
          mask = mask & ~TAG_MOREDISPLAY;
          continue;
        }
-      warning ("ERROR RMT: unknown thread info tag\n");
+      warning (_("ERROR RMT: unknown thread info tag."));
       break;                   /* Not a tag we know about.  */
     }
   return retval;
@@ -1650,14 +1657,14 @@ remote_get_threadlist (int startflag, threadref *nextthread, int result_limit,
          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."));
       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."));
          result = 0;
        }
       return result;           /* break; */
@@ -1665,7 +1672,7 @@ remote_get_threadlist (int startflag, threadref *nextthread, int result_limit,
   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."));
       return 0;
     }
   return result;
@@ -1702,7 +1709,7 @@ remote_threadlist_iterator (rmt_thread_action stepfunction, void *context,
       if (loopcount++ > looplimit)
        {
          result = 0;
-         warning ("Remote fetch threadlist -infinite loop-\n");
+         warning (_("Remote fetch threadlist -infinite loop-."));
          break;
        }
       if (!remote_get_threadlist (startflag, &nextthread, MAXTHREADLISTRESULTS,
@@ -1786,7 +1793,7 @@ remote_threads_info (void)
   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)
     {
@@ -1847,7 +1854,7 @@ remote_threads_extra_info (struct thread_info *tp)
 
   if (remote_desc == 0)                /* paranoia */
     internal_error (__FILE__, __LINE__,
-                   "remote_threads_extra_info");
+                   _("remote_threads_extra_info"));
 
   if (use_threadextra_query)
     {
@@ -1943,7 +1950,7 @@ get_offsets (void)
                                   this command.  */
   if (buf[0] == 'E')
     {
-      warning ("Remote failure reply: %s", buf);
+      warning (_("Remote failure reply: %s"), buf);
       return;
     }
 
@@ -1984,7 +1991,7 @@ get_offsets (void)
     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;
@@ -2140,9 +2147,9 @@ remote_serial_open (char *name)
      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.\n\
+Some events may be lost, rendering further debugging impossible."));
       udp_warning = 1;
     }
 
@@ -2156,9 +2163,9 @@ remote_open_1 (char *name, int from_tty, struct target_ops *target,
   struct exception 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.  */
   if (!async_p)
@@ -2289,6 +2296,8 @@ remote_open_1 (char *name, int from_tty, struct target_ops *target,
       remote_check_symbols (symfile_objfile);
     }
 #endif
+
+  observer_notify_inferior_created (&current_target, from_tty);
 }
 
 /* This takes a program previously attached to and detaches it.  After
@@ -2303,7 +2312,7 @@ remote_detach (char *args, int from_tty)
   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");
@@ -2327,7 +2336,7 @@ remote_disconnect (char *args, int from_tty)
   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."));
 
   /* Unregister the file descriptor from the event loop.  */
   if (target_is_async_p ())
@@ -2350,7 +2359,7 @@ fromhex (int a)
   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 +2844,7 @@ remote_wait (ptid_t ptid, struct target_waitstatus *status)
       switch (buf[0])
        {
        case 'E':               /* Error of some sort.  */
-         warning ("Remote failure reply: %s", buf);
+         warning (_("Remote failure reply: %s"), buf);
          continue;
        case 'F':               /* File-I/O request.  */
          remote_fileio_request (buf);
@@ -2880,8 +2889,8 @@ remote_wait (ptid_t ptid, struct target_waitstatus *status)
                  {
                    p1 = (unsigned char *) strchr (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 (p, "thread", p1 - p) == 0)
                      {
@@ -2911,13 +2920,13 @@ Packet: '%s'\n",
                    p = p1;
 
                    if (*p++ != ':')
-                     error ("Malformed packet(b) (missing colon): %s\n\
-Packet: '%s'\n",
+                     error (_("Malformed packet(b) (missing colon): %s\n\
+Packet: '%s'\n"),
                             p, buf);
 
                    if (reg == NULL)
-                     error ("Remote sent bad register number %s: %s\n\
-Packet: '%s'\n",
+                     error (_("Remote sent bad register number %s: %s\n\
+Packet: '%s'\n"),
                             phex_nz (pnum, 0), p, buf);
 
                    fieldsize = hex2bin (p, regs, 
@@ -2926,13 +2935,13 @@ Packet: '%s'\n",
                    p += 2 * fieldsize;
                    if (fieldsize < register_size (current_gdbarch, 
                                                   reg->regnum))
-                     warning ("Remote reply is too short: %s", buf);
+                     warning (_("Remote reply is too short: %s"), buf);
                    regcache_raw_supply (current_regcache, 
                                         reg->regnum, regs);
                  }
 
                if (*p++ != ';')
-                 error ("Remote register badly formatted: %s\nhere: %s"
+                 error (_("Remote register badly formatted: %s\nhere: %s")
                         buf, p);
              }
          }
@@ -2983,7 +2992,7 @@ Packet: '%s'\n",
            }
          /* else fallthrough */
        default:
-         warning ("Invalid remote reply: %s", buf);
+         warning (_("Invalid remote reply: %s"), buf);
          continue;
        }
     }
@@ -3031,7 +3040,7 @@ remote_async_wait (ptid_t ptid, struct target_waitstatus *status)
       switch (buf[0])
        {
        case 'E':               /* Error of some sort.  */
-         warning ("Remote failure reply: %s", buf);
+         warning (_("Remote failure reply: %s"), buf);
          continue;
        case 'F':               /* File-I/O request.  */
          remote_fileio_request (buf);
@@ -3076,8 +3085,8 @@ remote_async_wait (ptid_t ptid, struct target_waitstatus *status)
                  {
                    p1 = (unsigned char *) strchr (p, ':');
                    if (p1 == NULL)
-                     error ("Malformed packet(a) (missing colon): %s\n\
-Packet: '%s'\n",
+                     error (_("Malformed packet(a) (missing colon): %s\n\
+Packet: '%s'\n"),
                             p, buf);
                    if (strncmp (p, "thread", p1 - p) == 0)
                      {
@@ -3107,13 +3116,13 @@ Packet: '%s'\n",
                    struct packet_reg *reg = packet_reg_from_pnum (rs, pnum);
                    p = p1;
                    if (*p++ != ':')
-                     error ("Malformed packet(b) (missing colon): %s\n\
-Packet: '%s'\n",
+                     error (_("Malformed packet(b) (missing colon): %s\n\
+Packet: '%s'\n"),
                             p, buf);
 
                    if (reg == NULL)
-                     error ("Remote sent bad register number %ld: %s\n\
-Packet: '%s'\n",
+                     error (_("Remote sent bad register number %ld: %s\n\
+Packet: '%s'\n"),
                             pnum, p, buf);
 
                    fieldsize = hex2bin (p, regs, 
@@ -3122,12 +3131,12 @@ Packet: '%s'\n",
                    p += 2 * fieldsize;
                    if (fieldsize < register_size (current_gdbarch, 
                                                   reg->regnum))
-                     warning ("Remote reply is too short: %s", buf);
+                     warning (_("Remote reply is too short: %s"), buf);
                    regcache_raw_supply (current_regcache, reg->regnum, regs);
                  }
 
                if (*p++ != ';')
-                 error ("Remote register badly formatted: %s\nhere: %s",
+                 error (_("Remote register badly formatted: %s\nhere: %s"),
                         buf, p);
              }
          }
@@ -3181,7 +3190,7 @@ Packet: '%s'\n",
            }
          /* else fallthrough */
        default:
-         warning ("Invalid remote reply: %s", buf);
+         warning (_("Invalid remote reply: %s"), buf);
          continue;
        }
     }
@@ -3234,7 +3243,7 @@ fetch_register_using_p (int regnum)
     {
       if (p[1] == 0)
         {
-          error ("fetch_register_using_p: early buf termination");
+          error (_("fetch_register_using_p: early buf termination"));
           return 0;
         }
 
@@ -3262,8 +3271,8 @@ remote_fetch_registers (int regnum)
       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."));
     }
       switch (remote_protocol_p.support)
        {
@@ -3273,7 +3282,7 @@ remote_fetch_registers (int regnum)
          if (fetch_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 (fetch_register_using_p (regnum))
            {
@@ -3307,6 +3316,7 @@ remote_fetch_registers (int regnum)
      in the buffer is not a hex character, assume that has happened
      and try to fetch another packet to read.  */
   while ((buf[0] < '0' || buf[0] > '9')
+        && (buf[0] < 'A' || buf[0] > 'F')
         && (buf[0] < 'a' || buf[0] > 'f')
         && buf[0] != 'x')      /* New: unavailable register value.  */
     {
@@ -3327,7 +3337,7 @@ remote_fetch_registers (int regnum)
        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;
@@ -3344,7 +3354,7 @@ remote_fetch_registers (int regnum)
       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:
@@ -3451,7 +3461,7 @@ remote_store_registers (int regnum)
          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))
            {
@@ -3475,7 +3485,7 @@ remote_store_registers (int regnum)
   {
     int i;
     regs = alloca (rs->sizeof_g_packet);
-    memset (regs, rs->sizeof_g_packet, 0);
+    memset (regs, 0, rs->sizeof_g_packet);
     for (i = 0; i < NUM_REGS + NUM_PSEUDO_REGS; i++)
       {
        struct packet_reg *r = &rs->regs[i];
@@ -3634,16 +3644,18 @@ remote_write_bytes (CORE_ADDR memaddr, char *myaddr, int len)
   /* Verify that the target can support a binary download.  */
   check_binary_download (memaddr);
 
+  payload_size = get_memory_write_packet_size ();
+  
   /* Compute the size, and then allocate space for the largest
-     possible packet.  Include space for an extra trailing NULL.  */
-  sizeof_buf = get_memory_write_packet_size () + 1;
+     possible packet.  Include space for an extra trailing NUL.  */
+  sizeof_buf = payload_size + 1;
   buf = alloca (sizeof_buf);
 
   /* Compute the size of the actual payload by subtracting out the
-     packet header and footer overhead: "$M<memaddr>,<len>:...#nn".  */
-  payload_size = (get_memory_write_packet_size () - (strlen ("$M,:#NN")
-                                                    + hexnumlen (memaddr)
-                                                    + hexnumlen (len)));
+     packet header and footer overhead: "$M<memaddr>,<len>:...#nn".
+     */
+  payload_size -= strlen ("$M,:#NN");
+  payload_size -= hexnumlen (memaddr);
 
   /* Construct the packet header: "[MX]<memaddr>,<len>:".   */
 
@@ -3656,18 +3668,25 @@ remote_write_bytes (CORE_ADDR memaddr, char *myaddr, int len)
       *p++ = 'X';
       /* Best guess at number of bytes that will fit.  */
       todo = min (len, payload_size);
+      payload_size -= hexnumlen (todo);
+      todo = min (todo, payload_size);
       break;
     case PACKET_DISABLE:
       *p++ = 'M';
       /* Num bytes that will fit.  */
       todo = min (len, payload_size / 2);
+      payload_size -= hexnumlen (todo);
+      todo = min (todo, payload_size / 2);
       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"));
     }
+  if (todo <= 0)
+    internal_error (__FILE__, __LINE__,
+                   _("minumum packet size too small to write data"));
 
   /* Append "<memaddr>".  */
   memaddr = remote_address_masked (memaddr);
@@ -3731,9 +3750,9 @@ remote_write_bytes (CORE_ADDR memaddr, char *myaddr, int len)
       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));
@@ -3890,10 +3909,10 @@ readchar (int timeout)
     {
     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;
@@ -3912,7 +3931,7 @@ remote_send (char *buf,
   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
@@ -3982,7 +4001,7 @@ putpkt_binary (char *buf, int cnt)
          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)
@@ -4161,7 +4180,7 @@ read_frame (char *buf,
              }
 
            buf[bc] = '\0';
-           printf_filtered ("Repeat count %d too large for buffer: "
+           printf_filtered (_("Repeat count %d too large for buffer: ")
                             repeat);
            puts_filtered (buf);
            puts_filtered ("\n");
@@ -4254,7 +4273,7 @@ getpkt_sane (char *buf,
                {
                  QUIT;
                  target_mourn_inferior ();
-                 error ("Watchdog has expired.  Target detached.\n");
+                 error (_("Watchdog has expired.  Target detached."));
                }
              if (remote_debug)
                fputs_filtered ("Timed out.\n", gdb_stdlog);
@@ -4287,7 +4306,7 @@ getpkt_sane (char *buf,
   /* 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;
 }
@@ -4576,7 +4595,7 @@ watchpoint_to_Z_packet (int type)
       break;
     default:
       internal_error (__FILE__, __LINE__,
-                     "hw_bp_to_z: bad watchpoint type %d", type);
+                     _("hw_bp_to_z: bad watchpoint type %d"), type);
     }
 }
 
@@ -4589,7 +4608,7 @@ remote_insert_watchpoint (CORE_ADDR addr, int len, int type)
   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."),
           remote_protocol_Z[packet].name,
           remote_protocol_Z[packet].title);
 
@@ -4611,7 +4630,7 @@ remote_insert_watchpoint (CORE_ADDR addr, int len, int type)
       return 0;
     }
   internal_error (__FILE__, __LINE__,
-                 "remote_insert_watchpoint: reached end of function");
+                 _("remote_insert_watchpoint: reached end of function"));
 }
 
 
@@ -4624,7 +4643,7 @@ remote_remove_watchpoint (CORE_ADDR addr, int len, int type)
   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."),
           remote_protocol_Z[packet].name,
           remote_protocol_Z[packet].title);
 
@@ -4645,7 +4664,7 @@ remote_remove_watchpoint (CORE_ADDR addr, int len, int type)
       return 0;
     }
   internal_error (__FILE__, __LINE__,
-                 "remote_remove_watchpoint: reached end of function");
+                 _("remote_remove_watchpoint: reached end of function"));
 }
 
 
@@ -4715,7 +4734,7 @@ remote_insert_hw_breakpoint (CORE_ADDR addr, char *shadow)
   BREAKPOINT_FROM_PC (&addr, &len);
 
   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."),
           remote_protocol_Z[Z_PACKET_HARDWARE_BP].name,
           remote_protocol_Z[Z_PACKET_HARDWARE_BP].title);
 
@@ -4739,7 +4758,7 @@ remote_insert_hw_breakpoint (CORE_ADDR addr, char *shadow)
       return 0;
     }
   internal_error (__FILE__, __LINE__,
-                 "remote_insert_hw_breakpoint: reached end of function");
+                 _("remote_insert_hw_breakpoint: reached end of function"));
 }
 
 
@@ -4757,7 +4776,7 @@ remote_remove_hw_breakpoint (CORE_ADDR addr, char *shadow)
   BREAKPOINT_FROM_PC (&addr, &len);
 
   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."),
           remote_protocol_Z[Z_PACKET_HARDWARE_BP].name,
           remote_protocol_Z[Z_PACKET_HARDWARE_BP].title);
 
@@ -4781,7 +4800,7 @@ remote_remove_hw_breakpoint (CORE_ADDR addr, char *shadow)
       return 0;
     }
   internal_error (__FILE__, __LINE__,
-                 "remote_remove_hw_breakpoint: reached end of function");
+                 _("remote_remove_hw_breakpoint: reached end of function"));
 }
 
 /* Some targets are only capable of doing downloads, and afterwards
@@ -4797,7 +4816,7 @@ remote_remove_hw_breakpoint (CORE_ADDR addr, char *shadow)
 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);
 }
 
@@ -4861,10 +4880,10 @@ compare_sections_command (char *args, int from_tty)
   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)
     {
@@ -4894,10 +4913,10 @@ compare_sections_command (char *args, int from_tty)
 
       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);
@@ -4915,10 +4934,10 @@ compare_sections_command (char *args, int from_tty)
       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 LONGEST
@@ -5022,7 +5041,7 @@ remote_xfer_partial (struct target_ops *ops, enum target_object object,
 
   /* 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"));
 
   gdb_assert (annex != NULL);
   gdb_assert (readbuf != NULL);
@@ -5065,7 +5084,7 @@ remote_rcmd (char *command,
   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)
@@ -5076,13 +5095,13 @@ remote_rcmd (char *command,
   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."), command);
 
   /* Encode the actual command.  */
   bin2hex (command, p, 0);
 
   if (putpkt (buf) < 0)
-    error ("Communication problem with target\n");
+    error (_("Communication problem with target."));
 
   /* get/display the response */
   while (1)
@@ -5091,7 +5110,7 @@ remote_rcmd (char *command,
       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."));
       if (buf[0] == 'O' && buf[1] != 'K')
        {
          remote_console_output (buf + 1); /* 'O' message from stub.  */
@@ -5102,7 +5121,7 @@ remote_rcmd (char *command,
       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)
        {
@@ -5120,10 +5139,10 @@ packet_command (char *args, int from_tty)
   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: ");
   print_packet (args);
@@ -5164,7 +5183,7 @@ threadset_test_cmd (char *cmd, int tty)
 {
   int sample_thread = SAMPLE_THREAD;
 
-  printf_filtered ("Remote threadset test\n");
+  printf_filtered (_("Remote threadset test\n"));
   set_thread (sample_thread, 1);
 }
 
@@ -5267,16 +5286,16 @@ threadlist_update_test_cmd (char *cmd, int tty)
 static void
 init_remote_threadtests (void)
 {
-  add_com ("tlist", class_obscure, threadlist_test_cmd,
-     "Fetch and print the remote list of thread identifiers, one pkt only");
+  add_com ("tlist", class_obscure, threadlist_test_cmd, _("\
+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");
+          _("Fetch and display info about one thread"));
   add_com ("tset", class_obscure, threadset_test_cmd,
-          "Test setting to a different thread");
+          _("Test setting to a different thread"));
   add_com ("tupd", class_obscure, threadlist_update_test_cmd,
-          "Iterate through updating all remote thread info");
+          _("Iterate through updating all remote thread info"));
   add_com ("talive", class_obscure, threadalive_test,
-          " Remote thread alive test ");
+          _(" Remote thread alive test "));
 }
 
 #endif /* 0 */
@@ -5287,9 +5306,11 @@ init_remote_threadtests (void)
 static char *
 remote_pid_to_str (ptid_t ptid)
 {
-  static char buf[30];
+  static char buf[32];
+  int size;
 
-  sprintf (buf, "Thread %d", PIDGET (ptid));
+  size = snprintf (buf, sizeof buf, "thread %d", ptid_get_pid (ptid));
+  gdb_assert (size < sizeof buf);
   return buf;
 }
 
@@ -5398,7 +5419,7 @@ remote_async (void (*callback) (enum inferior_event_type event_type,
 {
   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)
     {
@@ -5500,13 +5521,13 @@ show_remote_cmd (char *args, int from_tty)
 {
   /* FIXME: cagney/2002-06-15: This function should iterate over
      remote_show_cmdlist for a list of sub commands to show.  */
-  show_remote_protocol_Z_packet_cmd (args, from_tty, NULL);
-  show_remote_protocol_P_packet_cmd (args, from_tty, NULL);
-  show_remote_protocol_p_packet_cmd (args, from_tty, NULL);
-  show_remote_protocol_qSymbol_packet_cmd (args, from_tty, NULL);
-  show_remote_protocol_vcont_packet_cmd (args, from_tty, NULL);
-  show_remote_protocol_binary_download_cmd (args, from_tty, NULL);
-  show_remote_protocol_qPart_auxv_packet_cmd (args, from_tty, NULL);
+  show_remote_protocol_Z_packet_cmd (gdb_stdout, from_tty, NULL, NULL);
+  show_remote_protocol_P_packet_cmd (gdb_stdout, from_tty, NULL, NULL);
+  show_remote_protocol_p_packet_cmd (gdb_stdout, from_tty, NULL, NULL);
+  show_remote_protocol_qSymbol_packet_cmd (gdb_stdout, from_tty, NULL, NULL);
+  show_remote_protocol_vcont_packet_cmd (gdb_stdout, from_tty, NULL, NULL);
+  show_remote_protocol_binary_download_cmd (gdb_stdout, from_tty, NULL, NULL);
+  show_remote_protocol_qPart_auxv_packet_cmd (gdb_stdout, from_tty, NULL, NULL);
 }
 
 static void
@@ -5570,98 +5591,95 @@ _initialize_remote (void)
 
   /* set/show remote ...  */
 
-  add_prefix_cmd ("remote", class_maintenance, set_remote_cmd, "\
+  add_prefix_cmd ("remote", class_maintenance, set_remote_cmd, _("\
 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, _("\
 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).",
+  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)."),
           &cmdlist);
 
-  add_cmd ("packet", class_maintenance, packet_command,
-          "Send an arbitrary packet to a remote target.\n\
+  add_cmd ("packet", class_maintenance, packet_command, _("\
+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.", "\
-Show whether to send break if interrupted.", "\
-If set, a break, instead of a cntrl-c, is sent to the remote target.",
-                          NULL, /* PRINT: Whether to send break if interrupted is %s.  */
-                          NULL, NULL,
+  add_setshow_boolean_cmd ("remotebreak", no_class, &remote_break, _("\
+Set whether to send break if interrupted."), _("\
+Show whether to send break if interrupted."), _("\
+If set, a break, instead of a cntrl-c, is sent to the remote target."),
+                          NULL, NULL, /* FIXME: i18n: Whether to send break if interrupted is %s.  */
                           &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",
+  add_cmd ("remotewritesize", no_class, set_memory_write_packet_size, _("\
+Set the maximum number of bytes per memory write packet (deprecated)."),
           &setlist);
-  add_cmd ("remotewritesize", no_class, show_memory_write_packet_size,
-          "Show the maximum number of bytes per memory write packet (deprecated).\n",
+  add_cmd ("remotewritesize", no_class, show_memory_write_packet_size, _("\
+Show the maximum number of bytes per memory write packet (deprecated)."),
           &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"
-          "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",
+          set_memory_write_packet_size, _("\
+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."),
           &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"
-          "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",
+          set_memory_read_packet_size, _("\
+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."),
           &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",
+          _("Show the maximum number of bytes per memory-write packet."),
           &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",
+          _("Show the maximum number of bytes per memory-read packet."),
           &remote_show_cmdlist);
 
   add_setshow_zinteger_cmd ("hardware-watchpoint-limit", no_class,
-                           &remote_hw_watchpoint_limit, "\
-Set the maximum number of target hardware watchpoints.", "\
-Show the maximum number of target hardware watchpoints.", "\
-Specify a negative limit for unlimited.",
-                           NULL, /* PRINT: The maximum number of target hardware watchpoints is %s.  */
-                           NULL, NULL,
+                           &remote_hw_watchpoint_limit, _("\
+Set the maximum number of target hardware watchpoints."), _("\
+Show the maximum number of target hardware watchpoints."), _("\
+Specify a negative limit for unlimited."),
+                           NULL, NULL, /* FIXME: i18n: The maximum number of target hardware watchpoints is %s.  */
                            &remote_set_cmdlist, &remote_show_cmdlist);
   add_setshow_zinteger_cmd ("hardware-breakpoint-limit", no_class,
-                           &remote_hw_breakpoint_limit, "\
-Set the maximum number of target hardware breakpoints.", "\
-Show the maximum number of target hardware breakpoints.", "\
-Specify a negative limit for unlimited.",
-                           NULL, /* PRINT: The maximum number of target hardware breakpoints is %s.  */
-                           NULL, NULL,
+                           &remote_hw_breakpoint_limit, _("\
+Set the maximum number of target hardware breakpoints."), _("\
+Show the maximum number of target hardware breakpoints."), _("\
+Specify a negative limit for unlimited."),
+                           NULL, NULL, /* FIXME: i18n: The maximum number of target hardware breakpoints is %s.  */
                            &remote_set_cmdlist, &remote_show_cmdlist);
 
-  deprecated_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_integer_cmd ("remoteaddresssize", class_obscure,
+                          &remote_address_size, _("\
+Set the maximum size of the address (in bits) in a memory packet."), _("\
+Show the maximum size of the address (in bits) in a memory packet."), NULL,
+                          NULL,
+                          NULL, /* FIXME: i18n: */
+                          &setlist, &showlist);
 
   add_packet_config_cmd (&remote_protocol_binary_download,
                         "X", "binary-download",
@@ -5669,15 +5687,6 @@ in a memory packet.\n",
                         show_remote_protocol_binary_download_cmd,
                         &remote_set_cmdlist, &remote_show_cmdlist,
                         1);
-#if 0
-  /* XXXX - should ``set remotebinarydownload'' be retained for
-     compatibility.  */
-  deprecated_add_show_from_set
-    (add_set_cmd ("remotebinarydownload", no_class,
-                 var_boolean, (char *) &remote_binary_download,
-                 "Set binary downloads.\n", &setlist),
-     &showlist);
-#endif
 
   add_packet_config_cmd (&remote_protocol_vcont,
                         "vCont", "verbose-resume",
@@ -5751,14 +5760,13 @@ in a memory packet.\n",
 
   /* 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, _("\
+Set use of remote protocol `Z' packets"), _("\
+Show use of remote protocol `Z' packets "), _("\
 When set, GDB will attempt to use the remote breakpoint and watchpoint\n\
-packets.",
-                               NULL, /* PRINT: Use of remote protocol `Z' packets is %s.  */
+packets."),
                                set_remote_protocol_Z_packet_cmd,
-                               show_remote_protocol_Z_packet_cmd,
+                               show_remote_protocol_Z_packet_cmd, /* FIXME: i18n: Use of remote protocol `Z' packets is %s.  */
                                &remote_set_cmdlist, &remote_show_cmdlist);
 
   /* Eventually initialize fileio.  See fileio.c */