From: Jouni Malinen Date: Sat, 20 Nov 2010 21:05:12 +0000 (+0200) Subject: edit: Fix delete_word when not in the end of line X-Git-Tag: hostap-1-bp~772 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=31e1206baafe46ef86a320a19c10b47884cc2714;p=thirdparty%2Fhostap.git edit: Fix delete_word when not in the end of line --- diff --git a/src/utils/edit.c b/src/utils/edit.c index d4de2b168..f4d50aca2 100644 --- a/src/utils/edit.c +++ b/src/utils/edit.c @@ -130,13 +130,17 @@ static void delete_current(void) static void delete_word(void) { + int pos; + edit_clear_line(); - while (cmdbuf_len > 0 && cmdbuf[cmdbuf_len - 1] == ' ') - cmdbuf_len--; - while (cmdbuf_len > 0 && cmdbuf[cmdbuf_len - 1] != ' ') - cmdbuf_len--; - if (cmdbuf_pos > cmdbuf_len) - cmdbuf_pos = cmdbuf_len; + pos = cmdbuf_pos; + while (pos > 0 && cmdbuf[pos - 1] == ' ') + pos--; + while (pos > 0 && cmdbuf[pos - 1] != ' ') + pos--; + os_memmove(cmdbuf + pos, cmdbuf + cmdbuf_pos, cmdbuf_len - cmdbuf_pos); + cmdbuf_len -= cmdbuf_pos - pos; + cmdbuf_pos = pos; edit_redraw(); }