diff options
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/cmd_ac.c | 18 | ||||
-rw-r--r-- | src/command/cmd_defs.c | 3 | ||||
-rw-r--r-- | src/command/cmd_funcs.c | 17 |
3 files changed, 35 insertions, 3 deletions
diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c index 306f789e..5d1dff12 100644 --- a/src/command/cmd_ac.c +++ b/src/command/cmd_ac.c @@ -184,6 +184,7 @@ static Autocomplete occupants_ac; static Autocomplete occupants_default_ac; static Autocomplete occupants_show_ac; static Autocomplete occupants_header_ac; +static Autocomplete occupants_header_char_ac; static Autocomplete occupants_char_ac; static Autocomplete time_ac; static Autocomplete time_format_ac; @@ -688,6 +689,7 @@ cmd_ac_init(void) autocomplete_add(occupants_ac, "indent"); autocomplete_add(occupants_ac, "header"); autocomplete_add(occupants_ac, "wrap"); + autocomplete_add(occupants_ac, "char"); occupants_default_ac = autocomplete_new(); autocomplete_add(occupants_default_ac, "show"); @@ -696,11 +698,14 @@ cmd_ac_init(void) occupants_show_ac = autocomplete_new(); autocomplete_add(occupants_show_ac, "jid"); + occupants_char_ac = autocomplete_new(); + autocomplete_add(occupants_char_ac, "none"); + occupants_header_ac = autocomplete_new(); autocomplete_add(occupants_header_ac, "char"); - occupants_char_ac = autocomplete_new(); - autocomplete_add(occupants_char_ac, "none"); + occupants_header_char_ac = autocomplete_new(); + autocomplete_add(occupants_header_char_ac, "none"); time_ac = autocomplete_new(); autocomplete_add(time_ac, "console"); @@ -1115,10 +1120,11 @@ cmd_ac_reset(ProfWin *window) autocomplete_reset(form_ac); autocomplete_reset(form_field_multi_ac); autocomplete_reset(occupants_ac); + autocomplete_reset(occupants_char_ac); autocomplete_reset(occupants_default_ac); autocomplete_reset(occupants_show_ac); autocomplete_reset(occupants_header_ac); - autocomplete_reset(occupants_char_ac); + autocomplete_reset(occupants_header_char_ac); autocomplete_reset(time_ac); autocomplete_reset(time_format_ac); autocomplete_reset(resource_ac); @@ -1247,6 +1253,7 @@ cmd_ac_uninit(void) autocomplete_free(form_ac); autocomplete_free(form_field_multi_ac); autocomplete_free(occupants_ac); + autocomplete_free(occupants_char_ac); autocomplete_free(occupants_default_ac); autocomplete_free(occupants_show_ac); autocomplete_free(occupants_header_ac); @@ -2563,6 +2570,11 @@ _occupants_autocomplete(ProfWin *window, const char *const input, gboolean previ return found; } + found = autocomplete_param_with_ac(input, "/occupants char", occupants_char_ac, TRUE, previous); + if (found) { + return found; + } + found = autocomplete_param_with_ac(input, "/occupants default hide", occupants_show_ac, TRUE, previous); if (found) { return found; diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index 5aaf56ef..6a1cb006 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -752,6 +752,7 @@ static struct cmd_t command_defs[] = CMD_TAG_UI) CMD_SYN( "/occupants show|hide [jid]", + "/occupants char <char>|none", "/occupants default show|hide [jid]", "/occupants size [<percent>]", "/occupants indent <indent>", @@ -761,6 +762,8 @@ static struct cmd_t command_defs[] = "Show or hide room occupants, and occupants panel display settings.") CMD_ARGS( { "show", "Show the occupants panel in current room." }, + { "char <char>", "Prefix occupants with specified character." }, + { "char none", "Remove occupants character prefix." }, { "hide", "Hide the occupants panel in current room." }, { "show jid", "Show jid in the occupants panel in current room." }, { "hide jid", "Hide jid in the occupants panel in current room." }, diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index e87f5bb5..12a099e2 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -4402,6 +4402,23 @@ cmd_occupants(ProfWin *window, const char *const command, gchar **args) } } + if (g_strcmp0(args[0], "char") == 0) { + if (!args[1]) { + cons_bad_cmd_usage(command); + } else if (g_strcmp0(args[1], "none") == 0) { + prefs_clear_occupants_char(); + cons_show("Occupants char removed."); + + occupantswin_occupants_all(); + } else { + prefs_set_occupants_char(args[1][0]); + cons_show("Occupants char set to %c.", args[1][0]); + + occupantswin_occupants_all(); + } + return TRUE; + } + if (g_strcmp0(args[0], "default") == 0) { if (g_strcmp0(args[1], "show") == 0) { if (g_strcmp0(args[2], "jid") == 0) { |