mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-29 20:16:22 +00:00
fix autocompletion for /sub command
This commit is contained in:
@@ -70,6 +70,8 @@ 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);
|
||||||
static void _cmd_notify_reset_completer(void);
|
static void _cmd_notify_reset_completer(void);
|
||||||
|
static char *_cmd_sub_complete(char *inp);
|
||||||
|
static void _cmd_sub_reset_completer(void);
|
||||||
static void _cmd_complete_parameters(char *input, int *size);
|
static void _cmd_complete_parameters(char *input, int *size);
|
||||||
static void _notify_autocomplete(char *input, int *size);
|
static void _notify_autocomplete(char *input, int *size);
|
||||||
static void _parameter_autocomplete(char *input, int *size, char *command,
|
static void _parameter_autocomplete(char *input, int *size, char *command,
|
||||||
@@ -468,6 +470,7 @@ static PAutocomplete commands_ac;
|
|||||||
static PAutocomplete who_ac;
|
static PAutocomplete who_ac;
|
||||||
static PAutocomplete help_ac;
|
static PAutocomplete help_ac;
|
||||||
static PAutocomplete notify_ac;
|
static PAutocomplete notify_ac;
|
||||||
|
static PAutocomplete sub_ac;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialise command autocompleter and history
|
* Initialise command autocompleter and history
|
||||||
@@ -491,6 +494,12 @@ cmd_init(void)
|
|||||||
p_autocomplete_add(notify_ac, strdup("typing"));
|
p_autocomplete_add(notify_ac, strdup("typing"));
|
||||||
p_autocomplete_add(notify_ac, strdup("remind"));
|
p_autocomplete_add(notify_ac, strdup("remind"));
|
||||||
|
|
||||||
|
sub_ac = p_autocomplete_new();
|
||||||
|
p_autocomplete_add(sub_ac, strdup("add"));
|
||||||
|
p_autocomplete_add(sub_ac, strdup("del"));
|
||||||
|
p_autocomplete_add(sub_ac, strdup("request"));
|
||||||
|
p_autocomplete_add(sub_ac, strdup("show"));
|
||||||
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
for (i = 0; i < ARRAY_SIZE(main_commands); i++) {
|
for (i = 0; i < ARRAY_SIZE(main_commands); i++) {
|
||||||
struct cmd_t *pcmd = main_commands+i;
|
struct cmd_t *pcmd = main_commands+i;
|
||||||
@@ -560,6 +569,7 @@ cmd_reset_autocomplete()
|
|||||||
prefs_reset_boolean_choice();
|
prefs_reset_boolean_choice();
|
||||||
_cmd_help_reset_completer();
|
_cmd_help_reset_completer();
|
||||||
_cmd_notify_reset_completer();
|
_cmd_notify_reset_completer();
|
||||||
|
_cmd_sub_reset_completer();
|
||||||
_cmd_reset_command_completer();
|
_cmd_reset_command_completer();
|
||||||
_cmd_reset_who_completer();
|
_cmd_reset_who_completer();
|
||||||
}
|
}
|
||||||
@@ -690,6 +700,18 @@ _cmd_notify_reset_completer(void)
|
|||||||
p_autocomplete_reset(notify_ac);
|
p_autocomplete_reset(notify_ac);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
_cmd_sub_complete(char *inp)
|
||||||
|
{
|
||||||
|
return p_autocomplete_complete(sub_ac, inp);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cmd_sub_reset_completer(void)
|
||||||
|
{
|
||||||
|
p_autocomplete_reset(sub_ac);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_cmd_complete_parameters(char *input, int *size)
|
_cmd_complete_parameters(char *input, int *size)
|
||||||
{
|
{
|
||||||
@@ -717,7 +739,7 @@ _cmd_complete_parameters(char *input, int *size)
|
|||||||
_parameter_autocomplete(input, size, "/connect",
|
_parameter_autocomplete(input, size, "/connect",
|
||||||
prefs_find_login);
|
prefs_find_login);
|
||||||
_parameter_autocomplete(input, size, "/sub",
|
_parameter_autocomplete(input, size, "/sub",
|
||||||
prefs_autocomplete_sub_cmd);
|
_cmd_sub_complete);
|
||||||
_parameter_autocomplete(input, size, "/help",
|
_parameter_autocomplete(input, size, "/help",
|
||||||
_cmd_help_complete);
|
_cmd_help_complete);
|
||||||
_parameter_autocomplete(input, size, "/who",
|
_parameter_autocomplete(input, size, "/who",
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ static GKeyFile *prefs;
|
|||||||
|
|
||||||
static PAutocomplete login_ac;
|
static PAutocomplete login_ac;
|
||||||
static PAutocomplete boolean_choice_ac;
|
static PAutocomplete boolean_choice_ac;
|
||||||
static PAutocomplete sub_cmd_ac;
|
|
||||||
|
|
||||||
struct colour_string_t {
|
struct colour_string_t {
|
||||||
char *str;
|
char *str;
|
||||||
@@ -117,12 +116,6 @@ prefs_load(void)
|
|||||||
boolean_choice_ac = p_autocomplete_new();
|
boolean_choice_ac = p_autocomplete_new();
|
||||||
p_autocomplete_add(boolean_choice_ac, strdup("on"));
|
p_autocomplete_add(boolean_choice_ac, strdup("on"));
|
||||||
p_autocomplete_add(boolean_choice_ac, strdup("off"));
|
p_autocomplete_add(boolean_choice_ac, strdup("off"));
|
||||||
|
|
||||||
sub_cmd_ac = p_autocomplete_new();
|
|
||||||
p_autocomplete_add(sub_cmd_ac, strdup("add"));
|
|
||||||
p_autocomplete_add(sub_cmd_ac, strdup("del"));
|
|
||||||
p_autocomplete_add(sub_cmd_ac, strdup("request"));
|
|
||||||
p_autocomplete_add(sub_cmd_ac, strdup("show"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -130,7 +123,6 @@ prefs_close(void)
|
|||||||
{
|
{
|
||||||
p_autocomplete_clear(login_ac);
|
p_autocomplete_clear(login_ac);
|
||||||
p_autocomplete_clear(boolean_choice_ac);
|
p_autocomplete_clear(boolean_choice_ac);
|
||||||
p_autocomplete_clear(sub_cmd_ac);
|
|
||||||
g_key_file_free(prefs);
|
g_key_file_free(prefs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,22 +222,6 @@ prefs_reset_boolean_choice(void)
|
|||||||
p_autocomplete_reset(boolean_choice_ac);
|
p_autocomplete_reset(boolean_choice_ac);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *
|
|
||||||
prefs_autocomplete_sub_cmd(char *prefix)
|
|
||||||
{
|
|
||||||
char *result;
|
|
||||||
result = p_autocomplete_complete(sub_cmd_ac, prefix);
|
|
||||||
/* TODO: fix the problem with ac->last_found instead of this hack */
|
|
||||||
prefs_reset_sub_cmd();
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
prefs_reset_sub_cmd(void)
|
|
||||||
{
|
|
||||||
p_autocomplete_reset(sub_cmd_ac);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
prefs_get_beep(void)
|
prefs_get_beep(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -41,8 +41,6 @@ char * prefs_find_login(char *prefix);
|
|||||||
void prefs_reset_login_search(void);
|
void prefs_reset_login_search(void);
|
||||||
char * prefs_autocomplete_boolean_choice(char *prefix);
|
char * prefs_autocomplete_boolean_choice(char *prefix);
|
||||||
void prefs_reset_boolean_choice(void);
|
void prefs_reset_boolean_choice(void);
|
||||||
char * prefs_autocomplete_sub_cmd(char *prefix);
|
|
||||||
void prefs_reset_sub_cmd(void);
|
|
||||||
|
|
||||||
gboolean prefs_get_beep(void);
|
gboolean prefs_get_beep(void);
|
||||||
void prefs_set_beep(gboolean value);
|
void prefs_set_beep(gboolean value);
|
||||||
|
|||||||
Reference in New Issue
Block a user