Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2436)

Unified Diff: gdb/interps.c

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/interps.h ('k') | gdb/iq2000-tdep.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/interps.c
diff --git a/gdb/interps.c b/gdb/interps.c
index 36ed5204277a13f350a67bac2814e4b75704293c..698e26ee83583908a92c938414d2d8961c145ffb 100644
--- a/gdb/interps.c
+++ b/gdb/interps.c
@@ -73,8 +73,6 @@ struct interp
/* Functions local to this file. */
static void initialize_interps (void);
-static char **interpreter_completer (struct cmd_list_element *cmd,
- char *text, char *word);
/* The magic initialization routine for this module. */
@@ -253,6 +251,31 @@ interp_ui_out (struct interp *interp)
return current_interpreter->procs->ui_out_proc (current_interpreter);
}
+int
+current_interp_set_logging (int start_log, struct ui_file *out,
+ struct ui_file *logfile)
+{
+ if (current_interpreter == NULL
+ || current_interpreter->procs->set_logging_proc == NULL)
+ return 0;
+
+ return current_interpreter->procs->set_logging_proc (current_interpreter,
+ start_log, out,
+ logfile);
+}
+
+/* Temporarily overrides the current interpreter. */
+struct interp *
+interp_set_temp (const char *name)
+{
+ struct interp *interp = interp_lookup (name);
+ struct interp *old_interp = current_interpreter;
+
+ if (interp)
+ current_interpreter = interp;
+ return old_interp;
+}
+
/* Returns the interpreter's cookie. */
void *
@@ -433,54 +456,39 @@ interpreter_exec_cmd (char *args, int from_tty)
}
/* List the possible interpreters which could complete the given text. */
-static char **
+static VEC (char_ptr) *
interpreter_completer (struct cmd_list_element *ignore, char *text, char *word)
{
- int alloced = 0;
int textlen;
- int num_matches;
- char **matches;
+ VEC (char_ptr) *matches = NULL;
struct interp *interp;
- /* We expect only a very limited number of interpreters, so just
- 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 **) xcalloc (alloced + 1, sizeof (char *));
-
- num_matches = 0;
textlen = strlen (text);
for (interp = interp_list; interp != NULL; interp = interp->next)
{
if (strncmp (interp->name, text, textlen) == 0)
{
- matches[num_matches] =
- (char *) xmalloc (strlen (word) + strlen (interp->name) + 1);
+ char *match;
+
+ match = (char *) xmalloc (strlen (word) + strlen (interp->name) + 1);
if (word == text)
- strcpy (matches[num_matches], interp->name);
+ strcpy (match, interp->name);
else if (word > text)
{
/* Return some portion of interp->name. */
- strcpy (matches[num_matches], interp->name + (word - text));
+ strcpy (match, interp->name + (word - text));
}
else
{
/* Return some of text plus interp->name. */
- strncpy (matches[num_matches], word, text - word);
- matches[num_matches][text - word] = '\0';
- strcat (matches[num_matches], interp->name);
+ strncpy (match, word, text - word);
+ match[text - word] = '\0';
+ strcat (match, interp->name);
}
- ++num_matches;
+ VEC_safe_push (char_ptr, matches, match);
}
}
- if (num_matches == 0)
- {
- xfree (matches);
- matches = NULL;
- }
-
return matches;
}
« no previous file with comments | « gdb/interps.h ('k') | gdb/iq2000-tdep.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698