diff options
author | Emmanuel Bouthenot <kolter@openics.org> | 2005-07-13 08:32:02 +0000 |
---|---|---|
committer | Emmanuel Bouthenot <kolter@openics.org> | 2005-07-13 08:32:02 +0000 |
commit | 3d41a3fa2f90ba14666b1809aaff9cc97e4c9414 (patch) | |
tree | 37ab7a1554530d4556762ba84e4dbade407ba9e2 | |
parent | 089b167573382043cfb68ae84fe9bba897144593 (diff) | |
download | weechat-3d41a3fa2f90ba14666b1809aaff9cc97e4c9414.zip |
correct bugs in clipboard management
-rw-r--r-- | src/gui/gui-common.c | 51 | ||||
-rw-r--r-- | weechat/src/gui/gui-common.c | 51 |
2 files changed, 58 insertions, 44 deletions
diff --git a/src/gui/gui-common.c b/src/gui/gui-common.c index 18af085f7..7eeb4bfed 100644 --- a/src/gui/gui-common.c +++ b/src/gui/gui-common.c @@ -980,23 +980,26 @@ gui_input_delete_next_word () void gui_input_delete_begin_of_line () { - int i; + if (gui_current_window->buffer->input_buffer_pos > 0) + { + int i; - gui_input_clipboard_copy(gui_current_window->buffer->input_buffer, - gui_current_window->buffer->input_buffer_pos); + gui_input_clipboard_copy(gui_current_window->buffer->input_buffer, + gui_current_window->buffer->input_buffer_pos); - for (i = gui_current_window->buffer->input_buffer_pos; - i < gui_current_window->buffer->input_buffer_size; i++) + for (i = gui_current_window->buffer->input_buffer_pos; + i < gui_current_window->buffer->input_buffer_size; i++) gui_current_window->buffer->input_buffer[i - gui_current_window->buffer->input_buffer_pos] = - gui_current_window->buffer->input_buffer[i]; - - gui_current_window->buffer->input_buffer_size -= + gui_current_window->buffer->input_buffer[i]; + + gui_current_window->buffer->input_buffer_size -= gui_current_window->buffer->input_buffer_pos; - gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0'; - gui_current_window->buffer->input_buffer_pos = 0; - gui_draw_buffer_input (gui_current_window->buffer, 0); - gui_input_optimize_buffer_size (gui_current_window->buffer); - gui_current_window->buffer->completion.position = -1; + gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0'; + gui_current_window->buffer->input_buffer_pos = 0; + gui_draw_buffer_input (gui_current_window->buffer, 0); + gui_input_optimize_buffer_size (gui_current_window->buffer); + gui_current_window->buffer->completion.position = -1; + } } /* @@ -1006,16 +1009,20 @@ gui_input_delete_begin_of_line () void gui_input_delete_end_of_line () { - gui_input_clipboard_copy(gui_current_window->buffer->input_buffer + - gui_current_window->buffer->input_buffer_pos, - gui_current_window->buffer->input_buffer_size); + if (gui_current_window->buffer->input_buffer_pos > 0) + { + gui_input_clipboard_copy(gui_current_window->buffer->input_buffer + + gui_current_window->buffer->input_buffer_pos, + gui_current_window->buffer->input_buffer_size - + gui_current_window->buffer->input_buffer_pos); + } - gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' '; - gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ; - gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0'; - gui_draw_buffer_input (gui_current_window->buffer, 0); - gui_input_optimize_buffer_size (gui_current_window->buffer); - gui_current_window->buffer->completion.position = -1; + gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' '; + gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ; + gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0'; + gui_draw_buffer_input (gui_current_window->buffer, 0); + gui_input_optimize_buffer_size (gui_current_window->buffer); + gui_current_window->buffer->completion.position = -1; } /* diff --git a/weechat/src/gui/gui-common.c b/weechat/src/gui/gui-common.c index 18af085f7..7eeb4bfed 100644 --- a/weechat/src/gui/gui-common.c +++ b/weechat/src/gui/gui-common.c @@ -980,23 +980,26 @@ gui_input_delete_next_word () void gui_input_delete_begin_of_line () { - int i; + if (gui_current_window->buffer->input_buffer_pos > 0) + { + int i; - gui_input_clipboard_copy(gui_current_window->buffer->input_buffer, - gui_current_window->buffer->input_buffer_pos); + gui_input_clipboard_copy(gui_current_window->buffer->input_buffer, + gui_current_window->buffer->input_buffer_pos); - for (i = gui_current_window->buffer->input_buffer_pos; - i < gui_current_window->buffer->input_buffer_size; i++) + for (i = gui_current_window->buffer->input_buffer_pos; + i < gui_current_window->buffer->input_buffer_size; i++) gui_current_window->buffer->input_buffer[i - gui_current_window->buffer->input_buffer_pos] = - gui_current_window->buffer->input_buffer[i]; - - gui_current_window->buffer->input_buffer_size -= + gui_current_window->buffer->input_buffer[i]; + + gui_current_window->buffer->input_buffer_size -= gui_current_window->buffer->input_buffer_pos; - gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0'; - gui_current_window->buffer->input_buffer_pos = 0; - gui_draw_buffer_input (gui_current_window->buffer, 0); - gui_input_optimize_buffer_size (gui_current_window->buffer); - gui_current_window->buffer->completion.position = -1; + gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0'; + gui_current_window->buffer->input_buffer_pos = 0; + gui_draw_buffer_input (gui_current_window->buffer, 0); + gui_input_optimize_buffer_size (gui_current_window->buffer); + gui_current_window->buffer->completion.position = -1; + } } /* @@ -1006,16 +1009,20 @@ gui_input_delete_begin_of_line () void gui_input_delete_end_of_line () { - gui_input_clipboard_copy(gui_current_window->buffer->input_buffer + - gui_current_window->buffer->input_buffer_pos, - gui_current_window->buffer->input_buffer_size); + if (gui_current_window->buffer->input_buffer_pos > 0) + { + gui_input_clipboard_copy(gui_current_window->buffer->input_buffer + + gui_current_window->buffer->input_buffer_pos, + gui_current_window->buffer->input_buffer_size - + gui_current_window->buffer->input_buffer_pos); + } - gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' '; - gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ; - gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0'; - gui_draw_buffer_input (gui_current_window->buffer, 0); - gui_input_optimize_buffer_size (gui_current_window->buffer); - gui_current_window->buffer->completion.position = -1; + gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_pos] = ' '; + gui_current_window->buffer->input_buffer_size = gui_current_window->buffer->input_buffer_pos ; + gui_current_window->buffer->input_buffer[gui_current_window->buffer->input_buffer_size] = '\0'; + gui_draw_buffer_input (gui_current_window->buffer, 0); + gui_input_optimize_buffer_size (gui_current_window->buffer); + gui_current_window->buffer->completion.position = -1; } /* |