1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-02-02 15:08:15 -05:00

Added /who autocomplete

This commit is contained in:
James Booth 2012-10-28 01:47:57 +01:00
parent 6a32ed4571
commit 7aa177c668

View File

@ -63,6 +63,8 @@ static gboolean _cmd_set_boolean_preference(const char * const inp,
static char *_cmd_complete(char *inp); static char *_cmd_complete(char *inp);
static void _cmd_reset_command_completer(void); static void _cmd_reset_command_completer(void);
static char *_cmd_who_complete(char *inp);
static void _cmd_reset_who_completer(void);
static char *_cmd_help_complete(char *inp); static char *_cmd_help_complete(char *inp);
static void _cmd_help_reset_completer(void); static void _cmd_help_reset_completer(void);
static char *_cmd_notify_complete(char *inp); static char *_cmd_notify_complete(char *inp);
@ -394,6 +396,7 @@ static struct cmd_t status_commands[] =
}; };
static PAutocomplete commands_ac; static PAutocomplete commands_ac;
static PAutocomplete who_ac;
static PAutocomplete help_ac; static PAutocomplete help_ac;
static PAutocomplete notify_ac; static PAutocomplete notify_ac;
@ -404,12 +407,16 @@ void
cmd_init(void) cmd_init(void)
{ {
log_info("Initialising commands"); log_info("Initialising commands");
commands_ac = p_autocomplete_new(); commands_ac = p_autocomplete_new();
who_ac = p_autocomplete_new();
help_ac = p_autocomplete_new(); help_ac = p_autocomplete_new();
p_autocomplete_add(help_ac, strdup("basic")); p_autocomplete_add(help_ac, strdup("basic"));
p_autocomplete_add(help_ac, strdup("status")); p_autocomplete_add(help_ac, strdup("status"));
p_autocomplete_add(help_ac, strdup("settings")); p_autocomplete_add(help_ac, strdup("settings"));
p_autocomplete_add(help_ac, strdup("navigation")); p_autocomplete_add(help_ac, strdup("navigation"));
notify_ac = p_autocomplete_new(); notify_ac = p_autocomplete_new();
p_autocomplete_add(notify_ac, strdup("message")); p_autocomplete_add(notify_ac, strdup("message"));
p_autocomplete_add(notify_ac, strdup("typing")); p_autocomplete_add(notify_ac, strdup("typing"));
@ -432,6 +439,7 @@ cmd_init(void)
struct cmd_t *pcmd = status_commands+i; struct cmd_t *pcmd = status_commands+i;
p_autocomplete_add(commands_ac, (gchar *)strdup(pcmd->cmd)); p_autocomplete_add(commands_ac, (gchar *)strdup(pcmd->cmd));
p_autocomplete_add(help_ac, (gchar *)strdup(pcmd->cmd+1)); p_autocomplete_add(help_ac, (gchar *)strdup(pcmd->cmd+1));
p_autocomplete_add(who_ac, (gchar *)strdup(pcmd->cmd+1));
} }
history_init(); history_init();
@ -441,6 +449,7 @@ void
cmd_close(void) cmd_close(void)
{ {
p_autocomplete_clear(commands_ac); p_autocomplete_clear(commands_ac);
p_autocomplete_clear(who_ac);
p_autocomplete_clear(help_ac); p_autocomplete_clear(help_ac);
p_autocomplete_clear(notify_ac); p_autocomplete_clear(notify_ac);
} }
@ -481,6 +490,7 @@ cmd_reset_autocomplete()
_cmd_help_reset_completer(); _cmd_help_reset_completer();
_cmd_notify_reset_completer(); _cmd_notify_reset_completer();
_cmd_reset_command_completer(); _cmd_reset_command_completer();
_cmd_reset_who_completer();
} }
GSList * GSList *
@ -569,6 +579,18 @@ _cmd_reset_command_completer(void)
p_autocomplete_reset(commands_ac); p_autocomplete_reset(commands_ac);
} }
static char *
_cmd_who_complete(char *inp)
{
return p_autocomplete_complete(who_ac, inp);
}
static void
_cmd_reset_who_completer(void)
{
p_autocomplete_reset(who_ac);
}
static char * static char *
_cmd_help_complete(char *inp) _cmd_help_complete(char *inp)
{ {
@ -617,6 +639,8 @@ _cmd_complete_parameters(char *input, int *size)
prefs_find_login); prefs_find_login);
_parameter_autocomplete(input, size, "/help", _parameter_autocomplete(input, size, "/help",
_cmd_help_complete); _cmd_help_complete);
_parameter_autocomplete(input, size, "/who",
_cmd_who_complete);
_notify_autocomplete(input, size); _notify_autocomplete(input, size);
} }