9
0
Fork 0

readline: Fix a bug when tab completion is used in the middle

of the line.
This commit is contained in:
Sascha Hauer 2008-03-02 17:23:10 +01:00
parent 1a8e0f589f
commit 23d1cead89
1 changed files with 12 additions and 4 deletions

View File

@ -201,17 +201,25 @@ int readline(const char *prompt, char *buf, int len)
switch (ichar) {
case '\t':
#ifdef CONFIG_AUTO_COMPLETE
buf[eol_num] = 0;
tmp = buf[num];
buf[num] = 0;
reprint = complete(buf, &completestr);
if (reprint)
buf[num] = tmp;
if (reprint) {
printf("%s%s", prompt, buf);
if (tmp)
for (i = 0; i < eol_num - num; i++)
getcmd_putch(CTL_BACKSPACE);
}
i = 0;
while (completestr[i])
cread_add_char(completestr[i++], insert, &num, &eol_num, buf, len);
buf[num] = tmp;
cread_add_char(completestr[i++], insert, &num,
&eol_num, buf, len);
#endif
break;