From f24034ba30791bf0bfc28e1c4f5145eb3394541e Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Wed, 19 Sep 2007 18:15:41 +0200 Subject: [PATCH] Fixed nick completion bug (missing space after nick) --- ChangeLog | 5 ++++- src/gui/gui-common.c | 50 ++++++++++++++++++++------------------------ 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/ChangeLog b/ChangeLog index 764711936..48bd4ce6e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,12 @@ WeeChat - Wee Enhanced Environment for Chat =========================================== -ChangeLog - 2007-09-06 +ChangeLog - 2007-09-19 +Version 0.2.7 (under dev!): + * fixed nick completion bug (missing space after nick) + Version 0.2.6 (2007-09-06): * fixed bug with log of plugin messages (option log_plugin_msg) * added new option "deloutq" to /server command to delete all servers diff --git a/src/gui/gui-common.c b/src/gui/gui-common.c index 6acdff69e..a988726f7 100644 --- a/src/gui/gui-common.c +++ b/src/gui/gui-common.c @@ -608,38 +608,34 @@ gui_input_complete (t_gui_window *window) window->buffer->completion.position = utf8_real_pos (window->buffer->input_buffer, window->buffer->input_buffer_pos); - - /* add space or completor to the end of completion, if needed */ - if ((window->buffer->completion.context == COMPLETION_COMMAND) - || (window->buffer->completion.context == COMPLETION_COMMAND_ARG)) + + /* add nick completor if position 0 and completing nick */ + if ((window->buffer->completion.base_word_pos == 0) + && (window->buffer->completion.context == COMPLETION_NICK)) { - if (window->buffer->completion.add_space) - { - if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer, - window->buffer->input_buffer_pos)] != ' ') - gui_insert_string_input (window, " ", - window->buffer->input_buffer_pos); - else - window->buffer->input_buffer_pos++; - if (window->buffer->completion.position >= 0) - window->buffer->completion.position++; - } + if (strncmp (utf8_add_offset (window->buffer->input_buffer, + window->buffer->input_buffer_pos), + cfg_look_nick_completor, strlen (cfg_look_nick_completor)) != 0) + gui_insert_string_input (window, cfg_look_nick_completor, + window->buffer->input_buffer_pos); + else + window->buffer->input_buffer_pos += utf8_strlen (cfg_look_nick_completor); + if (window->buffer->completion.position >= 0) + window->buffer->completion.position += strlen (cfg_look_nick_completor); + if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer, + window->buffer->input_buffer_pos)] != ' ') + gui_insert_string_input (window, " ", + window->buffer->input_buffer_pos); + else + window->buffer->input_buffer_pos++; + if (window->buffer->completion.position >= 0) + window->buffer->completion.position++; } else { - /* add nick completor if position 0 and completing nick */ - if ((window->buffer->completion.base_word_pos == 0) - && (window->buffer->completion.context == COMPLETION_NICK)) + /* add space or completor to the end of completion, if needed */ + if (window->buffer->completion.add_space) { - if (strncmp (utf8_add_offset (window->buffer->input_buffer, - window->buffer->input_buffer_pos), - cfg_look_nick_completor, strlen (cfg_look_nick_completor)) != 0) - gui_insert_string_input (window, cfg_look_nick_completor, - window->buffer->input_buffer_pos); - else - window->buffer->input_buffer_pos += utf8_strlen (cfg_look_nick_completor); - if (window->buffer->completion.position >= 0) - window->buffer->completion.position += strlen (cfg_look_nick_completor); if (window->buffer->input_buffer[utf8_real_pos (window->buffer->input_buffer, window->buffer->input_buffer_pos)] != ' ') gui_insert_string_input (window, " ",