projects
/
qemu
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* Update OEA environment, following the PowerPC 2.04 specification:
[qemu]
/
readline.c
diff --git
a/readline.c
b/readline.c
index
5f163af
..
de60cfc
100644
(file)
--- a/
readline.c
+++ b/
readline.c
@@
-300,11
+300,11
@@
void add_completion(const char *str)
static void term_completion(void)
{
static void term_completion(void)
{
- int len, i, j, max_width, nb_cols;
+ int len, i, j, max_width, nb_cols, max_prefix;
char *cmdline;
nb_completions = 0;
char *cmdline;
nb_completions = 0;
-
+
cmdline = qemu_malloc(term_cmd_buf_index + 1);
if (!cmdline)
return;
cmdline = qemu_malloc(term_cmd_buf_index + 1);
if (!cmdline)
return;
@@
-327,11
+327,26
@@
static void term_completion(void)
} else {
term_printf("\n");
max_width = 0;
} else {
term_printf("\n");
max_width = 0;
+ max_prefix = 0;
for(i = 0; i < nb_completions; i++) {
len = strlen(completions[i]);
for(i = 0; i < nb_completions; i++) {
len = strlen(completions[i]);
+ if (i==0) {
+ max_prefix = len;
+ } else {
+ if (len < max_prefix)
+ max_prefix = len;
+ for(j=0; j<max_prefix; j++) {
+ if (completions[i][j] != completions[0][j])
+ max_prefix = j;
+ }
+ }
if (len > max_width)
max_width = len;
}
if (len > max_width)
max_width = len;
}
+ if (max_prefix > 0)
+ for(i = completion_index; i < max_prefix; i++) {
+ term_insert_char(completions[0][i]);
+ }
max_width += 2;
if (max_width < 10)
max_width = 10;
max_width += 2;
if (max_width < 10)
max_width = 10;