2011-05-18 Pedro Alves <pedro@codesourcery.com>
[deliverable/binutils-gdb.git] / gdb / memattr.c
index abf1d00ef3e370b6735aa22e39aab08ec9dd1344..d576155c8094ff65c230fa146c9f7ead58787812 100644 (file)
@@ -27,6 +27,8 @@
 #include "language.h"
 #include "vec.h"
 #include "gdb_string.h"
+#include "breakpoint.h"
+#include "cli/cli-utils.h"
 
 const struct mem_attrib default_mem_attrib =
 {
@@ -562,8 +564,6 @@ mem_enable (int num)
 static void
 mem_enable_command (char *args, int from_tty)
 {
-  char *p = args;
-  char *p1;
   int num;
   struct mem_region *m;
   int ix;
@@ -572,27 +572,22 @@ mem_enable_command (char *args, int from_tty)
 
   target_dcache_invalidate ();
 
-  if (p == 0)
-    {
+  if (args == NULL || *args == '\0')
+    { /* Enable all mem regions.  */
       for (ix = 0; VEC_iterate (mem_region_s, mem_region_list, ix, m); ix++)
        m->enabled_p = 1;
     }
   else
-    while (*p)
-      {
-       p1 = p;
-       while (*p1 >= '0' && *p1 <= '9')
-         p1++;
-       if (*p1 && *p1 != ' ' && *p1 != '\t')
-         error (_("Arguments must be memory region numbers."));
-
-       num = atoi (p);
-       mem_enable (num);
-
-       p = p1;
-       while (*p == ' ' || *p == '\t')
-         p++;
-      }
+    {
+      struct get_number_or_range_state state;
+
+      init_number_or_range (&state, args);
+      while (!state.finished)
+       {
+         num = get_number_or_range (&state);
+         mem_enable (num);
+       }
+    }
 }
 \f
 
@@ -616,8 +611,6 @@ mem_disable (int num)
 static void
 mem_disable_command (char *args, int from_tty)
 {
-  char *p = args;
-  char *p1;
   int num;
   struct mem_region *m;
   int ix;
@@ -626,27 +619,22 @@ mem_disable_command (char *args, int from_tty)
 
   target_dcache_invalidate ();
 
-  if (p == 0)
+  if (args == NULL || *args == '\0')
     {
       for (ix = 0; VEC_iterate (mem_region_s, mem_region_list, ix, m); ix++)
        m->enabled_p = 0;
     }
   else
-    while (*p)
-      {
-       p1 = p;
-       while (*p1 >= '0' && *p1 <= '9')
-         p1++;
-       if (*p1 && *p1 != ' ' && *p1 != '\t')
-         error (_("Arguments must be memory region numbers."));
-
-       num = atoi (p);
-       mem_disable (num);
-
-       p = p1;
-       while (*p == ' ' || *p == '\t')
-         p++;
-      }
+    {
+      struct get_number_or_range_state state;
+
+      init_number_or_range (&state, args);
+      while (!state.finished)
+       {
+         num = get_number_or_range (&state);
+         mem_disable (num);
+       }
+    }
 }
 
 /* Delete the memory region number NUM.  */
@@ -679,15 +667,14 @@ mem_delete (int num)
 static void
 mem_delete_command (char *args, int from_tty)
 {
-  char *p = args;
-  char *p1;
   int num;
+  struct get_number_or_range_state state;
 
   require_user_regions (from_tty);
 
   target_dcache_invalidate ();
 
-  if (p == 0)
+  if (args == NULL || *args == '\0')
     {
       if (query (_("Delete all memory regions? ")))
        mem_clear ();
@@ -695,20 +682,11 @@ mem_delete_command (char *args, int from_tty)
       return;
     }
 
-  while (*p)
+  init_number_or_range (&state, args);
+  while (!state.finished)
     {
-      p1 = p;
-      while (*p1 >= '0' && *p1 <= '9')
-       p1++;
-      if (*p1 && *p1 != ' ' && *p1 != '\t')
-       error (_("Arguments must be memory region numbers."));
-
-      num = atoi (p);
+      num = get_number_or_range (&state);
       mem_delete (num);
-
-      p = p1;
-      while (*p == ' ' || *p == '\t')
-       p++;
     }
 
   dont_repeat ();
@@ -739,19 +717,19 @@ where <mode>  may be rw (read/write), ro (read-only) or wo (write-only),\n\
   add_cmd ("mem", class_vars, mem_enable_command, _("\
 Enable memory region.\n\
 Arguments are the code numbers of the memory regions to enable.\n\
-Usage: enable mem <code number>\n\
+Usage: enable mem <code number>...\n\
 Do \"info mem\" to see current list of code numbers."), &enablelist);
 
   add_cmd ("mem", class_vars, mem_disable_command, _("\
 Disable memory region.\n\
 Arguments are the code numbers of the memory regions to disable.\n\
-Usage: disable mem <code number>\n\
+Usage: disable mem <code number>...\n\
 Do \"info mem\" to see current list of code numbers."), &disablelist);
 
   add_cmd ("mem", class_vars, mem_delete_command, _("\
 Delete memory region.\n\
 Arguments are the code numbers of the memory regions to delete.\n\
-Usage: delete mem <code number>\n\
+Usage: delete mem <code number>...\n\
 Do \"info mem\" to see current list of code numbers."), &deletelist);
 
   add_info ("mem", mem_info_command,
This page took 0.027084 seconds and 4 git commands to generate.