diff --git a/src/fe-text/gui-entry.c b/src/fe-text/gui-entry.c index 4fb67596..f60525b9 100644 --- a/src/fe-text/gui-entry.c +++ b/src/fe-text/gui-entry.c @@ -183,6 +183,24 @@ void gui_entry_erase_word(void) entry_update(); } +void gui_entry_erase_next_word(void) +{ + int to = pos; + + if (pos == entry->len) return; + + while (entry->str[to] == ' ' && to < entry->len) + to++; + + while (entry->str[to] != ' ' && to < entry->len) + to++; + + g_string_erase(entry, pos, to - pos); + + entry_screenpos(); + entry_update(); +} + int gui_entry_get_pos(void) { return pos; diff --git a/src/fe-text/gui-entry.h b/src/fe-text/gui-entry.h index 2e31ad69..ff8f3ef5 100644 --- a/src/fe-text/gui-entry.h +++ b/src/fe-text/gui-entry.h @@ -16,6 +16,7 @@ void gui_entry_insert_char(char chr); void gui_entry_erase(int size); void gui_entry_erase_word(void); +void gui_entry_erase_next_word(void); int gui_entry_get_pos(void); void gui_entry_set_pos(int pos); diff --git a/src/fe-text/gui-readline.c b/src/fe-text/gui-readline.c index 8d9d3321..7d48c557 100644 --- a/src/fe-text/gui-readline.c +++ b/src/fe-text/gui-readline.c @@ -385,12 +385,12 @@ static void key_backspace(void) static void key_delete_previous_word(void) { - /* FIXME */ + gui_entry_erase_word(); } static void key_delete_next_word(void) { - /* FIXME */ + gui_entry_erase_next_word(); } static void key_delete_to_previous_space(void)