doc/ChangeLog:
[deliverable/binutils-gdb.git] / gdb / interps.c
index 97befa7033672e6aa58036694b67b40db1fc7667..3e6de2f6d8ee6eaff1457c4ce056ad7d50288aa9 100644 (file)
@@ -1,6 +1,6 @@
 /* Manages interpreters for GDB, the GNU debugger.
 
-   Copyright 2000, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2002, 2003, 2007 Free Software Foundation, Inc.
 
    Written by Jim Ingham <jingham@apple.com> of Apple Computer, Inc.
 
@@ -18,8 +18,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA. */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA. */
 
 /* This is just a first cut at separating out the "interpreter"
    functions of gdb into self-contained modules.  There are a couple
@@ -305,7 +305,7 @@ interp_exec_p (struct interp *interp)
   return interp->procs->exec_proc != NULL;
 }
 
-struct exception
+struct gdb_exception
 interp_exec (struct interp *interp, const char *command_str)
 {
   if (interp->procs->exec_proc != NULL)
@@ -329,7 +329,6 @@ clear_interpreter_hooks (void)
   deprecated_delete_breakpoint_hook = 0;
   deprecated_modify_breakpoint_hook = 0;
   deprecated_interactive_hook = 0;
-  deprecated_registers_changed_hook = 0;
   deprecated_readline_begin_hook = 0;
   deprecated_readline_hook = 0;
   deprecated_readline_end_hook = 0;
@@ -398,13 +397,13 @@ interpreter_exec_cmd (char *args, int from_tty)
 
   for (i = 1; i < nrules; i++)
     {
-      struct exception e = interp_exec (interp_to_use, prules[i]);
+      struct gdb_exception e = interp_exec (interp_to_use, prules[i]);
       if (e.reason < 0)
        {
          interp_set (old_interp);
-         interp_set_quiet (interp_to_use, old_quiet);
+         interp_set_quiet (interp_to_use, use_quiet);
+         interp_set_quiet (old_interp, old_quiet);
          error (_("error in command: \"%s\"."), prules[i]);
-         break;
        }
     }
 
@@ -424,10 +423,11 @@ interpreter_completer (char *text, char *word)
   struct interp *interp;
 
   /* We expect only a very limited number of interpreters, so just
-     allocate room for all of them. */
+     allocate room for all of them plus one for the last that must be NULL
+     to correctly end the list. */
   for (interp = interp_list; interp != NULL; interp = interp->next)
     ++alloced;
-  matches = (char **) xmalloc (alloced * sizeof (char *));
+  matches = (char **) xcalloc (alloced + 1, sizeof (char *));
 
   num_matches = 0;
   textlen = strlen (text);
@@ -460,12 +460,6 @@ interpreter_completer (char *text, char *word)
       xfree (matches);
       matches = NULL;
     }
-  else if (num_matches < alloced)
-    {
-      matches = (char **) xrealloc ((char *) matches, ((num_matches + 1)
-                                                      * sizeof (char *)));
-      matches[num_matches] = NULL;
-    }
 
   return matches;
 }
This page took 0.028705 seconds and 4 git commands to generate.