summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2009-04-01 23:30:57 +0200
committerSebastien Helleu <flashcode@flashtux.org>2009-04-01 23:30:57 +0200
commitca7bcf880b6dffe87976ef40801c8f65ea541b54 (patch)
treeb6ad158f2c4516080af6628c4e51abe93a8953f5 /src/gui
parentff83985ef4f4073f9430ee065b1d8982fb7c6318 (diff)
downloadweechat-ca7bcf880b6dffe87976ef40801c8f65ea541b54.zip
Fix bug with partial completions
Option "weechat.completion.partial_completion_nick" has been renamed to "weechat.completion.partial_completion_other".
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/gui-completion.c56
-rw-r--r--src/gui/gui-completion.h8
2 files changed, 17 insertions, 47 deletions
diff --git a/src/gui/gui-completion.c b/src/gui/gui-completion.c
index fe1d05545..462569cd5 100644
--- a/src/gui/gui-completion.c
+++ b/src/gui/gui-completion.c
@@ -65,7 +65,6 @@ gui_completion_init (struct t_gui_completion *completion,
completion->context = GUI_COMPLETION_NULL;
completion->base_command = NULL;
completion->base_command_arg = 0;
- completion->arg_is_nick = 0;
completion->base_word = NULL;
completion->base_word_pos = 0;
completion->position = -1;
@@ -605,8 +604,6 @@ gui_completion_list_add_nicks (struct t_gui_completion *completion)
&ptr_group, &ptr_nick);
}
}
-
- completion->arg_is_nick = 1;
}
/*
@@ -1430,8 +1427,7 @@ gui_completion_partial_build_list (struct t_gui_completion *completion,
*/
void
-gui_completion_complete (struct t_gui_completion *completion,
- int nick_completion)
+gui_completion_complete (struct t_gui_completion *completion)
{
int length, word_found_seen, other_completion, partial_completion;
int common_prefix_size, item_is_nick;
@@ -1442,26 +1438,21 @@ gui_completion_complete (struct t_gui_completion *completion,
other_completion = 0;
partial_completion = completion->force_partial_completion;
-
+
if (!partial_completion)
{
- if (nick_completion)
+ if (completion->context == GUI_COMPLETION_COMMAND)
{
- partial_completion = CONFIG_BOOLEAN(config_completion_partial_completion_nick);
+ partial_completion = CONFIG_BOOLEAN(config_completion_partial_completion_command);
}
- else
+ else if (completion->context == GUI_COMPLETION_COMMAND_ARG)
{
- if (completion->context == GUI_COMPLETION_COMMAND)
- {
- partial_completion = CONFIG_BOOLEAN(config_completion_partial_completion_command);
- }
- else
- {
- partial_completion = CONFIG_BOOLEAN(config_completion_partial_completion_command_arg);
- }
+ partial_completion = CONFIG_BOOLEAN(config_completion_partial_completion_command_arg);
}
+ else
+ partial_completion = CONFIG_BOOLEAN(config_completion_partial_completion_other);
}
-
+
common_prefix_size = 0;
if (partial_completion
&& completion->completion_list && completion->completion_list->items)
@@ -1585,7 +1576,7 @@ gui_completion_complete (struct t_gui_completion *completion,
free (completion->word_found);
completion->word_found = NULL;
completion->word_found_is_nick = 0;
- gui_completion_complete (completion, nick_completion);
+ gui_completion_complete (completion);
}
}
@@ -1614,22 +1605,7 @@ gui_completion_command (struct t_gui_completion *completion)
}
}
- gui_completion_complete (completion, 0);
-}
-
-/*
- * gui_completion_nick: complete a nick
- */
-
-void
-gui_completion_nick (struct t_gui_completion *completion)
-{
- if (!completion->completion_list->items)
- gui_completion_list_add_nicks (completion);
-
- completion->context = GUI_COMPLETION_NICK;
-
- gui_completion_complete (completion, 1);
+ gui_completion_complete (completion);
}
/*
@@ -1645,7 +1621,7 @@ gui_completion_auto (struct t_gui_completion *completion)
{
if (!completion->completion_list->items)
gui_completion_list_add_filename (completion);
- gui_completion_complete (completion, 0);
+ gui_completion_complete (completion);
return;
}
@@ -1656,7 +1632,7 @@ gui_completion_auto (struct t_gui_completion *completion)
CONFIG_STRING(config_completion_default_template),
NULL);
}
- gui_completion_complete (completion, 0);
+ gui_completion_complete (completion);
}
/*
@@ -1690,15 +1666,12 @@ gui_completion_search (struct t_gui_completion *completion, int direction,
case GUI_COMPLETION_NULL:
/* should never be executed */
return;
- case GUI_COMPLETION_NICK:
- gui_completion_nick (completion);
- break;
case GUI_COMPLETION_COMMAND:
gui_completion_command (completion);
break;
case GUI_COMPLETION_COMMAND_ARG:
if (completion->completion_list->items)
- gui_completion_complete (completion, completion->arg_is_nick);
+ gui_completion_complete (completion);
else
{
completion->context = GUI_COMPLETION_AUTO;
@@ -1742,7 +1715,6 @@ gui_completion_print_log (struct t_gui_completion *completion)
log_printf (" context . . . . . . . . : %d", completion->context);
log_printf (" base_command. . . . . . : '%s'", completion->base_command);
log_printf (" base_command_arg. . . . : %d", completion->base_command_arg);
- log_printf (" arg_is_nick . . . . . . : %d", completion->arg_is_nick);
log_printf (" base_word . . . . . . . : '%s'", completion->base_word);
log_printf (" base_word_pos . . . . . : %d", completion->base_word_pos);
log_printf (" position. . . . . . . . : %d", completion->position);
diff --git a/src/gui/gui-completion.h b/src/gui/gui-completion.h
index 324534e1b..072ecbde3 100644
--- a/src/gui/gui-completion.h
+++ b/src/gui/gui-completion.h
@@ -21,10 +21,9 @@
#define __WEECHAT_GUI_COMPLETION_H 1
#define GUI_COMPLETION_NULL 0
-#define GUI_COMPLETION_NICK 1
-#define GUI_COMPLETION_COMMAND 2
-#define GUI_COMPLETION_COMMAND_ARG 3
-#define GUI_COMPLETION_AUTO 4
+#define GUI_COMPLETION_COMMAND 1
+#define GUI_COMPLETION_COMMAND_ARG 2
+#define GUI_COMPLETION_AUTO 3
struct t_gui_completion
{
@@ -33,7 +32,6 @@ struct t_gui_completion
int context; /* context: null, nick, command, cmd arg */
char *base_command; /* cmd with arg to complete (can be NULL) */
int base_command_arg; /* # arg to complete (if context=cmd arg) */
- int arg_is_nick; /* argument is nick */
char *base_word; /* word to complete (when Tab was pressed) */
int base_word_pos; /* beggining of base word */
int position; /* position where Tab was pressed */