]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
edit: Fix delete_word when not in the end of line
authorJouni Malinen <j@w1.fi>
Sat, 20 Nov 2010 21:05:12 +0000 (23:05 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 20 Nov 2010 21:05:12 +0000 (23:05 +0200)
src/utils/edit.c

index d4de2b1683caf280064ab9af3dfdebad2539897f..f4d50aca28fb680e522321bcb8230cfa3776f633 100644 (file)
@@ -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();
 }