Completion needs to be done even if the full word has been entered.
In addition, fix the space-after-full-word to properly allocate room
for the extra character when completion is used in the middle of the
string.
}
len = max_common_length(c);
- if (len <= plen) {
+ if (len < plen) {
if (list) {
edit_clear_line();
printf("\r");
len = room;
add_space = count == 1 && len < room;
- os_memmove(cmdbuf + cmdbuf_pos + len, cmdbuf + cmdbuf_pos,
- cmdbuf_len - cmdbuf_pos + add_space);
+ os_memmove(cmdbuf + cmdbuf_pos + len + add_space, cmdbuf + cmdbuf_pos,
+ cmdbuf_len - cmdbuf_pos);
os_memcpy(&cmdbuf[cmdbuf_pos - plen], c[0], plen + len);
if (add_space)
cmdbuf[cmdbuf_pos + len] = ' ';