summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Bouthenot <kolter@openics.org>2005-07-13 08:32:02 +0000
committerEmmanuel Bouthenot <kolter@openics.org>2005-07-13 08:32:02 +0000
commit3d41a3fa2f90ba14666b1809aaff9cc97e4c9414 (patch)
tree37ab7a1554530d4556762ba84e4dbade407ba9e2
parent089b167573382043cfb68ae84fe9bba897144593 (diff)
downloadweechat-3d41a3fa2f90ba14666b1809aaff9cc97e4c9414.zip
correct bugs in clipboard management
-rw-r--r--src/gui/gui-common.c51
-rw-r--r--weechat/src/gui/gui-common.c51
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;
}
/*