diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/remote-sim.c | 16 |
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. */ |