From 4bc82a5318d1d7df4e8fa817af259554ec776fa3 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Fri, 24 Jan 2020 19:27:42 +0100 Subject: XEP-0092: Add configuration option to choose whether to send OS name `/os on|off` now let's one choose whether to include the OS name once `/software` (XEP-0092) is ran on us. --- src/command/cmd_ac.c | 2 +- src/command/cmd_defs.c | 15 +++++++++++++++ src/command/cmd_funcs.c | 8 ++++++++ src/command/cmd_funcs.h | 1 + src/ui/console.c | 10 ++++++++++ src/ui/ui.h | 1 + 6 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c index db885ceb..0ee9af9f 100644 --- a/src/command/cmd_ac.c +++ b/src/command/cmd_ac.c @@ -1508,7 +1508,7 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ // autocomplete boolean settings gchar *boolean_choices[] = { "/beep", "/intype", "/states", "/outtype", "/flash", "/splash", - "/history", "/vercheck", "/privileges", "/wrap", "/carbons", "/lastactivity"}; + "/history", "/vercheck", "/privileges", "/wrap", "/carbons", "/lastactivity", "/os"}; for (i = 0; i < ARRAY_SIZE(boolean_choices); i++) { result = autocomplete_param_with_func(input, boolean_choices[i], prefs_autocomplete_boolean_choice, previous); diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index 16cf5c7f..b1ba363f 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -2344,6 +2344,21 @@ static struct cmd_t command_defs[] = { "", "JID to download avatar from."}) CMD_NOEXAMPLES }, + + { "/os", + parse_args, 1, 1, &cons_os_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_os) + CMD_TAGS( + CMD_TAG_DISCOVERY) + CMD_SYN( + "/os |") + CMD_DESC( + "Choose whether to include the OS name if a user asks for software information (XEP-0092).") + CMD_ARGS( + { "on|off", ""}) + CMD_NOEXAMPLES + }, }; static GHashTable *search_index; diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index d9fc0ed6..a0d40cdd 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -8640,3 +8640,11 @@ cmd_avatar(ProfWin *window, const char *const command, gchar **args) return TRUE; } + +gboolean +cmd_os(ProfWin *window, const char *const command, gchar **args) +{ + _cmd_set_boolean_preference(args[0], command, "Revealing OS name", PREF_REVEAL_OS); + + return TRUE; +} diff --git a/src/command/cmd_funcs.h b/src/command/cmd_funcs.h index 74cab615..a743951f 100644 --- a/src/command/cmd_funcs.h +++ b/src/command/cmd_funcs.h @@ -226,4 +226,5 @@ gboolean cmd_reload(ProfWin *window, const char *const command, gchar **args); gboolean cmd_paste(ProfWin *window, const char *const command, gchar **args); gboolean cmd_color(ProfWin *window, const char *const command, gchar **args); gboolean cmd_avatar(ProfWin *window, const char *const command, gchar **args); +gboolean cmd_os(ProfWin *window, const char *const command, gchar **args); #endif diff --git a/src/ui/console.c b/src/ui/console.c index 49103fcf..1a716a7a 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -2011,6 +2011,16 @@ cons_color_setting(void) } } +void +cons_os_setting(void) +{ + if (prefs_get_boolean(PREF_REVEAL_OS)) { + cons_show("Reveal OS name when asked for software version (XEP-0092) (/os) : ON"); + } else { + cons_show("Reveal OS name when asked for software version (XEP-0092) (/os) : OFF"); + } +} + void cons_show_connection_prefs(void) { diff --git a/src/ui/ui.h b/src/ui/ui.h index 1d811e55..4783131e 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -318,6 +318,7 @@ void cons_inpblock_setting(void); void cons_statusbar_setting(void); void cons_winpos_setting(void); void cons_color_setting(void); +void cons_os_setting(void); void cons_show_contact_online(PContact contact, Resource *resource, GDateTime *last_activity); void cons_show_contact_offline(PContact contact, char *resource, char *status); void cons_theme_properties(void); -- cgit 1.4.1-2-gfad0