aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/remote-sim.c16
2 files changed, 19 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index cdf6a01..c16049c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-13 Joel Brobecker <brobecker@adacore.com>
+
+ * remote-sim.c (sim_command_completer): Change type of return
+ value to "VEC (char_ptr) *". Adjust implementation accordingly.
+
2012-06-13 Mark Kettenis <kettenis@gnu.org>
Jan Kratochvil <jan.kratochvil@redhat.com>
diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
index 0e7d84e..11e1003 100644
--- a/gdb/remote-sim.c
+++ b/gdb/remote-sim.c
@@ -1198,16 +1198,28 @@ simulator_command (char *args, int from_tty)
registers_changed ();
}
-static char **
+static VEC (char_ptr) *
sim_command_completer (struct cmd_list_element *ignore, char *text, char *word)
{
struct sim_inferior_data *sim_data;
+ char **tmp;
+ int i;
+ VEC (char_ptr) *result;
sim_data = inferior_data (current_inferior (), sim_inferior_data_key);
if (sim_data == NULL || sim_data->gdbsim_desc == NULL)
return NULL;
- return sim_complete_command (sim_data->gdbsim_desc, text, word);
+ tmp = sim_complete_command (sim_data->gdbsim_desc, text, word);
+ if (tmp == NULL)
+ return NULL;
+
+ /* Transform the array into a VEC, and then free the array. */
+ for (i = 0; tmp[i] != NULL; i++)
+ VEC_safe_push (char_ptr, result, tmp[i]);
+ xfree (tmp);
+
+ return result;
}
/* Check to see if a thread is still alive. */