diff options
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/cmd_ac.c | 930 | ||||
-rw-r--r-- | src/command/cmd_ac.h | 28 | ||||
-rw-r--r-- | src/command/cmd_defs.c | 4547 | ||||
-rw-r--r-- | src/command/cmd_defs.h | 10 | ||||
-rw-r--r-- | src/command/cmd_funcs.c | 2260 | ||||
-rw-r--r-- | src/command/cmd_funcs.h | 355 |
6 files changed, 3993 insertions, 4137 deletions
diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c index 0d9d4cc5..13c06832 100644 --- a/src/command/cmd_ac.c +++ b/src/command/cmd_ac.c @@ -64,72 +64,72 @@ #include "omemo/omemo.h" #endif -static char* _sub_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _notify_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _theme_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _autoaway_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _autoconnect_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _account_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _who_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _roster_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _bookmark_autocomplete(ProfWin *window, const char *const input, gboolean previous); +static char* _sub_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _notify_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _theme_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _autoaway_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _autoconnect_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _account_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _who_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _roster_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _bookmark_autocomplete(ProfWin* window, const char* const input, gboolean previous); #ifdef HAVE_LIBOTR -static char* _otr_autocomplete(ProfWin *window, const char *const input, gboolean previous); +static char* _otr_autocomplete(ProfWin* window, const char* const input, gboolean previous); #endif #ifdef HAVE_LIBGPGME -static char* _pgp_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _ox_autocomplete(ProfWin *window, const char *const input, gboolean previous); +static char* _pgp_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _ox_autocomplete(ProfWin* window, const char* const input, gboolean previous); #endif #ifdef HAVE_OMEMO -static char* _omemo_autocomplete(ProfWin *window, const char *const input, gboolean previous); +static char* _omemo_autocomplete(ProfWin* window, const char* const input, gboolean previous); #endif -static char* _connect_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _alias_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _join_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _log_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _form_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _form_field_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _occupants_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _kick_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _ban_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _affiliation_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _role_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _resource_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _wintitle_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _inpblock_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _time_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _receipts_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _help_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _wins_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _tls_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _titlebar_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _script_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _subject_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _console_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _win_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _close_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _plugins_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _sendfile_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _blocked_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _tray_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _presence_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _rooms_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _statusbar_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _clear_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _invite_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _status_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _logging_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _color_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _avatar_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _correction_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _correct_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _software_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _url_autocomplete(ProfWin *window, const char *const input, gboolean previous); -static char* _executable_autocomplete(ProfWin *window, const char *const input, gboolean previous); - -static char* _script_autocomplete_func(const char *const prefix, gboolean previous, void *context); - -static char* _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previous); +static char* _connect_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _alias_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _join_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _log_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _form_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _form_field_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _occupants_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _kick_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _ban_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _affiliation_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _role_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _resource_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _wintitle_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _inpblock_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _time_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _receipts_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _help_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _wins_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _tls_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _titlebar_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _script_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _subject_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _console_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _win_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _close_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _plugins_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _sendfile_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _blocked_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _tray_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _presence_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _rooms_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _statusbar_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _clear_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _invite_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _status_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _logging_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _color_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _avatar_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _correction_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _correct_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _software_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _url_autocomplete(ProfWin* window, const char* const input, gboolean previous); +static char* _executable_autocomplete(ProfWin* window, const char* const input, gboolean previous); + +static char* _script_autocomplete_func(const char* const prefix, gboolean previous, void* context); + +static char* _cmd_ac_complete_params(ProfWin* window, const char* const input, gboolean previous); static Autocomplete commands_ac; static Autocomplete who_room_ac; @@ -1053,7 +1053,7 @@ cmd_ac_init(void) } void -cmd_ac_add(const char *const value) +cmd_ac_add(const char* const value) { if (commands_ac == NULL) { return; @@ -1063,7 +1063,7 @@ cmd_ac_add(const char *const value) } void -cmd_ac_add_help(const char *const value) +cmd_ac_add_help(const char* const value) { if (help_ac == NULL) { return; @@ -1073,16 +1073,16 @@ cmd_ac_add_help(const char *const value) } void -cmd_ac_add_cmd(Command *command) +cmd_ac_add_cmd(Command* command) { autocomplete_add(commands_ac, command->cmd); - autocomplete_add(help_ac, command->cmd+1); + autocomplete_add(help_ac, command->cmd + 1); } void -cmd_ac_add_alias(ProfAlias *alias) +cmd_ac_add_alias(ProfAlias* alias) { - GString *ac_alias = g_string_new("/"); + GString* ac_alias = g_string_new("/"); g_string_append(ac_alias, alias->name); autocomplete_add(commands_ac, ac_alias->str); autocomplete_add(aliases_ac, alias->name); @@ -1090,7 +1090,7 @@ cmd_ac_add_alias(ProfAlias *alias) } void -cmd_ac_add_alias_value(char *value) +cmd_ac_add_alias_value(char* value) { if (aliases_ac == NULL) { return; @@ -1100,7 +1100,7 @@ cmd_ac_add_alias_value(char *value) } void -cmd_ac_remove_alias_value(char *value) +cmd_ac_remove_alias_value(char* value) { if (aliases_ac == NULL) { return; @@ -1109,7 +1109,7 @@ cmd_ac_remove_alias_value(char *value) } void -cmd_ac_remove(const char *const value) +cmd_ac_remove(const char* const value) { if (commands_ac == NULL) { return; @@ -1119,7 +1119,7 @@ cmd_ac_remove(const char *const value) } void -cmd_ac_remove_help(const char *const value) +cmd_ac_remove_help(const char* const value) { if (help_ac == NULL) { return; @@ -1129,7 +1129,7 @@ cmd_ac_remove_help(const char *const value) } gboolean -cmd_ac_exists(char *cmd) +cmd_ac_exists(char* cmd) { if (commands_ac == NULL) { return FALSE; @@ -1139,16 +1139,16 @@ cmd_ac_exists(char *cmd) } void -cmd_ac_add_form_fields(DataForm *form) +cmd_ac_add_form_fields(DataForm* form) { if (form == NULL) { return; } - GList *fields = autocomplete_create_list(form->tag_ac); - GList *curr_field = fields; + GList* fields = autocomplete_create_list(form->tag_ac); + GList* curr_field = fields; while (curr_field) { - GString *field_str = g_string_new("/"); + GString* field_str = g_string_new("/"); g_string_append(field_str, curr_field->data); cmd_ac_add(field_str->str); g_string_free(field_str, TRUE); @@ -1158,16 +1158,16 @@ cmd_ac_add_form_fields(DataForm *form) } void -cmd_ac_remove_form_fields(DataForm *form) +cmd_ac_remove_form_fields(DataForm* form) { if (form == NULL) { return; } - GList *fields = autocomplete_create_list(form->tag_ac); - GList *curr_field = fields; + GList* fields = autocomplete_create_list(form->tag_ac); + GList* curr_field = fields; while (curr_field) { - GString *field_str = g_string_new("/"); + GString* field_str = g_string_new("/"); g_string_append(field_str, curr_field->data); cmd_ac_remove(field_str->str); g_string_free(field_str, TRUE); @@ -1177,19 +1177,19 @@ cmd_ac_remove_form_fields(DataForm *form) } char* -cmd_ac_complete(ProfWin *window, const char *const input, gboolean previous) +cmd_ac_complete(ProfWin* window, const char* const input, gboolean previous) { // autocomplete command if ((strncmp(input, "/", 1) == 0) && (!str_contains(input, strlen(input), ' '))) { - char *found = NULL; + char* found = NULL; found = autocomplete_complete(commands_ac, input, TRUE, previous); if (found) { return found; } - // autocomplete parameters + // autocomplete parameters } else { - char *found = _cmd_ac_complete_params(window, input, previous); + char* found = _cmd_ac_complete_params(window, input, previous); if (found) { return found; } @@ -1199,14 +1199,14 @@ cmd_ac_complete(ProfWin *window, const char *const input, gboolean previous) } void -cmd_ac_reset(ProfWin *window) +cmd_ac_reset(ProfWin* window) { jabber_conn_status_t conn_status = connection_get_status(); if (conn_status == JABBER_CONNECTED) { roster_reset_search_attempts(); if (window->type == WIN_CHAT) { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); PContact contact = roster_get_contact(chatwin->barejid); if (contact) { @@ -1378,14 +1378,14 @@ cmd_ac_reset(ProfWin *window) } if (window->type == WIN_MUC) { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); muc_autocomplete_reset(mucwin->roomjid); muc_jid_autocomplete_reset(mucwin->roomjid); } if (window->type == WIN_CONFIG) { - ProfConfWin *confwin = (ProfConfWin*)window; + ProfConfWin* confwin = (ProfConfWin*)window; assert(confwin->memcheck == PROFCONFWIN_MEMCHECK); if (confwin->form) { form_reset_autocompleters(confwin->form); @@ -1535,21 +1535,22 @@ cmd_ac_uninit(void) } static void -_filepath_item_free(char **ptr) { - char *item = *ptr; +_filepath_item_free(char** ptr) +{ + char* item = *ptr; free(item); } char* -cmd_ac_complete_filepath(const char *const input, char *const startstr, gboolean previous) +cmd_ac_complete_filepath(const char* const input, char* const startstr, gboolean previous) { unsigned int output_off = 0; - char *result = NULL; - char *tmp; + char* result = NULL; + char* tmp; // strip command - char *inpcp = (char*)input + strlen(startstr); + char* inpcp = (char*)input + strlen(startstr); while (*inpcp == ' ') { inpcp++; } @@ -1558,22 +1559,22 @@ cmd_ac_complete_filepath(const char *const input, char *const startstr, gboolean // strip quotes if (*inpcp == '"') { - tmp = strchr(inpcp+1, '"'); + tmp = strchr(inpcp + 1, '"'); if (tmp) { *tmp = '\0'; } - tmp = strdup(inpcp+1); + tmp = strdup(inpcp + 1); free(inpcp); inpcp = tmp; } // expand ~ to $HOME if (inpcp[0] == '~' && inpcp[1] == '/') { - if (asprintf(&tmp, "%s/%sfoo", getenv("HOME"), inpcp+2) == -1) { + if (asprintf(&tmp, "%s/%sfoo", getenv("HOME"), inpcp + 2) == -1) { free(inpcp); return NULL; } - output_off = strlen(getenv("HOME"))+1; + output_off = strlen(getenv("HOME")) + 1; } else { if (asprintf(&tmp, "%sfoo", inpcp) == -1) { free(inpcp); @@ -1589,11 +1590,11 @@ cmd_ac_complete_filepath(const char *const input, char *const startstr, gboolean free(inpcp); free(inpcp2); - struct dirent *dir; - GArray *files = g_array_new(TRUE, FALSE, sizeof(char *)); + struct dirent* dir; + GArray* files = g_array_new(TRUE, FALSE, sizeof(char*)); g_array_set_clear_func(files, (GDestroyNotify)_filepath_item_free); - DIR *d = opendir(directory); + DIR* d = opendir(directory); if (d) { while ((dir = readdir(d)) != NULL) { if (strcmp(dir->d_name, ".") == 0) { @@ -1605,17 +1606,17 @@ cmd_ac_complete_filepath(const char *const input, char *const startstr, gboolean continue; } - char *acstring; + char* acstring; if (output_off) { if (asprintf(&tmp, "%s/%s", directory, dir->d_name) == -1) { free(directory); free(foofile); return NULL; } - if (asprintf(&acstring, "~/%s", tmp+output_off) == -1) { + if (asprintf(&acstring, "~/%s", tmp + output_off) == -1) { free(directory); free(foofile); - return NULL; + return NULL; } free(tmp); } else if (strcmp(directory, "/") == 0) { @@ -1632,7 +1633,7 @@ cmd_ac_complete_filepath(const char *const input, char *const startstr, gboolean } } - char *acstring_cpy = strdup(acstring); + char* acstring_cpy = strdup(acstring); g_array_append_val(files, acstring_cpy); free(acstring); } @@ -1641,7 +1642,7 @@ cmd_ac_complete_filepath(const char *const input, char *const startstr, gboolean free(directory); free(foofile); - autocomplete_update(filepath_ac, (char **)files->data); + autocomplete_update(filepath_ac, (char**)files->data); g_array_free(files, TRUE); result = autocomplete_param_with_ac(input, startstr, filepath_ac, TRUE, previous); @@ -1653,16 +1654,16 @@ cmd_ac_complete_filepath(const char *const input, char *const startstr, gboolean } static char* -_cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previous) +_cmd_ac_complete_params(ProfWin* window, const char* const input, gboolean previous) { int i; - char *result = NULL; + char* result = NULL; jabber_conn_status_t conn_status = connection_get_status(); // autocomplete boolean settings - gchar *boolean_choices[] = { "/beep", "/intype", "/states", "/outtype", "/flash", "/splash", - "/history", "/vercheck", "/privileges", "/wrap", "/carbons", "/lastactivity", "/os", "/slashguard"}; + gchar* boolean_choices[] = { "/beep", "/intype", "/states", "/outtype", "/flash", "/splash", + "/history", "/vercheck", "/privileges", "/wrap", "/carbons", "/lastactivity", "/os", "/slashguard" }; for (i = 0; i < ARRAY_SIZE(boolean_choices); i++) { result = autocomplete_param_with_func(input, boolean_choices[i], prefs_autocomplete_boolean_choice, previous, NULL); @@ -1673,14 +1674,14 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ // autocomplete nickname in chat rooms if (window->type == WIN_MUC) { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); Autocomplete nick_ac = muc_roster_ac(mucwin->roomjid); if (nick_ac) { - gchar *nick_choices[] = { "/msg", "/info", "/caps" } ; + gchar* nick_choices[] = { "/msg", "/info", "/caps" }; // Remove quote character before and after names when doing autocomplete - char *unquoted = strip_arg_quotes(input); + char* unquoted = strip_arg_quotes(input); for (i = 0; i < ARRAY_SIZE(nick_choices); i++) { result = autocomplete_param_with_ac(unquoted, nick_choices[i], nick_ac, TRUE, previous); if (result) { @@ -1691,11 +1692,11 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ free(unquoted); } - // otherwise autocomplete using roster + // otherwise autocomplete using roster } else if (conn_status == JABBER_CONNECTED) { - gchar *contact_choices[] = { "/msg", "/info" }; + gchar* contact_choices[] = { "/msg", "/info" }; // Remove quote character before and after names when doing autocomplete - char *unquoted = strip_arg_quotes(input); + char* unquoted = strip_arg_quotes(input); for (i = 0; i < ARRAY_SIZE(contact_choices); i++) { result = autocomplete_param_with_func(unquoted, contact_choices[i], roster_contact_autocomplete, previous, NULL); if (result) { @@ -1705,7 +1706,7 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ } free(unquoted); - gchar *resource_choices[] = { "/caps", "/ping" }; + gchar* resource_choices[] = { "/caps", "/ping" }; for (i = 0; i < ARRAY_SIZE(resource_choices); i++) { result = autocomplete_param_with_func(input, resource_choices[i], roster_fulljid_autocomplete, previous, NULL); if (result) { @@ -1714,7 +1715,7 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ } } - gchar *invite_choices[] = { "/join" }; + gchar* invite_choices[] = { "/join" }; for (i = 0; i < ARRAY_SIZE(invite_choices); i++) { result = autocomplete_param_with_func(input, invite_choices[i], muc_invites_find, previous, NULL); if (result) { @@ -1722,7 +1723,7 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ } } - gchar *cmds[] = { "/prefs", "/disco", "/room", "/autoping", "/mainwin", "/inputwin" }; + gchar* cmds[] = { "/prefs", "/disco", "/room", "/autoping", "/mainwin", "/inputwin" }; Autocomplete completers[] = { prefs_ac, disco_ac, room_ac, autoping_ac, winpos_ac, winpos_ac }; for (i = 0; i < ARRAY_SIZE(cmds); i++) { @@ -1732,71 +1733,71 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ } } - GHashTable *ac_funcs = g_hash_table_new(g_str_hash, g_str_equal); - g_hash_table_insert(ac_funcs, "/help", _help_autocomplete); - g_hash_table_insert(ac_funcs, "/who", _who_autocomplete); - g_hash_table_insert(ac_funcs, "/sub", _sub_autocomplete); - g_hash_table_insert(ac_funcs, "/notify", _notify_autocomplete); - g_hash_table_insert(ac_funcs, "/autoaway", _autoaway_autocomplete); - g_hash_table_insert(ac_funcs, "/theme", _theme_autocomplete); - g_hash_table_insert(ac_funcs, "/log", _log_autocomplete); - g_hash_table_insert(ac_funcs, "/account", _account_autocomplete); - g_hash_table_insert(ac_funcs, "/roster", _roster_autocomplete); - g_hash_table_insert(ac_funcs, "/bookmark", _bookmark_autocomplete); - g_hash_table_insert(ac_funcs, "/autoconnect", _autoconnect_autocomplete); + GHashTable* ac_funcs = g_hash_table_new(g_str_hash, g_str_equal); + g_hash_table_insert(ac_funcs, "/help", _help_autocomplete); + g_hash_table_insert(ac_funcs, "/who", _who_autocomplete); + g_hash_table_insert(ac_funcs, "/sub", _sub_autocomplete); + g_hash_table_insert(ac_funcs, "/notify", _notify_autocomplete); + g_hash_table_insert(ac_funcs, "/autoaway", _autoaway_autocomplete); + g_hash_table_insert(ac_funcs, "/theme", _theme_autocomplete); + g_hash_table_insert(ac_funcs, "/log", _log_autocomplete); + g_hash_table_insert(ac_funcs, "/account", _account_autocomplete); + g_hash_table_insert(ac_funcs, "/roster", _roster_autocomplete); + g_hash_table_insert(ac_funcs, "/bookmark", _bookmark_autocomplete); + g_hash_table_insert(ac_funcs, "/autoconnect", _autoconnect_autocomplete); #ifdef HAVE_LIBOTR - g_hash_table_insert(ac_funcs, "/otr", _otr_autocomplete); + g_hash_table_insert(ac_funcs, "/otr", _otr_autocomplete); #endif #ifdef HAVE_LIBGPGME - g_hash_table_insert(ac_funcs, "/pgp", _pgp_autocomplete); - g_hash_table_insert(ac_funcs, "/ox", _ox_autocomplete); + g_hash_table_insert(ac_funcs, "/pgp", _pgp_autocomplete); + g_hash_table_insert(ac_funcs, "/ox", _ox_autocomplete); #endif #ifdef HAVE_OMEMO - g_hash_table_insert(ac_funcs, "/omemo", _omemo_autocomplete); + g_hash_table_insert(ac_funcs, "/omemo", _omemo_autocomplete); #endif - g_hash_table_insert(ac_funcs, "/connect", _connect_autocomplete); - g_hash_table_insert(ac_funcs, "/alias", _alias_autocomplete); - g_hash_table_insert(ac_funcs, "/join", _join_autocomplete); - g_hash_table_insert(ac_funcs, "/form", _form_autocomplete); - g_hash_table_insert(ac_funcs, "/occupants", _occupants_autocomplete); - g_hash_table_insert(ac_funcs, "/kick", _kick_autocomplete); - g_hash_table_insert(ac_funcs, "/ban", _ban_autocomplete); - g_hash_table_insert(ac_funcs, "/affiliation", _affiliation_autocomplete); - g_hash_table_insert(ac_funcs, "/role", _role_autocomplete); - g_hash_table_insert(ac_funcs, "/resource", _resource_autocomplete); - g_hash_table_insert(ac_funcs, "/wintitle", _wintitle_autocomplete); - g_hash_table_insert(ac_funcs, "/inpblock", _inpblock_autocomplete); - g_hash_table_insert(ac_funcs, "/time", _time_autocomplete); - g_hash_table_insert(ac_funcs, "/receipts", _receipts_autocomplete); - g_hash_table_insert(ac_funcs, "/wins", _wins_autocomplete); - g_hash_table_insert(ac_funcs, "/tls", _tls_autocomplete); - g_hash_table_insert(ac_funcs, "/titlebar", _titlebar_autocomplete); - g_hash_table_insert(ac_funcs, "/script", _script_autocomplete); - g_hash_table_insert(ac_funcs, "/subject", _subject_autocomplete); - g_hash_table_insert(ac_funcs, "/console", _console_autocomplete); - g_hash_table_insert(ac_funcs, "/win", _win_autocomplete); - g_hash_table_insert(ac_funcs, "/close", _close_autocomplete); - g_hash_table_insert(ac_funcs, "/plugins", _plugins_autocomplete); - g_hash_table_insert(ac_funcs, "/sendfile", _sendfile_autocomplete); - g_hash_table_insert(ac_funcs, "/blocked", _blocked_autocomplete); - g_hash_table_insert(ac_funcs, "/tray", _tray_autocomplete); - g_hash_table_insert(ac_funcs, "/presence", _presence_autocomplete); - g_hash_table_insert(ac_funcs, "/rooms", _rooms_autocomplete); - g_hash_table_insert(ac_funcs, "/statusbar", _statusbar_autocomplete); - g_hash_table_insert(ac_funcs, "/clear", _clear_autocomplete); - g_hash_table_insert(ac_funcs, "/invite", _invite_autocomplete); - g_hash_table_insert(ac_funcs, "/status", _status_autocomplete); - g_hash_table_insert(ac_funcs, "/logging", _logging_autocomplete); - g_hash_table_insert(ac_funcs, "/color", _color_autocomplete); - g_hash_table_insert(ac_funcs, "/avatar", _avatar_autocomplete); - g_hash_table_insert(ac_funcs, "/correction", _correction_autocomplete); - g_hash_table_insert(ac_funcs, "/correct", _correct_autocomplete); - g_hash_table_insert(ac_funcs, "/software", _software_autocomplete); - g_hash_table_insert(ac_funcs, "/url", _url_autocomplete); - g_hash_table_insert(ac_funcs, "/executable", _executable_autocomplete); + g_hash_table_insert(ac_funcs, "/connect", _connect_autocomplete); + g_hash_table_insert(ac_funcs, "/alias", _alias_autocomplete); + g_hash_table_insert(ac_funcs, "/join", _join_autocomplete); + g_hash_table_insert(ac_funcs, "/form", _form_autocomplete); + g_hash_table_insert(ac_funcs, "/occupants", _occupants_autocomplete); + g_hash_table_insert(ac_funcs, "/kick", _kick_autocomplete); + g_hash_table_insert(ac_funcs, "/ban", _ban_autocomplete); + g_hash_table_insert(ac_funcs, "/affiliation", _affiliation_autocomplete); + g_hash_table_insert(ac_funcs, "/role", _role_autocomplete); + g_hash_table_insert(ac_funcs, "/resource", _resource_autocomplete); + g_hash_table_insert(ac_funcs, "/wintitle", _wintitle_autocomplete); + g_hash_table_insert(ac_funcs, "/inpblock", _inpblock_autocomplete); + g_hash_table_insert(ac_funcs, "/time", _time_autocomplete); + g_hash_table_insert(ac_funcs, "/receipts", _receipts_autocomplete); + g_hash_table_insert(ac_funcs, "/wins", _wins_autocomplete); + g_hash_table_insert(ac_funcs, "/tls", _tls_autocomplete); + g_hash_table_insert(ac_funcs, "/titlebar", _titlebar_autocomplete); + g_hash_table_insert(ac_funcs, "/script", _script_autocomplete); + g_hash_table_insert(ac_funcs, "/subject", _subject_autocomplete); + g_hash_table_insert(ac_funcs, "/console", _console_autocomplete); + g_hash_table_insert(ac_funcs, "/win", _win_autocomplete); + g_hash_table_insert(ac_funcs, "/close", _close_autocomplete); + g_hash_table_insert(ac_funcs, "/plugins", _plugins_autocomplete); + g_hash_table_insert(ac_funcs, "/sendfile", _sendfile_autocomplete); + g_hash_table_insert(ac_funcs, "/blocked", _blocked_autocomplete); + g_hash_table_insert(ac_funcs, "/tray", _tray_autocomplete); + g_hash_table_insert(ac_funcs, "/presence", _presence_autocomplete); + g_hash_table_insert(ac_funcs, "/rooms", _rooms_autocomplete); + g_hash_table_insert(ac_funcs, "/statusbar", _statusbar_autocomplete); + g_hash_table_insert(ac_funcs, "/clear", _clear_autocomplete); + g_hash_table_insert(ac_funcs, "/invite", _invite_autocomplete); + g_hash_table_insert(ac_funcs, "/status", _status_autocomplete); + g_hash_table_insert(ac_funcs, "/logging", _logging_autocomplete); + g_hash_table_insert(ac_funcs, "/color", _color_autocomplete); + g_hash_table_insert(ac_funcs, "/avatar", _avatar_autocomplete); + g_hash_table_insert(ac_funcs, "/correction", _correction_autocomplete); + g_hash_table_insert(ac_funcs, "/correct", _correct_autocomplete); + g_hash_table_insert(ac_funcs, "/software", _software_autocomplete); + g_hash_table_insert(ac_funcs, "/url", _url_autocomplete); + g_hash_table_insert(ac_funcs, "/executable", _executable_autocomplete); int len = strlen(input); - char parsed[len+1]; + char parsed[len + 1]; i = 0; while (i < len) { if (input[i] == ' ') { @@ -1808,7 +1809,7 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ } parsed[i] = '\0'; - char * (*ac_func)(ProfWin*, const char * const, gboolean) = g_hash_table_lookup(ac_funcs, parsed); + char* (*ac_func)(ProfWin*, const char* const, gboolean) = g_hash_table_lookup(ac_funcs, parsed); if (ac_func) { result = ac_func(window, input, previous); if (result) { @@ -1834,9 +1835,9 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ } static char* -_sub_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_sub_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_func(input, "/sub allow", presence_sub_request_find, previous, NULL); if (result) { return result; @@ -1854,9 +1855,9 @@ _sub_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_tray_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_tray_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_func(input, "/tray read", prefs_autocomplete_boolean_choice, previous, NULL); if (result) { return result; @@ -1871,9 +1872,9 @@ _tray_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_who_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_who_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; if (window->type == WIN_MUC) { result = autocomplete_param_with_ac(input, "/who", who_room_ac, TRUE, previous); @@ -1884,9 +1885,9 @@ _who_autocomplete(ProfWin *window, const char *const input, gboolean previous) jabber_conn_status_t conn_status = connection_get_status(); if (conn_status == JABBER_CONNECTED) { int i = 0; - gchar *group_commands[] = { "/who any", "/who online", "/who offline", - "/who chat", "/who away", "/who xa", "/who dnd", "/who available", - "/who unavailable" }; + gchar* group_commands[] = { "/who any", "/who online", "/who offline", + "/who chat", "/who away", "/who xa", "/who dnd", "/who available", + "/who unavailable" }; for (i = 0; i < ARRAY_SIZE(group_commands); i++) { result = autocomplete_param_with_func(input, group_commands[i], roster_group_autocomplete, previous, NULL); @@ -1906,9 +1907,9 @@ _who_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_roster_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_roster_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/roster room private char", roster_char_ac, TRUE, previous); if (result) { return result; @@ -2084,9 +2085,9 @@ _roster_autocomplete(ProfWin *window, const char *const input, gboolean previous } static char* -_blocked_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_blocked_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_func(input, "/blocked remove", blocked_ac_find, previous, NULL); if (result) { @@ -2102,18 +2103,18 @@ _blocked_autocomplete(ProfWin *window, const char *const input, gboolean previou } static char* -_bookmark_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_bookmark_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; gboolean result; - gchar **args = parse_args(input, 2, 8, &result); + gchar** args = parse_args(input, 2, 8, &result); - if (result && ((strcmp(args[0], "add") == 0) || (strcmp(args[0], "update") == 0)) ) { + if (result && ((strcmp(args[0], "add") == 0) || (strcmp(args[0], "update") == 0))) { gboolean space_at_end = g_str_has_suffix(input, " "); int num_args = g_strv_length(args); if ((num_args == 2 && space_at_end) || (num_args == 3 && !space_at_end)) { - GString *beginning = g_string_new("/bookmark"); + GString* beginning = g_string_new("/bookmark"); g_string_append_printf(beginning, " %s %s", args[0], args[1]); found = autocomplete_param_with_ac(input, beginning->str, bookmark_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -2123,8 +2124,8 @@ _bookmark_autocomplete(ProfWin *window, const char *const input, gboolean previo } } if ((num_args == 3 && space_at_end && (g_strcmp0(args[2], "autojoin") == 0)) - || (num_args == 4 && (g_strcmp0(args[2], "autojoin") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/bookmark"); + || (num_args == 4 && (g_strcmp0(args[2], "autojoin") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/bookmark"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); found = autocomplete_param_with_func(input, beginning->str, prefs_autocomplete_boolean_choice, previous, NULL); g_string_free(beginning, TRUE); @@ -2134,7 +2135,7 @@ _bookmark_autocomplete(ProfWin *window, const char *const input, gboolean previo } } if ((num_args == 4 && space_at_end) || (num_args == 5 && !space_at_end)) { - GString *beginning = g_string_new("/bookmark"); + GString* beginning = g_string_new("/bookmark"); g_string_append_printf(beginning, " %s %s %s %s", args[0], args[1], args[2], args[3]); found = autocomplete_param_with_ac(input, beginning->str, bookmark_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -2144,8 +2145,8 @@ _bookmark_autocomplete(ProfWin *window, const char *const input, gboolean previo } } if ((num_args == 5 && space_at_end && (g_strcmp0(args[4], "autojoin") == 0)) - || (num_args == 6 && (g_strcmp0(args[4], "autojoin") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/bookmark"); + || (num_args == 6 && (g_strcmp0(args[4], "autojoin") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/bookmark"); g_string_append_printf(beginning, " %s %s %s %s %s", args[0], args[1], args[2], args[3], args[4]); found = autocomplete_param_with_func(input, beginning->str, prefs_autocomplete_boolean_choice, previous, NULL); g_string_free(beginning, TRUE); @@ -2155,7 +2156,7 @@ _bookmark_autocomplete(ProfWin *window, const char *const input, gboolean previo } } if ((num_args == 6 && space_at_end) || (num_args == 7 && !space_at_end)) { - GString *beginning = g_string_new("/bookmark"); + GString* beginning = g_string_new("/bookmark"); g_string_append_printf(beginning, " %s %s %s %s %s %s", args[0], args[1], args[2], args[3], args[4], args[5]); found = autocomplete_param_with_ac(input, beginning->str, bookmark_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -2165,8 +2166,8 @@ _bookmark_autocomplete(ProfWin *window, const char *const input, gboolean previo } } if ((num_args == 7 && space_at_end && (g_strcmp0(args[6], "autojoin") == 0)) - || (num_args == 8 && (g_strcmp0(args[6], "autojoin") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/bookmark"); + || (num_args == 8 && (g_strcmp0(args[6], "autojoin") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/bookmark"); g_string_append_printf(beginning, " %s %s %s %s %s %s %s", args[0], args[1], args[2], args[3], args[4], args[5], args[6]); found = autocomplete_param_with_func(input, beginning->str, prefs_autocomplete_boolean_choice, previous, NULL); g_string_free(beginning, TRUE); @@ -2214,18 +2215,18 @@ _bookmark_autocomplete(ProfWin *window, const char *const input, gboolean previo } static char* -_notify_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_notify_autocomplete(ProfWin* window, const char* const input, gboolean previous) { int i = 0; - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_func(input, "/notify room trigger remove", prefs_autocomplete_room_trigger, previous, NULL); if (result) { return result; } - gchar *boolean_choices1[] = { "/notify room current", "/notify chat current", "/notify typing current", - "/notify room text", "/notify chat text" }; + gchar* boolean_choices1[] = { "/notify room current", "/notify chat current", "/notify typing current", + "/notify room text", "/notify chat text" }; for (i = 0; i < ARRAY_SIZE(boolean_choices1); i++) { result = autocomplete_param_with_func(input, boolean_choices1[i], prefs_autocomplete_boolean_choice, previous, NULL); if (result) { @@ -2258,7 +2259,7 @@ _notify_autocomplete(ProfWin *window, const char *const input, gboolean previous return result; } - gchar *boolean_choices2[] = { "/notify invite", "/notify sub", "/notify mention", "/notify trigger"}; + gchar* boolean_choices2[] = { "/notify invite", "/notify sub", "/notify mention", "/notify trigger" }; for (i = 0; i < ARRAY_SIZE(boolean_choices2); i++) { result = autocomplete_param_with_func(input, boolean_choices2[i], prefs_autocomplete_boolean_choice, previous, NULL); if (result) { @@ -2275,9 +2276,9 @@ _notify_autocomplete(ProfWin *window, const char *const input, gboolean previous } static char* -_autoaway_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_autoaway_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/autoaway mode", autoaway_mode_ac, TRUE, previous); if (result) { @@ -2307,9 +2308,9 @@ _autoaway_autocomplete(ProfWin *window, const char *const input, gboolean previo } static char* -_log_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_log_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_func(input, "/log rotate", prefs_autocomplete_boolean_choice, previous, NULL); if (result) { @@ -2328,9 +2329,9 @@ _log_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_autoconnect_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_autoconnect_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_func(input, "/autoconnect set", accounts_find_enabled, previous, NULL); if (result) { @@ -2347,9 +2348,9 @@ _autoconnect_autocomplete(ProfWin *window, const char *const input, gboolean pre #ifdef HAVE_LIBOTR static char* -_otr_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_otr_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; jabber_conn_status_t conn_status = connection_get_status(); @@ -2368,9 +2369,9 @@ _otr_autocomplete(ProfWin *window, const char *const input, gboolean previous) // /otr policy always user@server.com if (conn_status == JABBER_CONNECTED) { gboolean result; - gchar **args = parse_args(input, 2, 3, &result); + gchar** args = parse_args(input, 2, 3, &result); if (result && (strcmp(args[0], "policy") == 0)) { - GString *beginning = g_string_new("/otr "); + GString* beginning = g_string_new("/otr "); g_string_append(beginning, args[0]); g_string_append(beginning, " "); if (args[1]) { @@ -2408,9 +2409,9 @@ _otr_autocomplete(ProfWin *window, const char *const input, gboolean previous) #ifdef HAVE_LIBGPGME static char* -_pgp_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_pgp_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; jabber_conn_status_t conn_status = connection_get_status(); @@ -2432,9 +2433,9 @@ _pgp_autocomplete(ProfWin *window, const char *const input, gboolean previous) } gboolean result; - gchar **args = parse_args(input, 2, 3, &result); + gchar** args = parse_args(input, 2, 3, &result); if ((strncmp(input, "/pgp", 4) == 0) && (result == TRUE)) { - GString *beginning = g_string_new("/pgp "); + GString* beginning = g_string_new("/pgp "); g_string_append(beginning, args[0]); if (args[1]) { g_string_append(beginning, " "); @@ -2470,9 +2471,9 @@ _pgp_autocomplete(ProfWin *window, const char *const input, gboolean previous) * */ static char* -_ox_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_ox_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; jabber_conn_status_t conn_status = connection_get_status(); @@ -2494,9 +2495,9 @@ _ox_autocomplete(ProfWin *window, const char *const input, gboolean previous) } gboolean result; - gchar **args = parse_args(input, 2, 3, &result); + gchar** args = parse_args(input, 2, 3, &result); if ((strncmp(input, "/ox", 4) == 0) && (result == TRUE)) { - GString *beginning = g_string_new("/ox "); + GString* beginning = g_string_new("/ox "); g_string_append(beginning, args[0]); if (args[1]) { g_string_append(beginning, " "); @@ -2529,9 +2530,9 @@ _ox_autocomplete(ProfWin *window, const char *const input, gboolean previous) #ifdef HAVE_OMEMO static char* -_omemo_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_omemo_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; found = autocomplete_param_with_ac(input, "/omemo log", omemo_log_ac, TRUE, previous); if (found) { @@ -2562,7 +2563,7 @@ _omemo_autocomplete(ProfWin *window, const char *const input, gboolean previous) } if (window->type == WIN_CHAT) { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); found = autocomplete_param_with_func(input, "/omemo trust", omemo_fingerprint_autocomplete, previous, chatwin->barejid); if (found) { @@ -2577,9 +2578,9 @@ _omemo_autocomplete(ProfWin *window, const char *const input, gboolean previous) int num_tokens = count_tokens(input); if (num_tokens == 4) { gboolean result; - gchar **args = parse_args(input, 2, 3, &result); + gchar** args = parse_args(input, 2, 3, &result); if (result) { - gchar *jid = g_strdup(args[1]); + gchar* jid = g_strdup(args[1]); found = autocomplete_param_no_with_func(input, "/omemo trust", 4, omemo_fingerprint_autocomplete, previous, jid); if (found) { return found; @@ -2599,9 +2600,9 @@ _omemo_autocomplete(ProfWin *window, const char *const input, gboolean previous) #endif static char* -_plugins_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_plugins_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; if (strncmp(input, "/plugins sourcepath set ", 24) == 0) { return cmd_ac_complete_filepath(input, "/plugins sourcepath set", previous); @@ -2621,8 +2622,8 @@ _plugins_autocomplete(ProfWin *window, const char *const input, gboolean previou if (strncmp(input, "/plugins load ", 14) == 0) { if (plugins_load_ac == NULL) { plugins_load_ac = autocomplete_new(); - GSList *plugins = plugins_unloaded_list(); - GSList *curr = plugins; + GSList* plugins = plugins_unloaded_list(); + GSList* curr = plugins; while (curr) { autocomplete_add(plugins_load_ac, curr->data); curr = g_slist_next(curr); @@ -2638,8 +2639,8 @@ _plugins_autocomplete(ProfWin *window, const char *const input, gboolean previou if (strncmp(input, "/plugins reload ", 16) == 0) { if (plugins_reload_ac == NULL) { plugins_reload_ac = autocomplete_new(); - GList *plugins = plugins_loaded_list(); - GList *curr = plugins; + GList* plugins = plugins_loaded_list(); + GList* curr = plugins; while (curr) { autocomplete_add(plugins_reload_ac, curr->data); curr = g_list_next(curr); @@ -2655,8 +2656,8 @@ _plugins_autocomplete(ProfWin *window, const char *const input, gboolean previou if (strncmp(input, "/plugins unload ", 16) == 0) { if (plugins_unload_ac == NULL) { plugins_unload_ac = autocomplete_new(); - GList *plugins = plugins_loaded_list(); - GList *curr = plugins; + GList* plugins = plugins_loaded_list(); + GList* curr = plugins; while (curr) { autocomplete_add(plugins_unload_ac, curr->data); curr = g_list_next(curr); @@ -2678,15 +2679,15 @@ _plugins_autocomplete(ProfWin *window, const char *const input, gboolean previou } static char* -_theme_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_theme_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; if (strncmp(input, "/theme load ", 12) == 0) { if (theme_load_ac == NULL) { theme_load_ac = autocomplete_new(); - GSList *themes = theme_list(); - GSList *curr = themes; + GSList* themes = theme_list(); + GSList* curr = themes; while (curr) { autocomplete_add(theme_load_ac, curr->data); @@ -2706,8 +2707,8 @@ _theme_autocomplete(ProfWin *window, const char *const input, gboolean previous) if (strncmp(input, "/theme full-load ", 17) == 0) { if (theme_load_ac == NULL) { theme_load_ac = autocomplete_new(); - GSList *themes = theme_list(); - GSList *curr = themes; + GSList* themes = theme_list(); + GSList* curr = themes; while (curr) { autocomplete_add(theme_load_ac, curr->data); @@ -2733,12 +2734,12 @@ _theme_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_script_autocomplete_func(const char *const prefix, gboolean previous, void *context) +_script_autocomplete_func(const char* const prefix, gboolean previous, void* context) { if (script_show_ac == NULL) { script_show_ac = autocomplete_new(); - GSList *scripts = scripts_list(); - GSList *curr = scripts; + GSList* scripts = scripts_list(); + GSList* curr = scripts; while (curr) { autocomplete_add(script_show_ac, curr->data); curr = g_slist_next(curr); @@ -2749,11 +2750,10 @@ _script_autocomplete_func(const char *const prefix, gboolean previous, void *con return autocomplete_complete(script_show_ac, prefix, FALSE, previous); } - static char* -_script_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_script_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; if (strncmp(input, "/script show ", 13) == 0) { result = autocomplete_param_with_func(input, "/script show", _script_autocomplete_func, previous, NULL); if (result) { @@ -2777,13 +2777,13 @@ _script_autocomplete(ProfWin *window, const char *const input, gboolean previous } static char* -_resource_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_resource_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; jabber_conn_status_t conn_status = connection_get_status(); if (conn_status == JABBER_CONNECTED && window->type == WIN_CHAT) { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); PContact contact = roster_get_contact(chatwin->barejid); if (contact) { @@ -2814,9 +2814,9 @@ _resource_autocomplete(ProfWin *window, const char *const input, gboolean previo } static char* -_wintitle_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_wintitle_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; found = autocomplete_param_with_func(input, "/wintitle show", prefs_autocomplete_boolean_choice, previous, NULL); if (found) { @@ -2837,9 +2837,9 @@ _wintitle_autocomplete(ProfWin *window, const char *const input, gboolean previo } static char* -_inpblock_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_inpblock_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; found = autocomplete_param_with_func(input, "/inpblock dynamic", prefs_autocomplete_boolean_choice, previous, NULL); if (found) { @@ -2855,16 +2855,16 @@ _inpblock_autocomplete(ProfWin *window, const char *const input, gboolean previo } static char* -_form_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_form_autocomplete(ProfWin* window, const char* const input, gboolean previous) { if (window->type != WIN_CONFIG) { return NULL; } - char *found = NULL; + char* found = NULL; - ProfConfWin *confwin = (ProfConfWin*)window; - DataForm *form = confwin->form; + ProfConfWin* confwin = (ProfConfWin*)window; + DataForm* form = confwin->form; if (form) { found = autocomplete_param_with_ac(input, "/form help", form->tag_ac, TRUE, previous); if (found) { @@ -2881,33 +2881,34 @@ _form_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_form_field_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_form_field_autocomplete(ProfWin* window, const char* const input, gboolean previous) { if (window->type != WIN_CONFIG) { return NULL; } - char *found = NULL; + char* found = NULL; - ProfConfWin *confwin = (ProfConfWin*)window; - DataForm *form = confwin->form; + ProfConfWin* confwin = (ProfConfWin*)window; + DataForm* form = confwin->form; if (form == NULL) { return NULL; } - gchar **split = g_strsplit(input, " ", 0); + gchar** split = g_strsplit(input, " ", 0); if (g_strv_length(split) == 3) { - char *field_tag = split[0]+1; + char* field_tag = split[0] + 1; if (form_tag_exists(form, field_tag)) { form_field_type_t field_type = form_get_field_type(form, field_tag); - Autocomplete value_ac = form_get_value_ac(form, field_tag);; - GString *beginning = g_string_new(split[0]); + Autocomplete value_ac = form_get_value_ac(form, field_tag); + ; + GString* beginning = g_string_new(split[0]); g_string_append(beginning, " "); g_string_append(beginning, split[1]); if (((g_strcmp0(split[1], "add") == 0) || (g_strcmp0(split[1], "remove") == 0)) - && field_type == FIELD_LIST_MULTI) { + && field_type == FIELD_LIST_MULTI) { found = autocomplete_param_with_ac(input, beginning->str, value_ac, TRUE, previous); } else if ((g_strcmp0(split[1], "remove") == 0) && field_type == FIELD_TEXT_MULTI) { @@ -2921,26 +2922,26 @@ _form_field_autocomplete(ProfWin *window, const char *const input, gboolean prev } } else if (g_strv_length(split) == 2) { - char *field_tag = split[0]+1; + char* field_tag = split[0] + 1; if (form_tag_exists(form, field_tag)) { form_field_type_t field_type = form_get_field_type(form, field_tag); - Autocomplete value_ac = form_get_value_ac(form, field_tag);; - - switch (field_type) - { - case FIELD_BOOLEAN: - found = autocomplete_param_with_func(input, split[0], prefs_autocomplete_boolean_choice, previous, NULL); - break; - case FIELD_LIST_SINGLE: - found = autocomplete_param_with_ac(input, split[0], value_ac, TRUE, previous); - break; - case FIELD_LIST_MULTI: - case FIELD_JID_MULTI: - case FIELD_TEXT_MULTI: - found = autocomplete_param_with_ac(input, split[0], form_field_multi_ac, TRUE, previous); - break; - default: - break; + Autocomplete value_ac = form_get_value_ac(form, field_tag); + ; + + switch (field_type) { + case FIELD_BOOLEAN: + found = autocomplete_param_with_func(input, split[0], prefs_autocomplete_boolean_choice, previous, NULL); + break; + case FIELD_LIST_SINGLE: + found = autocomplete_param_with_ac(input, split[0], value_ac, TRUE, previous); + break; + case FIELD_LIST_MULTI: + case FIELD_JID_MULTI: + case FIELD_TEXT_MULTI: + found = autocomplete_param_with_ac(input, split[0], form_field_multi_ac, TRUE, previous); + break; + default: + break; } } } @@ -2951,9 +2952,9 @@ _form_field_autocomplete(ProfWin *window, const char *const input, gboolean prev } static char* -_occupants_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_occupants_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; found = autocomplete_param_with_ac(input, "/occupants default show", occupants_show_ac, TRUE, previous); if (found) { @@ -3014,9 +3015,9 @@ _occupants_autocomplete(ProfWin *window, const char *const input, gboolean previ } static char* -_time_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_time_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; found = autocomplete_param_with_ac(input, "/time statusbar", time_format_ac, TRUE, previous); if (found) { @@ -3072,58 +3073,58 @@ _time_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_kick_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_kick_autocomplete(ProfWin* window, const char* const input, gboolean previous) { if (window->type != WIN_MUC) { return NULL; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); Autocomplete nick_ac = muc_roster_ac(mucwin->roomjid); if (nick_ac == NULL) { return NULL; } - char *result = autocomplete_param_with_ac(input, "/kick", nick_ac, TRUE, previous); + char* result = autocomplete_param_with_ac(input, "/kick", nick_ac, TRUE, previous); return result; } static char* -_ban_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_ban_autocomplete(ProfWin* window, const char* const input, gboolean previous) { if (window->type != WIN_MUC) { return NULL; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); Autocomplete jid_ac = muc_roster_jid_ac(mucwin->roomjid); if (jid_ac == NULL) { return NULL; } - char *result = autocomplete_param_with_ac(input, "/ban", jid_ac, TRUE, previous); + char* result = autocomplete_param_with_ac(input, "/ban", jid_ac, TRUE, previous); return result; } static char* -_affiliation_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_affiliation_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; if (window->type == WIN_MUC) { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); gboolean parse_result; Autocomplete jid_ac = muc_roster_jid_ac(mucwin->roomjid); - gchar **args = parse_args(input, 2, 3, &parse_result); + gchar** args = parse_args(input, 2, 3, &parse_result); if ((strncmp(input, "/affiliation", 12) == 0) && (parse_result == TRUE)) { - GString *beginning = g_string_new("/affiliation "); + GString* beginning = g_string_new("/affiliation "); g_string_append(beginning, args[0]); g_string_append(beginning, " "); if (args[1]) { @@ -3160,20 +3161,20 @@ _affiliation_autocomplete(ProfWin *window, const char *const input, gboolean pre } static char* -_role_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_role_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; if (window->type == WIN_MUC) { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); gboolean parse_result; Autocomplete nick_ac = muc_roster_ac(mucwin->roomjid); - gchar **args = parse_args(input, 2, 3, &parse_result); + gchar** args = parse_args(input, 2, 3, &parse_result); if ((strncmp(input, "/role", 5) == 0) && (parse_result == TRUE)) { - GString *beginning = g_string_new("/role "); + GString* beginning = g_string_new("/role "); g_string_append(beginning, args[0]); g_string_append(beginning, " "); if (args[1]) { @@ -3210,9 +3211,9 @@ _role_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_wins_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_wins_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/wins", wins_ac, TRUE, previous); if (result) { @@ -3223,9 +3224,9 @@ _wins_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_tls_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_tls_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_func(input, "/tls revoke", tlscerts_complete, previous, NULL); if (result) { @@ -3251,9 +3252,9 @@ _tls_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_titlebar_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_titlebar_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/titlebar show", titlebar_show_ac, TRUE, previous); if (result) { @@ -3274,9 +3275,9 @@ _titlebar_autocomplete(ProfWin *window, const char *const input, gboolean previo } static char* -_receipts_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_receipts_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_func(input, "/receipts send", prefs_autocomplete_boolean_choice, previous, NULL); if (result) { @@ -3297,9 +3298,9 @@ _receipts_autocomplete(ProfWin *window, const char *const input, gboolean previo } static char* -_alias_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_alias_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/alias remove", aliases_ac, TRUE, previous); if (result) { @@ -3315,18 +3316,18 @@ _alias_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_connect_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_connect_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; gboolean result = FALSE; - gchar **args = parse_args(input, 1, 9, &result); + gchar** args = parse_args(input, 1, 9, &result); if (result) { gboolean space_at_end = g_str_has_suffix(input, " "); int num_args = g_strv_length(args); if ((num_args == 1 && space_at_end) || (num_args == 2 && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s", args[0]); found = autocomplete_param_with_ac(input, beginning->str, connect_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3336,8 +3337,8 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 2 && space_at_end && (g_strcmp0(args[1], "tls") == 0)) - || (num_args == 3 && (g_strcmp0(args[1], "tls") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + || (num_args == 3 && (g_strcmp0(args[1], "tls") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s", args[0], args[1]); found = autocomplete_param_with_ac(input, beginning->str, tls_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3347,7 +3348,7 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 3 && space_at_end) || (num_args == 4 && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); found = autocomplete_param_with_ac(input, beginning->str, connect_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3357,8 +3358,8 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 4 && space_at_end && (g_strcmp0(args[3], "tls") == 0)) - || (num_args == 5 && (g_strcmp0(args[3], "tls") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + || (num_args == 5 && (g_strcmp0(args[3], "tls") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s %s %s", args[0], args[1], args[2], args[3]); found = autocomplete_param_with_ac(input, beginning->str, tls_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3368,7 +3369,7 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 5 && space_at_end) || (num_args == 6 && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s %s %s %s", args[0], args[1], args[2], args[3], args[4]); found = autocomplete_param_with_ac(input, beginning->str, connect_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3378,8 +3379,8 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 6 && space_at_end && (g_strcmp0(args[5], "tls") == 0)) - || (num_args == 7 && (g_strcmp0(args[5], "tls") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + || (num_args == 7 && (g_strcmp0(args[5], "tls") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s %s %s %s %s", args[0], args[1], args[2], args[3], args[4], args[5]); found = autocomplete_param_with_ac(input, beginning->str, tls_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3389,7 +3390,7 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 7 && space_at_end) || (num_args == 8 && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s %s %s %s %s %s", args[0], args[1], args[2], args[3], args[4], args[5], args[6]); found = autocomplete_param_with_ac(input, beginning->str, connect_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3399,8 +3400,8 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 8 && space_at_end && (g_strcmp0(args[7], "tls") == 0)) - || (num_args == 9 && (g_strcmp0(args[7], "tls") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + || (num_args == 9 && (g_strcmp0(args[7], "tls") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s %s %s %s %s %s %s", args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); found = autocomplete_param_with_ac(input, beginning->str, tls_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3413,8 +3414,8 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou /* auth option */ if ((num_args == 2 && space_at_end && (g_strcmp0(args[1], "auth") == 0)) - || (num_args == 3 && (g_strcmp0(args[1], "auth") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + || (num_args == 3 && (g_strcmp0(args[1], "auth") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s", args[0], args[1]); found = autocomplete_param_with_ac(input, beginning->str, auth_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3424,8 +3425,8 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 4 && space_at_end && (g_strcmp0(args[3], "auth") == 0)) - || (num_args == 5 && (g_strcmp0(args[3], "auth") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + || (num_args == 5 && (g_strcmp0(args[3], "auth") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s %s %s", args[0], args[1], args[2], args[3]); found = autocomplete_param_with_ac(input, beginning->str, auth_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3435,8 +3436,8 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 6 && space_at_end && (g_strcmp0(args[5], "auth") == 0)) - || (num_args == 7 && (g_strcmp0(args[5], "auth") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + || (num_args == 7 && (g_strcmp0(args[5], "auth") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s %s %s %s %s", args[0], args[1], args[2], args[3], args[4], args[5]); found = autocomplete_param_with_ac(input, beginning->str, auth_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3446,8 +3447,8 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 8 && space_at_end && (g_strcmp0(args[7], "auth") == 0)) - || (num_args == 9 && (g_strcmp0(args[7], "auth") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/connect"); + || (num_args == 9 && (g_strcmp0(args[7], "auth") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/connect"); g_string_append_printf(beginning, " %s %s %s %s %s %s %s %s", args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); found = autocomplete_param_with_ac(input, beginning->str, auth_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3469,9 +3470,9 @@ _connect_autocomplete(ProfWin *window, const char *const input, gboolean previou } static char* -_help_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_help_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/help commands", help_commands_ac, TRUE, previous); if (result) { @@ -3487,18 +3488,18 @@ _help_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_join_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_join_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; gboolean result = FALSE; - gchar **args = parse_args(input, 1, 5, &result); + gchar** args = parse_args(input, 1, 5, &result); if (result) { gboolean space_at_end = g_str_has_suffix(input, " "); int num_args = g_strv_length(args); if ((num_args == 1 && space_at_end) || (num_args == 2 && !space_at_end)) { - GString *beginning = g_string_new("/join"); + GString* beginning = g_string_new("/join"); g_string_append_printf(beginning, " %s", args[0]); found = autocomplete_param_with_ac(input, beginning->str, join_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3508,7 +3509,7 @@ _join_autocomplete(ProfWin *window, const char *const input, gboolean previous) } } if ((num_args == 3 && space_at_end) || (num_args == 4 && !space_at_end)) { - GString *beginning = g_string_new("/join"); + GString* beginning = g_string_new("/join"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); found = autocomplete_param_with_ac(input, beginning->str, join_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3530,9 +3531,9 @@ _join_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_console_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_console_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/console chat", console_msg_ac, TRUE, previous); if (result) { @@ -3556,41 +3557,41 @@ _console_autocomplete(ProfWin *window, const char *const input, gboolean previou } static char* -_win_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_win_autocomplete(ProfWin* window, const char* const input, gboolean previous) { return autocomplete_param_with_func(input, "/win", win_autocomplete, previous, NULL); } static char* -_close_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_close_autocomplete(ProfWin* window, const char* const input, gboolean previous) { return autocomplete_param_with_func(input, "/close", win_close_autocomplete, previous, NULL); } static char* -_sendfile_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_sendfile_autocomplete(ProfWin* window, const char* const input, gboolean previous) { return cmd_ac_complete_filepath(input, "/sendfile", previous); } static char* -_subject_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_subject_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; if (window->type == WIN_MUC) { if ((g_strcmp0(input, "/subject e") == 0) - || (g_strcmp0(input, "/subject ed") == 0) - || (g_strcmp0(input, "/subject edi") == 0) - || (g_strcmp0(input, "/subject edit") == 0) - || (g_strcmp0(input, "/subject edit ") == 0) - || (g_strcmp0(input, "/subject edit \"") == 0)) { - ProfMucWin *mucwin = (ProfMucWin*)window; + || (g_strcmp0(input, "/subject ed") == 0) + || (g_strcmp0(input, "/subject edi") == 0) + || (g_strcmp0(input, "/subject edit") == 0) + || (g_strcmp0(input, "/subject edit ") == 0) + || (g_strcmp0(input, "/subject edit \"") == 0)) { + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - char *subject = muc_subject(mucwin->roomjid); + char* subject = muc_subject(mucwin->roomjid); if (subject) { - GString *result_str = g_string_new("/subject edit \""); + GString* result_str = g_string_new("/subject edit \""); g_string_append(result_str, subject); g_string_append(result_str, "\""); @@ -3612,17 +3613,17 @@ _subject_autocomplete(ProfWin *window, const char *const input, gboolean previou } static char* -_account_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_account_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; gboolean result = FALSE; - gchar **args = parse_args(input, 2, 4, &result); + gchar** args = parse_args(input, 2, 4, &result); if (result && (strcmp(args[0], "set") == 0)) { gboolean space_at_end = g_str_has_suffix(input, " "); int num_args = g_strv_length(args); if ((num_args == 2 && space_at_end) || (num_args == 3 && !space_at_end)) { - GString *beginning = g_string_new("/account"); + GString* beginning = g_string_new("/account"); g_string_append_printf(beginning, " %s %s", args[0], args[1]); found = autocomplete_param_with_ac(input, beginning->str, account_set_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3633,8 +3634,8 @@ _account_autocomplete(ProfWin *window, const char *const input, gboolean previou } #ifdef HAVE_LIBOTR if ((num_args == 3 && space_at_end && (g_strcmp0(args[2], "otr") == 0)) - || (num_args == 4 && (g_strcmp0(args[2], "otr") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/account"); + || (num_args == 4 && (g_strcmp0(args[2], "otr") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/account"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); found = autocomplete_param_with_ac(input, beginning->str, otr_policy_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3645,8 +3646,8 @@ _account_autocomplete(ProfWin *window, const char *const input, gboolean previou } #endif if ((num_args == 3 && space_at_end && (g_strcmp0(args[2], "status") == 0)) - || (num_args == 4 && (g_strcmp0(args[2], "status") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/account"); + || (num_args == 4 && (g_strcmp0(args[2], "status") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/account"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); found = autocomplete_param_with_ac(input, beginning->str, account_status_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3656,8 +3657,8 @@ _account_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 3 && space_at_end && (g_strcmp0(args[2], "tls") == 0)) - || (num_args == 4 && (g_strcmp0(args[2], "tls") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/account"); + || (num_args == 4 && (g_strcmp0(args[2], "tls") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/account"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); found = autocomplete_param_with_ac(input, beginning->str, tls_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3667,8 +3668,8 @@ _account_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 3 && space_at_end && (g_strcmp0(args[2], "auth") == 0)) - || (num_args == 4 && (g_strcmp0(args[2], "auth") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/account"); + || (num_args == 4 && (g_strcmp0(args[2], "auth") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/account"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); found = autocomplete_param_with_ac(input, beginning->str, auth_property_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3678,8 +3679,8 @@ _account_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 3 && space_at_end && (g_strcmp0(args[2], "startscript") == 0)) - || (num_args == 4 && (g_strcmp0(args[2], "startscript") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/account"); + || (num_args == 4 && (g_strcmp0(args[2], "startscript") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/account"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); found = autocomplete_param_with_func(input, beginning->str, _script_autocomplete_func, previous, NULL); g_string_free(beginning, TRUE); @@ -3689,13 +3690,13 @@ _account_autocomplete(ProfWin *window, const char *const input, gboolean previou } } if ((num_args == 3 && space_at_end && (g_strcmp0(args[2], "theme") == 0)) - || (num_args == 4 && (g_strcmp0(args[2], "theme") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/account"); + || (num_args == 4 && (g_strcmp0(args[2], "theme") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/account"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); if (theme_load_ac == NULL) { theme_load_ac = autocomplete_new(); - GSList *themes = theme_list(); - GSList *curr = themes; + GSList* themes = theme_list(); + GSList* curr = themes; while (curr) { autocomplete_add(theme_load_ac, curr->data); curr = g_slist_next(curr); @@ -3712,8 +3713,8 @@ _account_autocomplete(ProfWin *window, const char *const input, gboolean previou } #ifdef HAVE_LIBGPGME if ((num_args == 3 && space_at_end && (g_strcmp0(args[2], "pgpkeyid") == 0)) - || (num_args == 4 && (g_strcmp0(args[2], "pgpkeyid") == 0) && !space_at_end)) { - GString *beginning = g_string_new("/account"); + || (num_args == 4 && (g_strcmp0(args[2], "pgpkeyid") == 0) && !space_at_end)) { + GString* beginning = g_string_new("/account"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); found = autocomplete_param_with_func(input, beginning->str, p_gpg_autocomplete_key, previous, NULL); g_string_free(beginning, TRUE); @@ -3726,7 +3727,7 @@ _account_autocomplete(ProfWin *window, const char *const input, gboolean previou } if ((strncmp(input, "/account clear", 14) == 0) && (result == TRUE)) { - GString *beginning = g_string_new("/account clear "); + GString* beginning = g_string_new("/account clear "); g_string_append(beginning, args[1]); found = autocomplete_param_with_ac(input, beginning->str, account_clear_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3739,14 +3740,14 @@ _account_autocomplete(ProfWin *window, const char *const input, gboolean previou g_strfreev(args); found = autocomplete_param_with_ac(input, "/account default", account_default_ac, TRUE, previous); - if(found){ + if (found) { return found; } int i = 0; - gchar *account_choice[] = { "/account set", "/account show", "/account enable", - "/account disable", "/account rename", "/account clear", "/account remove", - "/account default set" }; + gchar* account_choice[] = { "/account set", "/account show", "/account enable", + "/account disable", "/account rename", "/account clear", "/account remove", + "/account default set" }; for (i = 0; i < ARRAY_SIZE(account_choice); i++) { found = autocomplete_param_with_func(input, account_choice[i], accounts_find_all, previous, NULL); @@ -3760,9 +3761,9 @@ _account_autocomplete(ProfWin *window, const char *const input, gboolean previou } static char* -_presence_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_presence_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; found = autocomplete_param_with_func(input, "/presence titlebar", prefs_autocomplete_boolean_choice, previous, NULL); if (found) { @@ -3793,12 +3794,12 @@ _presence_autocomplete(ProfWin *window, const char *const input, gboolean previo } static char* -_rooms_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_rooms_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; gboolean result = FALSE; - gchar **args = parse_args(input, 0, 4, &result); + gchar** args = parse_args(input, 0, 4, &result); if (result) { gboolean space_at_end = g_str_has_suffix(input, " "); @@ -3810,16 +3811,14 @@ _rooms_autocomplete(ProfWin *window, const char *const input, gboolean previous) return found; } } - if ((num_args == 1 && g_strcmp0(args[0], "service") == 0 && space_at_end) || - (num_args == 2 && g_strcmp0(args[0], "service") == 0 && !space_at_end)) { + if ((num_args == 1 && g_strcmp0(args[0], "service") == 0 && space_at_end) || (num_args == 2 && g_strcmp0(args[0], "service") == 0 && !space_at_end)) { found = autocomplete_param_with_func(input, "/rooms service", muc_confserver_find, previous, NULL); if (found) { g_strfreev(args); return found; } } - if ((num_args == 1 && g_strcmp0(args[0], "cache") == 0 && space_at_end) || - (num_args == 2 && g_strcmp0(args[0], "cache") == 0 && !space_at_end)) { + if ((num_args == 1 && g_strcmp0(args[0], "cache") == 0 && space_at_end) || (num_args == 2 && g_strcmp0(args[0], "cache") == 0 && !space_at_end)) { found = autocomplete_param_with_ac(input, "/rooms cache", rooms_cache_ac, TRUE, previous); if (found) { g_strfreev(args); @@ -3827,7 +3826,7 @@ _rooms_autocomplete(ProfWin *window, const char *const input, gboolean previous) } } if ((num_args == 2 && space_at_end) || (num_args == 3 && !space_at_end)) { - GString *beginning = g_string_new("/rooms"); + GString* beginning = g_string_new("/rooms"); g_string_append_printf(beginning, " %s %s", args[0], args[1]); found = autocomplete_param_with_ac(input, beginning->str, rooms_list_ac, TRUE, previous); g_string_free(beginning, TRUE); @@ -3836,9 +3835,8 @@ _rooms_autocomplete(ProfWin *window, const char *const input, gboolean previous) return found; } } - if ((num_args == 3 && g_strcmp0(args[2], "service") == 0 && space_at_end) || - (num_args == 4 && g_strcmp0(args[2], "service") == 0 && !space_at_end)) { - GString *beginning = g_string_new("/rooms"); + if ((num_args == 3 && g_strcmp0(args[2], "service") == 0 && space_at_end) || (num_args == 4 && g_strcmp0(args[2], "service") == 0 && !space_at_end)) { + GString* beginning = g_string_new("/rooms"); g_string_append_printf(beginning, " %s %s %s", args[0], args[1], args[2]); found = autocomplete_param_with_func(input, beginning->str, muc_confserver_find, previous, NULL); g_string_free(beginning, TRUE); @@ -3859,9 +3857,9 @@ _rooms_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_statusbar_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_statusbar_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *found = NULL; + char* found = NULL; found = autocomplete_param_with_ac(input, "/statusbar", statusbar_ac, TRUE, previous); if (found) { @@ -3897,9 +3895,9 @@ _statusbar_autocomplete(ProfWin *window, const char *const input, gboolean previ } static char* -_clear_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_clear_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/clear", clear_ac, TRUE, previous); if (result) { @@ -3915,9 +3913,9 @@ _clear_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_invite_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_invite_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/invite", invite_ac, TRUE, previous); if (result) { @@ -3942,9 +3940,9 @@ _invite_autocomplete(ProfWin *window, const char *const input, gboolean previous } static char* -_status_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_status_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/status", status_ac, TRUE, previous); if (result) { @@ -3962,11 +3960,11 @@ _status_autocomplete(ProfWin *window, const char *const input, gboolean previous } // Remove quote character before and after names when doing autocomplete - char *unquoted = strip_arg_quotes(input); + char* unquoted = strip_arg_quotes(input); // MUC completion with nicknames if (window->type == WIN_MUC) { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); Autocomplete nick_ac = muc_roster_ac(mucwin->roomjid); if (nick_ac) { @@ -3976,7 +3974,7 @@ _status_autocomplete(ProfWin *window, const char *const input, gboolean previous return result; } } - // roster completion + // roster completion } else { result = autocomplete_param_with_func(unquoted, "/status get", roster_contact_autocomplete, previous, NULL); if (result) { @@ -3992,9 +3990,9 @@ _status_autocomplete(ProfWin *window, const char *const input, gboolean previous } static char* -_logging_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_logging_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/logging", logging_ac, TRUE, previous); if (result) { @@ -4015,9 +4013,9 @@ _logging_autocomplete(ProfWin *window, const char *const input, gboolean previou } static char* -_color_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_color_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_func(input, "/color own", prefs_autocomplete_boolean_choice, previous, NULL); if (result) { @@ -4033,9 +4031,9 @@ _color_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_avatar_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_avatar_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/avatar", avatar_ac, TRUE, previous); if (result) { @@ -4059,9 +4057,9 @@ _avatar_autocomplete(ProfWin *window, const char *const input, gboolean previous } static char* -_correction_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_correction_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/correction", correction_ac, TRUE, previous); if (result) { @@ -4072,55 +4070,55 @@ _correction_autocomplete(ProfWin *window, const char *const input, gboolean prev } static char* -_correct_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_correct_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *last_message = NULL; - switch(window->type) { - case WIN_CHAT: - { - ProfChatWin *chatwin = (ProfChatWin*)window; - assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - last_message = chatwin->last_message; - break; - } - case WIN_MUC: - { - ProfMucWin *mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - last_message = mucwin->last_message; - } - default: - break; - } - - if (last_message == NULL) { - return NULL; - } - - GString *result_str = g_string_new("/correct "); - g_string_append(result_str, last_message); - char *result = result_str->str; - g_string_free(result_str, FALSE); - - return result; + char* last_message = NULL; + switch (window->type) { + case WIN_CHAT: + { + ProfChatWin* chatwin = (ProfChatWin*)window; + assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); + last_message = chatwin->last_message; + break; + } + case WIN_MUC: + { + ProfMucWin* mucwin = (ProfMucWin*)window; + assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); + last_message = mucwin->last_message; + } + default: + break; + } + + if (last_message == NULL) { + return NULL; + } + + GString* result_str = g_string_new("/correct "); + g_string_append(result_str, last_message); + char* result = result_str->str; + g_string_free(result_str, FALSE); + + return result; } static char* -_software_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_software_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; - if (window->type == WIN_CHAT){ - ProfChatWin *chatwin = (ProfChatWin*)window; + if (window->type == WIN_CHAT) { + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - GString *search_str = g_string_new("/software "); + GString* search_str = g_string_new("/software "); g_string_append(search_str, chatwin->barejid); result = autocomplete_param_with_func(search_str->str, "/software", roster_fulljid_autocomplete, previous, NULL); g_string_free(search_str, TRUE); } else if (window->type == WIN_MUC) { - ProfMucWin *mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); + ProfMucWin* mucwin = (ProfMucWin*)window; + assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); Autocomplete nick_ac = muc_roster_ac(mucwin->roomjid); @@ -4130,29 +4128,27 @@ _software_autocomplete(ProfWin *window, const char *const input, gboolean previo return result; } } - } else { + } else { result = autocomplete_param_with_func(input, "/software", roster_fulljid_autocomplete, previous, NULL); if (result) { return result; } - } + } - return result; + return result; } static char* -_url_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_url_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/url", url_ac, TRUE, previous); if (result) { return result; } - if (window->type == WIN_CHAT || - window->type == WIN_MUC || - window->type == WIN_PRIVATE) { + if (window->type == WIN_CHAT || window->type == WIN_MUC || window->type == WIN_PRIVATE) { result = autocomplete_param_with_func(input, "/url open", wins_get_url, previous, window); if (result) { return result; @@ -4165,9 +4161,9 @@ _url_autocomplete(ProfWin *window, const char *const input, gboolean previous) } static char* -_executable_autocomplete(ProfWin *window, const char *const input, gboolean previous) +_executable_autocomplete(ProfWin* window, const char* const input, gboolean previous) { - char *result = NULL; + char* result = NULL; result = autocomplete_param_with_ac(input, "/executable", executable_ac, TRUE, previous); if (result) { diff --git a/src/command/cmd_ac.h b/src/command/cmd_ac.h index d6ba3e2a..ef715310 100644 --- a/src/command/cmd_ac.h +++ b/src/command/cmd_ac.h @@ -41,23 +41,23 @@ void cmd_ac_init(void); void cmd_ac_uninit(void); -char* cmd_ac_complete(ProfWin *window, const char *const input, gboolean previous); -void cmd_ac_reset(ProfWin *window); -gboolean cmd_ac_exists(char *cmd); +char* cmd_ac_complete(ProfWin* window, const char* const input, gboolean previous); +void cmd_ac_reset(ProfWin* window); +gboolean cmd_ac_exists(char* cmd); -void cmd_ac_add(const char *const value); -void cmd_ac_add_help(const char *const value); -void cmd_ac_add_cmd(Command *command); -void cmd_ac_add_alias(ProfAlias *alias); -void cmd_ac_add_alias_value(char *value); +void cmd_ac_add(const char* const value); +void cmd_ac_add_help(const char* const value); +void cmd_ac_add_cmd(Command* command); +void cmd_ac_add_alias(ProfAlias* alias); +void cmd_ac_add_alias_value(char* value); -void cmd_ac_remove(const char *const value); -void cmd_ac_remove_help(const char *const value); -void cmd_ac_remove_alias_value(char *value); +void cmd_ac_remove(const char* const value); +void cmd_ac_remove_help(const char* const value); +void cmd_ac_remove_alias_value(char* value); -void cmd_ac_add_form_fields(DataForm *form); -void cmd_ac_remove_form_fields(DataForm *form); +void cmd_ac_add_form_fields(DataForm* form); +void cmd_ac_remove_form_fields(DataForm* form); -char* cmd_ac_complete_filepath(const char *const input, char *const startstr, gboolean previous); +char* cmd_ac_complete_filepath(const char* const input, char* const startstr, gboolean previous); #endif diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index 48cbc80d..04adb92d 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -82,2482 +82,2394 @@ #include "pgp/gpg.h" #endif -#define CMD_TAG_CHAT "chat" -#define CMD_TAG_GROUPCHAT "groupchat" -#define CMD_TAG_ROSTER "roster" -#define CMD_TAG_PRESENCE "presence" -#define CMD_TAG_CONNECTION "connection" -#define CMD_TAG_DISCOVERY "discovery" -#define CMD_TAG_UI "ui" -#define CMD_TAG_PLUGINS "plugins" - -#define CMD_MAINFUNC(func) func, -#define CMD_NOMAINFUNC NULL, -#define CMD_SUBFUNCS(...) { __VA_ARGS__, { NULL, NULL } }, -#define CMD_NOSUBFUNCS { { NULL, NULL } }, - -#define CMD_NOTAGS { { NULL }, -#define CMD_TAGS(...) { { __VA_ARGS__, NULL }, -#define CMD_SYN(...) { __VA_ARGS__, NULL }, -#define CMD_DESC(desc) desc, -#define CMD_NOARGS { { NULL, NULL } }, -#define CMD_ARGS(...) { __VA_ARGS__, { NULL, NULL } }, -#define CMD_NOEXAMPLES { NULL } } -#define CMD_EXAMPLES(...) { __VA_ARGS__, NULL } } - -GHashTable *commands = NULL; - -static gboolean _cmd_has_tag(Command *pcmd, const char *const tag); +#define CMD_TAG_CHAT "chat" +#define CMD_TAG_GROUPCHAT "groupchat" +#define CMD_TAG_ROSTER "roster" +#define CMD_TAG_PRESENCE "presence" +#define CMD_TAG_CONNECTION "connection" +#define CMD_TAG_DISCOVERY "discovery" +#define CMD_TAG_UI "ui" +#define CMD_TAG_PLUGINS "plugins" + +#define CMD_MAINFUNC(func) func, +#define CMD_NOMAINFUNC NULL, +#define CMD_SUBFUNCS(...) { __VA_ARGS__, { NULL, NULL } }, +#define CMD_NOSUBFUNCS { { NULL, NULL } }, + +#define CMD_NOTAGS \ + { \ + { NULL }, +#define CMD_TAGS(...) \ + { \ + { __VA_ARGS__, NULL }, +#define CMD_SYN(...) { __VA_ARGS__, NULL }, +#define CMD_DESC(desc) desc, +#define CMD_NOARGS { { NULL, NULL } }, +#define CMD_ARGS(...) { __VA_ARGS__, { NULL, NULL } }, +#define CMD_NOEXAMPLES \ + { \ + NULL \ + } \ + } +#define CMD_EXAMPLES(...) \ + { \ + __VA_ARGS__, NULL \ + } \ + } + +GHashTable* commands = NULL; + +static gboolean _cmd_has_tag(Command* pcmd, const char* const tag); /* * Command list */ -static struct cmd_t command_defs[] = -{ +static struct cmd_t command_defs[] = { { "/help", - parse_args_with_freetext, 0, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_help) - CMD_NOTAGS - CMD_SYN( - "/help [<area>|<command>|search_all|search_any] [<search_terms>]") - CMD_DESC( - "Help on using Profanity. Passing no arguments list help areas. " - "For command help, optional arguments are shown using square brackets, " - "arguments representing variables rather than a literal name are surrounded by angle brackets. " - "Arguments that may be one of a number of values are separated by a pipe " - "e.g. val1|val2|val3.") - CMD_ARGS( - { "<area>", "Summary help for commands in a certain area of functionality." }, - { "<command>", "Full help for a specific command, for example '/help connect'." }, - { "search_all <search_terms>", "Search commands for returning matches that contain all of the search terms." }, - { "search_any <search_terms>", "Search commands for returning matches that contain any of the search terms." }) - CMD_EXAMPLES( - "/help search_all presence online", - "/help commands", - "/help presence", - "/help who") - }, + parse_args_with_freetext, 0, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_help) + CMD_NOTAGS + CMD_SYN( + "/help [<area>|<command>|search_all|search_any] [<search_terms>]") + CMD_DESC( + "Help on using Profanity. Passing no arguments list help areas. " + "For command help, optional arguments are shown using square brackets, " + "arguments representing variables rather than a literal name are surrounded by angle brackets. " + "Arguments that may be one of a number of values are separated by a pipe " + "e.g. val1|val2|val3.") + CMD_ARGS( + { "<area>", "Summary help for commands in a certain area of functionality." }, + { "<command>", "Full help for a specific command, for example '/help connect'." }, + { "search_all <search_terms>", "Search commands for returning matches that contain all of the search terms." }, + { "search_any <search_terms>", "Search commands for returning matches that contain any of the search terms." }) + CMD_EXAMPLES( + "/help search_all presence online", + "/help commands", + "/help presence", + "/help who") }, { "/about", - parse_args, 0, 0, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_about) - CMD_NOTAGS - CMD_SYN( - "/about") - CMD_DESC( - "Show version and license information.") - CMD_NOARGS - CMD_NOEXAMPLES - }, + parse_args, 0, 0, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_about) + CMD_NOTAGS + CMD_SYN( + "/about") + CMD_DESC( + "Show version and license information.") + CMD_NOARGS + CMD_NOEXAMPLES }, { "/connect", - parse_args, 0, 7, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_connect) - CMD_TAGS( - CMD_TAG_CONNECTION) - CMD_SYN( - "/connect [<account>]", - "/connect <account> [server <server>] [port <port>] [tls force|allow|trust|legacy|disable] [auth default|legacy]") - CMD_DESC( - "Login to a chat service. " - "If no account is specified, the default is used if one is configured. " - "A local account is created with the JID as it's name if it doesn't already exist.") - CMD_ARGS( - { "<account>", "The local account you wish to connect with, or a JID if connecting for the first time." }, - { "server <server>", "Supply a server if it is different to the domain part of your JID." }, - { "port <port>", "The port to use if different to the default (5222, or 5223 for SSL)." }, - { "tls force", "Force TLS connection, and fail if one cannot be established, this is default behaviour." }, - { "tls allow", "Use TLS for the connection if it is available." }, - { "tls trust", "Force TLS connection and trust server's certificate." }, - { "tls legacy", "Use legacy TLS for the connection. It means server doesn't support STARTTLS and TLS is forced just after TCP connection is established." }, - { "tls disable", "Disable TLS for the connection." }, - { "auth default", "Default authentication process." }, - { "auth legacy", "Allow legacy authentication." }) - CMD_EXAMPLES( - "/connect", - "/connect odin@valhalla.edda", - "/connect odin@valhalla.edda server talk.google.com", - "/connect freyr@vanaheimr.edda port 5678", - "/connect me@localhost.test.org server 127.0.0.1 tls disable", - "/connect me@chatty server chatty.com port 5443") - }, + parse_args, 0, 7, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_connect) + CMD_TAGS( + CMD_TAG_CONNECTION) + CMD_SYN( + "/connect [<account>]", + "/connect <account> [server <server>] [port <port>] [tls force|allow|trust|legacy|disable] [auth default|legacy]") + CMD_DESC( + "Login to a chat service. " + "If no account is specified, the default is used if one is configured. " + "A local account is created with the JID as it's name if it doesn't already exist.") + CMD_ARGS( + { "<account>", "The local account you wish to connect with, or a JID if connecting for the first time." }, + { "server <server>", "Supply a server if it is different to the domain part of your JID." }, + { "port <port>", "The port to use if different to the default (5222, or 5223 for SSL)." }, + { "tls force", "Force TLS connection, and fail if one cannot be established, this is default behaviour." }, + { "tls allow", "Use TLS for the connection if it is available." }, + { "tls trust", "Force TLS connection and trust server's certificate." }, + { "tls legacy", "Use legacy TLS for the connection. It means server doesn't support STARTTLS and TLS is forced just after TCP connection is established." }, + { "tls disable", "Disable TLS for the connection." }, + { "auth default", "Default authentication process." }, + { "auth legacy", "Allow legacy authentication." }) + CMD_EXAMPLES( + "/connect", + "/connect odin@valhalla.edda", + "/connect odin@valhalla.edda server talk.google.com", + "/connect freyr@vanaheimr.edda port 5678", + "/connect me@localhost.test.org server 127.0.0.1 tls disable", + "/connect me@chatty server chatty.com port 5443") }, { "/tls", - parse_args, 1, 3, NULL, - CMD_SUBFUNCS( - { "certpath", cmd_tls_certpath }, - { "trust", cmd_tls_trust }, - { "trusted", cmd_tls_trusted }, - { "revoke", cmd_tls_revoke }, - { "cert", cmd_tls_cert }) - CMD_NOMAINFUNC - CMD_TAGS( - CMD_TAG_CONNECTION, - CMD_TAG_UI) - CMD_SYN( - "/tls allow", - "/tls always", - "/tls deny", - "/tls cert [<fingerprint>]", - "/tls trust", - "/tls trusted", - "/tls revoke <fingerprint>", - "/tls certpath", - "/tls certpath set <path>", - "/tls certpath clear", - "/tls certpath default") - CMD_DESC( - "Handle TLS certificates. ") - CMD_ARGS( - { "allow", "Allow connection to continue with TLS certificate." }, - { "always", "Always allow connections with TLS certificate." }, - { "deny", "Abort connection." }, - { "cert", "Show the current TLS certificate." }, - { "cert <fingerprint>", "Show details of trusted certificate." }, - { "trust", "Add the current TLS certificate to manually trusted certificates." }, - { "trusted", "List summary of manually trusted certificates (with '/tls always' or '/tls trust')." }, - { "revoke <fingerprint>", "Remove a manually trusted certificate." }, - { "certpath", "Show the trusted certificate path." }, - { "certpath set <path>", "Specify filesystem path containing trusted certificates." }, - { "certpath clear", "Clear the trusted certificate path." }, - { "certpath default", "Use default system certificate path, if it can be found." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 3, NULL, + CMD_SUBFUNCS( + { "certpath", cmd_tls_certpath }, + { "trust", cmd_tls_trust }, + { "trusted", cmd_tls_trusted }, + { "revoke", cmd_tls_revoke }, + { "cert", cmd_tls_cert }) + CMD_NOMAINFUNC + CMD_TAGS( + CMD_TAG_CONNECTION, + CMD_TAG_UI) + CMD_SYN( + "/tls allow", + "/tls always", + "/tls deny", + "/tls cert [<fingerprint>]", + "/tls trust", + "/tls trusted", + "/tls revoke <fingerprint>", + "/tls certpath", + "/tls certpath set <path>", + "/tls certpath clear", + "/tls certpath default") + CMD_DESC( + "Handle TLS certificates. ") + CMD_ARGS( + { "allow", "Allow connection to continue with TLS certificate." }, + { "always", "Always allow connections with TLS certificate." }, + { "deny", "Abort connection." }, + { "cert", "Show the current TLS certificate." }, + { "cert <fingerprint>", "Show details of trusted certificate." }, + { "trust", "Add the current TLS certificate to manually trusted certificates." }, + { "trusted", "List summary of manually trusted certificates (with '/tls always' or '/tls trust')." }, + { "revoke <fingerprint>", "Remove a manually trusted certificate." }, + { "certpath", "Show the trusted certificate path." }, + { "certpath set <path>", "Specify filesystem path containing trusted certificates." }, + { "certpath clear", "Clear the trusted certificate path." }, + { "certpath default", "Use default system certificate path, if it can be found." }) + CMD_NOEXAMPLES }, { "/disconnect", - parse_args, 0, 0, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_disconnect) - CMD_TAGS( - CMD_TAG_CONNECTION) - CMD_SYN( - "/disconnect") - CMD_DESC( - "Disconnect from the current chat service.") - CMD_NOARGS - CMD_NOEXAMPLES - }, + parse_args, 0, 0, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_disconnect) + CMD_TAGS( + CMD_TAG_CONNECTION) + CMD_SYN( + "/disconnect") + CMD_DESC( + "Disconnect from the current chat service.") + CMD_NOARGS + CMD_NOEXAMPLES }, { "/msg", - parse_args_with_freetext, 1, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_msg) - CMD_TAGS( - CMD_TAG_CHAT) - CMD_SYN( - "/msg <contact> [<message>]", - "/msg <nick> [<message>]") - CMD_DESC( - "Send a one to one chat message, or a private message to a chat room occupant. " - "If the message is omitted, a new chat window will be opened without sending a message. " - "Use quotes if the nickname includes spaces.") - CMD_ARGS( - { "<contact>", "Open chat window with contact, by JID or nickname." }, - { "<contact> [<message>]", "Send message to contact, by JID or nickname." }, - { "<nick>", "Open private chat window with chat room occupant." }, - { "<nick> [<message>]", "Send a private message to a chat room occupant." }) - CMD_EXAMPLES( - "/msg thor@valhalla.edda Hey, here's a message!", - "/msg heimdall@valhalla.edda", - "/msg Thor Here is a private message", - "/msg \"My Friend\" Hi, how are you?") - }, + parse_args_with_freetext, 1, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_msg) + CMD_TAGS( + CMD_TAG_CHAT) + CMD_SYN( + "/msg <contact> [<message>]", + "/msg <nick> [<message>]") + CMD_DESC( + "Send a one to one chat message, or a private message to a chat room occupant. " + "If the message is omitted, a new chat window will be opened without sending a message. " + "Use quotes if the nickname includes spaces.") + CMD_ARGS( + { "<contact>", "Open chat window with contact, by JID or nickname." }, + { "<contact> [<message>]", "Send message to contact, by JID or nickname." }, + { "<nick>", "Open private chat window with chat room occupant." }, + { "<nick> [<message>]", "Send a private message to a chat room occupant." }) + CMD_EXAMPLES( + "/msg thor@valhalla.edda Hey, here's a message!", + "/msg heimdall@valhalla.edda", + "/msg Thor Here is a private message", + "/msg \"My Friend\" Hi, how are you?") }, { "/roster", - parse_args_with_freetext, 0, 4, NULL, - CMD_SUBFUNCS( - { "group", cmd_group }) - CMD_MAINFUNC(cmd_roster) - CMD_TAGS( - CMD_TAG_ROSTER, - CMD_TAG_UI) - CMD_SYN( - "/roster", - "/roster online", - "/roster show [offline|resource|presence|status|empty|priority|contacts|rooms]", - "/roster hide [offline|resource|presence|status|empty|priority|contacts|rooms]", - "/roster by group|presence|none", - "/roster count unread|items|off", - "/roster count zero on|off", - "/roster color on|off", - "/roster order name|presence", - "/roster unread before|after|off", - "/roster room char <char>|none", - "/roster room private char <char>|none", - "/roster room position first|last", - "/roster room by service|none", - "/roster room order name|unread", - "/roster room unread before|after|off", - "/roster room show server", - "/roster room hide server", - "/roster room use name|jid", - "/roster private room|group|off", - "/roster private char <char>|none", - "/roster header char <char>|none", - "/roster presence indent <indent>", - "/roster contact char <char>|none", - "/roster contact indent <indent>", - "/roster resource char <char>|none", - "/roster resource indent <indent>", - "/roster resource join on|off", - "/roster size <percent>", - "/roster wrap on|off", - "/roster add <jid> [<nick>]", - "/roster remove <jid>", - "/roster remove_all contacts", - "/roster nick <jid> <nick>", - "/roster clearnick <jid>", - "/roster group", - "/roster group show <group>", - "/roster group add <group> <contat>", - "/roster group remove <group> <contact>") - CMD_DESC( - "Manage your roster, and roster display settings. " - "Passing no arguments lists all contacts in your roster.") - CMD_ARGS( - { "online", "Show all online contacts in console." }, - { "show", "Show the roster panel." }, - { "show offline", "Show offline contacts in roster panel." }, - { "show resource", "Show contact's connected resources in roster panel." }, - { "show presence", "Show contact's presence in roster panel." }, - { "show status", "Show contact's status message in roster panel." }, - { "show empty", "Show empty groups in roster panel." }, - { "show priority", "Show resource priority in roster panel." }, - { "show contacts", "Show contacts in roster panel." }, - { "show rooms", "Show chat rooms in roster panel." }, - { "hide", "Hide the roster panel." }, - { "hide offline", "Hide offline contacts in roster panel." }, - { "hide resource", "Hide contact's connected resources in roster panel." }, - { "hide presence", "Hide contact's presence in roster panel." }, - { "hide status", "Hide contact's status message in roster panel." }, - { "hide empty", "Hide empty groups in roster panel." }, - { "hide priority", "Hide resource priority in roster panel." }, - { "hide contacts", "Hide contacts in roster panel." }, - { "hide rooms", "Hide chat rooms in roster panel." }, - { "by group", "Group contacts in roster panel by roster group." }, - { "by presence", "Group contacts in roster panel by presence." }, - { "by none", "No grouping in roster panel." }, - { "count unread", "Show unread message count with roster headers." }, - { "count items", "Show item count with roster headers." }, - { "count off", "Do not show any count with roster headers." }, - { "count zero on", "Show roster header count when 0." }, - { "count zero off", "Hide roster header count when 0." }, - { "color on", "Enable generated color names (XEP-0392)" }, - { "color off", "Disable generated color names (XEP-0392)" }, - { "order name", "Order roster contacts by name only." }, - { "order presence", "Order roster contacts by presence, and then by name." }, - { "unread before", "Show unread message count before contact." }, - { "unread after", "Show unread message count after contact." }, - { "unread off", "Do not show unread message count for contacts." }, - { "room char <char>", "Prefix rooms with specified character." }, - { "room char none", "Remove room character prefix." }, - { "room private char <char>", "Prefix private room chat with specified character when displayed with room." }, - { "room private char none", "Remove private room chat character prefix when displayed with room." }, - { "room position first", "Show rooms first in roster." }, - { "room position last", "Show rooms last in roster." }, - { "room by service", "Group rooms by chat service." }, - { "room by none", "Do not group rooms." }, - { "room order name", "Order rooms by name." }, - { "room order unread", "Order rooms by unread messages, and then by name." }, - { "room unread before", "Show unread message count before room." }, - { "room unread after", "Show unread message count after room." }, - { "room unread off", "Do not show unread message count for rooms." }, - { "room show server", "Show the conference server with room JIDs." }, - { "room hide server", "Do not show the conference server with room JIDs." }, - { "room use name", "Use the MUC name as room name." }, - { "room use jid", "Use the JID as room name." }, - { "private room", "Show room private chats with the room." }, - { "private group", "Show room private chats as a separate roster group." }, - { "private off", "Do not show room private chats." }, - { "private char <char>", "Prefix private room chats with specified character when displayed in separate group." }, - { "private char none", "Remove private room chat character prefix." }, - { "header char <char>", "Prefix roster headers with specified character." }, - { "header char none", "Remove roster header character prefix." }, - { "contact char <char>", "Prefix roster contacts with specified character." }, - { "contact char none", "Remove roster contact character prefix." }, - { "contact indent <indent>", "Indent contact line by <indent> spaces (0 to 10)." }, - { "resource char <char>", "Prefix roster resources with specified character." }, - { "resource char none", "Remove roster resource character prefix." }, - { "resource indent <indent>", "Indent resource line by <indent> spaces (0 to 10)." }, - { "resource join on|off", "Join resource with previous line when only one available resource." }, - { "presence indent <indent>", "Indent presence line by <indent> spaces (-1 to 10), a value of -1 will show presence on the previous line." }, - { "size <percent>", "Percentage of the screen taken up by the roster (1-99)." }, - { "wrap on|off", "Enable or disable line wrapping in roster panel." }, - { "add <jid> [<nick>]", "Add a new item to the roster." }, - { "remove <jid>", "Removes an item from the roster." }, - { "remove_all contacts", "Remove all items from roster." }, - { "nick <jid> <nick>", "Change a contacts nickname." }, - { "clearnick <jid>", "Removes the current nickname." }, - { "group show <group>", "List all roster items in a group." }, - { "group add <group> <contact>", "Add a contact to a group." }, - { "group remove <group> <contact>", "Remove a contact from a group." }) - CMD_EXAMPLES( - "/roster", - "/roster add odin@valhalla.edda", - "/roster add odin@valhalla.edda Allfather", - "/roster remove loki@ownserver.org", - "/roster nick odin@valhalla.edda \"All Father\"", - "/roster clearnick thor@valhalla.edda", - "/roster size 15", - "/roster group", - "/roster group show friends", - "/roster group add friends fenris@ownserver.org", - "/roster group add family Brother", - "/roster group remove colleagues boss@work.com") - }, + parse_args_with_freetext, 0, 4, NULL, + CMD_SUBFUNCS( + { "group", cmd_group }) + CMD_MAINFUNC(cmd_roster) + CMD_TAGS( + CMD_TAG_ROSTER, + CMD_TAG_UI) + CMD_SYN( + "/roster", + "/roster online", + "/roster show [offline|resource|presence|status|empty|priority|contacts|rooms]", + "/roster hide [offline|resource|presence|status|empty|priority|contacts|rooms]", + "/roster by group|presence|none", + "/roster count unread|items|off", + "/roster count zero on|off", + "/roster color on|off", + "/roster order name|presence", + "/roster unread before|after|off", + "/roster room char <char>|none", + "/roster room private char <char>|none", + "/roster room position first|last", + "/roster room by service|none", + "/roster room order name|unread", + "/roster room unread before|after|off", + "/roster room show server", + "/roster room hide server", + "/roster room use name|jid", + "/roster private room|group|off", + "/roster private char <char>|none", + "/roster header char <char>|none", + "/roster presence indent <indent>", + "/roster contact char <char>|none", + "/roster contact indent <indent>", + "/roster resource char <char>|none", + "/roster resource indent <indent>", + "/roster resource join on|off", + "/roster size <percent>", + "/roster wrap on|off", + "/roster add <jid> [<nick>]", + "/roster remove <jid>", + "/roster remove_all contacts", + "/roster nick <jid> <nick>", + "/roster clearnick <jid>", + "/roster group", + "/roster group show <group>", + "/roster group add <group> <contat>", + "/roster group remove <group> <contact>") + CMD_DESC( + "Manage your roster, and roster display settings. " + "Passing no arguments lists all contacts in your roster.") + CMD_ARGS( + { "online", "Show all online contacts in console." }, + { "show", "Show the roster panel." }, + { "show offline", "Show offline contacts in roster panel." }, + { "show resource", "Show contact's connected resources in roster panel." }, + { "show presence", "Show contact's presence in roster panel." }, + { "show status", "Show contact's status message in roster panel." }, + { "show empty", "Show empty groups in roster panel." }, + { "show priority", "Show resource priority in roster panel." }, + { "show contacts", "Show contacts in roster panel." }, + { "show rooms", "Show chat rooms in roster panel." }, + { "hide", "Hide the roster panel." }, + { "hide offline", "Hide offline contacts in roster panel." }, + { "hide resource", "Hide contact's connected resources in roster panel." }, + { "hide presence", "Hide contact's presence in roster panel." }, + { "hide status", "Hide contact's status message in roster panel." }, + { "hide empty", "Hide empty groups in roster panel." }, + { "hide priority", "Hide resource priority in roster panel." }, + { "hide contacts", "Hide contacts in roster panel." }, + { "hide rooms", "Hide chat rooms in roster panel." }, + { "by group", "Group contacts in roster panel by roster group." }, + { "by presence", "Group contacts in roster panel by presence." }, + { "by none", "No grouping in roster panel." }, + { "count unread", "Show unread message count with roster headers." }, + { "count items", "Show item count with roster headers." }, + { "count off", "Do not show any count with roster headers." }, + { "count zero on", "Show roster header count when 0." }, + { "count zero off", "Hide roster header count when 0." }, + { "color on", "Enable generated color names (XEP-0392)" }, + { "color off", "Disable generated color names (XEP-0392)" }, + { "order name", "Order roster contacts by name only." }, + { "order presence", "Order roster contacts by presence, and then by name." }, + { "unread before", "Show unread message count before contact." }, + { "unread after", "Show unread message count after contact." }, + { "unread off", "Do not show unread message count for contacts." }, + { "room char <char>", "Prefix rooms with specified character." }, + { "room char none", "Remove room character prefix." }, + { "room private char <char>", "Prefix private room chat with specified character when displayed with room." }, + { "room private char none", "Remove private room chat character prefix when displayed with room." }, + { "room position first", "Show rooms first in roster." }, + { "room position last", "Show rooms last in roster." }, + { "room by service", "Group rooms by chat service." }, + { "room by none", "Do not group rooms." }, + { "room order name", "Order rooms by name." }, + { "room order unread", "Order rooms by unread messages, and then by name." }, + { "room unread before", "Show unread message count before room." }, + { "room unread after", "Show unread message count after room." }, + { "room unread off", "Do not show unread message count for rooms." }, + { "room show server", "Show the conference server with room JIDs." }, + { "room hide server", "Do not show the conference server with room JIDs." }, + { "room use name", "Use the MUC name as room name." }, + { "room use jid", "Use the JID as room name." }, + { "private room", "Show room private chats with the room." }, + { "private group", "Show room private chats as a separate roster group." }, + { "private off", "Do not show room private chats." }, + { "private char <char>", "Prefix private room chats with specified character when displayed in separate group." }, + { "private char none", "Remove private room chat character prefix." }, + { "header char <char>", "Prefix roster headers with specified character." }, + { "header char none", "Remove roster header character prefix." }, + { "contact char <char>", "Prefix roster contacts with specified character." }, + { "contact char none", "Remove roster contact character prefix." }, + { "contact indent <indent>", "Indent contact line by <indent> spaces (0 to 10)." }, + { "resource char <char>", "Prefix roster resources with specified character." }, + { "resource char none", "Remove roster resource character prefix." }, + { "resource indent <indent>", "Indent resource line by <indent> spaces (0 to 10)." }, + { "resource join on|off", "Join resource with previous line when only one available resource." }, + { "presence indent <indent>", "Indent presence line by <indent> spaces (-1 to 10), a value of -1 will show presence on the previous line." }, + { "size <percent>", "Percentage of the screen taken up by the roster (1-99)." }, + { "wrap on|off", "Enable or disable line wrapping in roster panel." }, + { "add <jid> [<nick>]", "Add a new item to the roster." }, + { "remove <jid>", "Removes an item from the roster." }, + { "remove_all contacts", "Remove all items from roster." }, + { "nick <jid> <nick>", "Change a contacts nickname." }, + { "clearnick <jid>", "Removes the current nickname." }, + { "group show <group>", "List all roster items in a group." }, + { "group add <group> <contact>", "Add a contact to a group." }, + { "group remove <group> <contact>", "Remove a contact from a group." }) + CMD_EXAMPLES( + "/roster", + "/roster add odin@valhalla.edda", + "/roster add odin@valhalla.edda Allfather", + "/roster remove loki@ownserver.org", + "/roster nick odin@valhalla.edda \"All Father\"", + "/roster clearnick thor@valhalla.edda", + "/roster size 15", + "/roster group", + "/roster group show friends", + "/roster group add friends fenris@ownserver.org", + "/roster group add family Brother", + "/roster group remove colleagues boss@work.com") }, { "/blocked", - parse_args, 0, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_blocked) - CMD_TAGS( - CMD_TAG_ROSTER, - CMD_TAG_CHAT) - CMD_SYN( - "/blocked", - "/blocked add [<jid>]", - "/blocked remove <jid>") - CMD_DESC( - "Manage blocked users (XEP-0191), calling with no arguments shows the current list of blocked users. " - "To blog a certain user in a MUC use the following as jid: room@conference.example.org/spammy-user") - CMD_ARGS( - { "add [<jid>]", "Block the specified Jabber ID. If in a chat window and no jid is specified, the current recipient will be blocked." }, - { "remove <jid>", "Remove the specified Jabber ID from the blocked list." }) - CMD_EXAMPLES( - "/blocked add hel@helheim.edda", - "/blocked add profanity@rooms.dismail.de/spammy-user") - }, + parse_args, 0, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_blocked) + CMD_TAGS( + CMD_TAG_ROSTER, + CMD_TAG_CHAT) + CMD_SYN( + "/blocked", + "/blocked add [<jid>]", + "/blocked remove <jid>") + CMD_DESC( + "Manage blocked users (XEP-0191), calling with no arguments shows the current list of blocked users. " + "To blog a certain user in a MUC use the following as jid: room@conference.example.org/spammy-user") + CMD_ARGS( + { "add [<jid>]", "Block the specified Jabber ID. If in a chat window and no jid is specified, the current recipient will be blocked." }, + { "remove <jid>", "Remove the specified Jabber ID from the blocked list." }) + CMD_EXAMPLES( + "/blocked add hel@helheim.edda", + "/blocked add profanity@rooms.dismail.de/spammy-user") }, { "/info", - parse_args, 0, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_info) - CMD_TAGS( - CMD_TAG_ROSTER, - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/info", - "/info <contact>|<nick>") - CMD_DESC( - "Show information about a contact, room, or room member. " - "Passing no argument in a chat window will use the current recipient. " - "Passing no argument in a chat room will display information about the room.") - CMD_ARGS( - { "<contact>", "The contact you wish to view information about." }, - { "<nick>", "When in a chat room, the occupant you wish to view information about." }) - CMD_EXAMPLES( - "/info thor@aasgard.server.org", - "/info heimdall") - }, + parse_args, 0, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_info) + CMD_TAGS( + CMD_TAG_ROSTER, + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/info", + "/info <contact>|<nick>") + CMD_DESC( + "Show information about a contact, room, or room member. " + "Passing no argument in a chat window will use the current recipient. " + "Passing no argument in a chat room will display information about the room.") + CMD_ARGS( + { "<contact>", "The contact you wish to view information about." }, + { "<nick>", "When in a chat room, the occupant you wish to view information about." }) + CMD_EXAMPLES( + "/info thor@aasgard.server.org", + "/info heimdall") }, { "/caps", - parse_args, 0, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_caps) - CMD_TAGS( - CMD_TAG_DISCOVERY, - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/caps", - "/caps <fulljid>|<nick>") - CMD_DESC( - "Find out a contacts, or room members client software capabilities. " - "If in private chat initiated from a chat room, no parameter is required.") - CMD_ARGS( - { "<fulljid>", "If in the console or a chat window, the full JID for which you wish to see capabilities." }, - { "<nick>", "If in a chat room, nickname for which you wish to see capabilities." }) - CMD_EXAMPLES( - "/caps ran@cold.sea.org/laptop", - "/caps ran@cold.sea.org/phone", - "/caps aegir") - }, + parse_args, 0, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_caps) + CMD_TAGS( + CMD_TAG_DISCOVERY, + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/caps", + "/caps <fulljid>|<nick>") + CMD_DESC( + "Find out a contacts, or room members client software capabilities. " + "If in private chat initiated from a chat room, no parameter is required.") + CMD_ARGS( + { "<fulljid>", "If in the console or a chat window, the full JID for which you wish to see capabilities." }, + { "<nick>", "If in a chat room, nickname for which you wish to see capabilities." }) + CMD_EXAMPLES( + "/caps ran@cold.sea.org/laptop", + "/caps ran@cold.sea.org/phone", + "/caps aegir") }, { "/software", - parse_args, 0, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_software) - CMD_TAGS( - CMD_TAG_DISCOVERY, - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/software", - "/software <fulljid>|<nick>") - CMD_DESC( - "Find out a contact, or room members software version information. " - "If in private chat initiated from a chat room, no parameter is required. " - "If the contact's software does not support software version requests, nothing will be displayed.") - CMD_ARGS( - { "<fulljid>", "If in the console or a chat window, the full JID for which you wish to see software information." }, - { "<nick>", "If in a chat room, nickname for which you wish to see software information." }) - CMD_EXAMPLES( - "/software odin@valhalla.edda/laptop", - "/software odin@valhalla.edda/phone", - "/software thor") - }, + parse_args, 0, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_software) + CMD_TAGS( + CMD_TAG_DISCOVERY, + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/software", + "/software <fulljid>|<nick>") + CMD_DESC( + "Find out a contact, or room members software version information. " + "If in private chat initiated from a chat room, no parameter is required. " + "If the contact's software does not support software version requests, nothing will be displayed.") + CMD_ARGS( + { "<fulljid>", "If in the console or a chat window, the full JID for which you wish to see software information." }, + { "<nick>", "If in a chat room, nickname for which you wish to see software information." }) + CMD_EXAMPLES( + "/software odin@valhalla.edda/laptop", + "/software odin@valhalla.edda/phone", + "/software thor") }, { "/status", - parse_args, 2, 3, NULL, - CMD_SUBFUNCS( - { "get", cmd_status_get }, - { "set", cmd_status_set }) - CMD_NOMAINFUNC - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/status set <state> [\"<message>\"]", - "/status get <contact>|<nick>") - CMD_DESC( - "/status get: Find out a contact, or room members presence information. " - "/status set: set own status.") - CMD_ARGS( - { "<state>", "Own status. Possible values: chat, online, away, dnd, xa" }, - { "<message>", "Optional message to use with the status. Needs quotation marks if it's more than one word." }, - { "<contact>", "The contact who's presence you which to see." }, - { "<nick>", "If in a chat room, the occupant who's presence you wish to see." }) - CMD_EXAMPLES( - "/status get odin@valhalla.edda", - "/status get jon", - "/status set online") - }, + parse_args, 2, 3, NULL, + CMD_SUBFUNCS( + { "get", cmd_status_get }, + { "set", cmd_status_set }) + CMD_NOMAINFUNC + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/status set <state> [\"<message>\"]", + "/status get <contact>|<nick>") + CMD_DESC( + "/status get: Find out a contact, or room members presence information. " + "/status set: set own status.") + CMD_ARGS( + { "<state>", "Own status. Possible values: chat, online, away, dnd, xa" }, + { "<message>", "Optional message to use with the status. Needs quotation marks if it's more than one word." }, + { "<contact>", "The contact who's presence you which to see." }, + { "<nick>", "If in a chat room, the occupant who's presence you wish to see." }) + CMD_EXAMPLES( + "/status get odin@valhalla.edda", + "/status get jon", + "/status set online") }, { "/resource", - parse_args, 1, 2, &cons_resource_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_resource) - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_UI) - CMD_SYN( - "/resource set <resource>", - "/resource off", - "/resource title on|off", - "/resource message on|off") - CMD_DESC( - "Override chat session resource, and manage resource display settings.") - CMD_ARGS( - { "set <resource>", "Set the resource to which messages will be sent." }, - { "off", "Let the server choose which resource to route messages to." }, - { "title on|off", "Show or hide the current resource in the titlebar." }, - { "message on|off", "Show or hide the resource when showing an incoming message." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 2, &cons_resource_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_resource) + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_UI) + CMD_SYN( + "/resource set <resource>", + "/resource off", + "/resource title on|off", + "/resource message on|off") + CMD_DESC( + "Override chat session resource, and manage resource display settings.") + CMD_ARGS( + { "set <resource>", "Set the resource to which messages will be sent." }, + { "off", "Let the server choose which resource to route messages to." }, + { "title on|off", "Show or hide the current resource in the titlebar." }, + { "message on|off", "Show or hide the resource when showing an incoming message." }) + CMD_NOEXAMPLES }, { "/join", - parse_args, 0, 5, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_join) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/join", - "/join <room> [nick <nick>] [password <password>]") - CMD_DESC( - "Join a chat room at the conference server. " - "If no room is supplied, a generated name will be used with the format private-chat-[UUID]. " - "If the domain part is not included in the room name, the account preference 'muc.service' will be used. " - "If no nickname is specified the account preference 'muc.nick' will be used which by default is the localpart of your JID. " - "If the room doesn't exist, and the server allows it, a new one will be created.") - CMD_ARGS( - { "<room>", "The chat room to join." }, - { "nick <nick>", "Nickname to use in the room." }, - { "password <password>", "Password if the room requires one." }) - CMD_EXAMPLES( - "/join", - "/join profanity@rooms.dismail.de", - "/join profanity@rooms.dismail.de nick mynick", - "/join private@conference.jabber.org nick mynick password mypassword", - "/join mychannel") - }, + parse_args, 0, 5, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_join) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/join", + "/join <room> [nick <nick>] [password <password>]") + CMD_DESC( + "Join a chat room at the conference server. " + "If no room is supplied, a generated name will be used with the format private-chat-[UUID]. " + "If the domain part is not included in the room name, the account preference 'muc.service' will be used. " + "If no nickname is specified the account preference 'muc.nick' will be used which by default is the localpart of your JID. " + "If the room doesn't exist, and the server allows it, a new one will be created.") + CMD_ARGS( + { "<room>", "The chat room to join." }, + { "nick <nick>", "Nickname to use in the room." }, + { "password <password>", "Password if the room requires one." }) + CMD_EXAMPLES( + "/join", + "/join profanity@rooms.dismail.de", + "/join profanity@rooms.dismail.de nick mynick", + "/join private@conference.jabber.org nick mynick password mypassword", + "/join mychannel") }, { "/invite", - parse_args_with_freetext, 1, 3, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_invite) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/invite send <contact> [<message>]", - "/invite list", - "/invite decline") - CMD_DESC( - "Manage room invites. " - "Send an invite to a contact for the current chat room. " - "List received invites. " - "Decline them using /invite decline and accept them using /join.") - CMD_ARGS( - { "send <contact> [<message>]", "The contact you wish to invite. And an optional message." }, - { "list", "Show all rooms that you have been invited to, and not accepted or declined."}, - { "decline <room>", "Decline a chat room invitation."}) - CMD_EXAMPLES( - "/invite send gustavo@pollos.tx", - "/invite decline profanity@rooms.dismail.de", - "/invite list") - }, + parse_args_with_freetext, 1, 3, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_invite) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/invite send <contact> [<message>]", + "/invite list", + "/invite decline") + CMD_DESC( + "Manage room invites. " + "Send an invite to a contact for the current chat room. " + "List received invites. " + "Decline them using /invite decline and accept them using /join.") + CMD_ARGS( + { "send <contact> [<message>]", "The contact you wish to invite. And an optional message." }, + { "list", "Show all rooms that you have been invited to, and not accepted or declined." }, + { "decline <room>", "Decline a chat room invitation." }) + CMD_EXAMPLES( + "/invite send gustavo@pollos.tx", + "/invite decline profanity@rooms.dismail.de", + "/invite list") }, { "/room", - parse_args, 1, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_room) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/room accept|destroy|config") - CMD_DESC( - "Chat room configuration.") - CMD_ARGS( - { "accept", "Accept default room configuration." }, - { "destroy", "Reject default room configuration, and destroy the room." }, - { "config", "Edit room configuration." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_room) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/room accept|destroy|config") + CMD_DESC( + "Chat room configuration.") + CMD_ARGS( + { "accept", "Accept default room configuration." }, + { "destroy", "Reject default room configuration, and destroy the room." }, + { "config", "Edit room configuration." }) + CMD_NOEXAMPLES }, { "/kick", - parse_args_with_freetext, 1, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_kick) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/kick <nick> [<reason>]") - CMD_DESC( - "Kick occupant from chat room.") - CMD_ARGS( - { "<nick>", "Nickname of the occupant to kick from the room." }, - { "<reason>", "Optional reason for kicking the occupant." }) - CMD_NOEXAMPLES - }, + parse_args_with_freetext, 1, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_kick) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/kick <nick> [<reason>]") + CMD_DESC( + "Kick occupant from chat room.") + CMD_ARGS( + { "<nick>", "Nickname of the occupant to kick from the room." }, + { "<reason>", "Optional reason for kicking the occupant." }) + CMD_NOEXAMPLES }, { "/ban", - parse_args_with_freetext, 1, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_ban) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/ban <jid> [<reason>]") - CMD_DESC( - "Ban user from chat room.") - CMD_ARGS( - { "<jid>", "Bare JID of the user to ban from the room." }, - { "<reason>", "Optional reason for banning the user." }) - CMD_NOEXAMPLES - }, + parse_args_with_freetext, 1, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_ban) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/ban <jid> [<reason>]") + CMD_DESC( + "Ban user from chat room.") + CMD_ARGS( + { "<jid>", "Bare JID of the user to ban from the room." }, + { "<reason>", "Optional reason for banning the user." }) + CMD_NOEXAMPLES }, { "/subject", - parse_args_with_freetext, 0, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_subject) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/subject set <subject>", - "/subject edit <subject>", - "/subject prepend <text>", - "/subject append <text>", - "/subject clear") - CMD_DESC( - "Set, modify, or clear room subject.") - CMD_ARGS( - { "set <subject>", "Set the room subject." }, - { "edit <subject>", "Edit the current room subject, tab autocompletion will display the subject to edit." }, - { "prepend <text>", "Prepend text to the current room subject, use double quotes if a trailing space is needed." }, - { "append <text>", "Append text to the current room subject, use double quotes if a preceding space is needed." }, - { "clear", "Clear the room subject." }) - CMD_NOEXAMPLES - }, + parse_args_with_freetext, 0, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_subject) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/subject set <subject>", + "/subject edit <subject>", + "/subject prepend <text>", + "/subject append <text>", + "/subject clear") + CMD_DESC( + "Set, modify, or clear room subject.") + CMD_ARGS( + { "set <subject>", "Set the room subject." }, + { "edit <subject>", "Edit the current room subject, tab autocompletion will display the subject to edit." }, + { "prepend <text>", "Prepend text to the current room subject, use double quotes if a trailing space is needed." }, + { "append <text>", "Append text to the current room subject, use double quotes if a preceding space is needed." }, + { "clear", "Clear the room subject." }) + CMD_NOEXAMPLES }, { "/affiliation", - parse_args_with_freetext, 1, 4, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_affiliation) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/affiliation set <affiliation> <jid> [<reason>]", - "/affiliation list [<affiliation>]") - CMD_DESC( - "Manage room affiliations. " - "Affiliation may be one of owner, admin, member, outcast or none.") - CMD_ARGS( - { "set <affiliation> <jid> [<reason>]", "Set the affiliation of user with jid, with an optional reason." }, - { "list [<affiliation>]", "List all users with the specified affiliation, or all if none specified." }) - CMD_NOEXAMPLES - }, + parse_args_with_freetext, 1, 4, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_affiliation) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/affiliation set <affiliation> <jid> [<reason>]", + "/affiliation list [<affiliation>]") + CMD_DESC( + "Manage room affiliations. " + "Affiliation may be one of owner, admin, member, outcast or none.") + CMD_ARGS( + { "set <affiliation> <jid> [<reason>]", "Set the affiliation of user with jid, with an optional reason." }, + { "list [<affiliation>]", "List all users with the specified affiliation, or all if none specified." }) + CMD_NOEXAMPLES }, { "/role", - parse_args_with_freetext, 1, 4, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_role) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/role set <role> <nick> [<reason>]", - "/role list [<role>]") - CMD_DESC( - "Manage room roles. " - "Role may be one of moderator, participant, visitor or none.") - CMD_ARGS( - { "set <role> <nick> [<reason>]", "Set the role of occupant with nick, with an optional reason." }, - { "list [<role>]", "List all occupants with the specified role, or all if none specified." }) - CMD_NOEXAMPLES - }, + parse_args_with_freetext, 1, 4, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_role) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/role set <role> <nick> [<reason>]", + "/role list [<role>]") + CMD_DESC( + "Manage room roles. " + "Role may be one of moderator, participant, visitor or none.") + CMD_ARGS( + { "set <role> <nick> [<reason>]", "Set the role of occupant with nick, with an optional reason." }, + { "list [<role>]", "List all occupants with the specified role, or all if none specified." }) + CMD_NOEXAMPLES }, { "/occupants", - parse_args, 1, 3, cons_occupants_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_occupants) - CMD_TAGS( - CMD_TAG_GROUPCHAT, - CMD_TAG_UI) - CMD_SYN( - "/occupants show|hide [jid]", - "/occupants char <char>|none", - "/occupants color on|off", - "/occupants default show|hide [jid]", - "/occupants size [<percent>]", - "/occupants indent <indent>", - "/occupants header char <char>|none", - "/occupants wrap on|off") - CMD_DESC( - "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." }, - { "color on", "Enable generated color names (XEP-0392) for occupants" }, - { "color off", "Disable generated color names (XEP-0392) for occupants" }, - { "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." }, - { "default show|hide", "Whether occupants are shown by default in new rooms." }, - { "default show|hide jid", "Whether occupants jids are shown by default in new rooms." }, - { "size <percent>", "Percentage of the screen taken by the occupants list in rooms (1-99)." }, - { "indent <indent>", "Indent contact line by <indent> spaces (0 to 10)." }, - { "header char <char>", "Prefix occupants headers with specified character." }, - { "header char none", "Remove occupants header character prefix." }, - { "wrap on|off", "Enable or disable line wrapping in occupants panel." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 3, cons_occupants_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_occupants) + CMD_TAGS( + CMD_TAG_GROUPCHAT, + CMD_TAG_UI) + CMD_SYN( + "/occupants show|hide [jid]", + "/occupants char <char>|none", + "/occupants color on|off", + "/occupants default show|hide [jid]", + "/occupants size [<percent>]", + "/occupants indent <indent>", + "/occupants header char <char>|none", + "/occupants wrap on|off") + CMD_DESC( + "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." }, + { "color on", "Enable generated color names (XEP-0392) for occupants" }, + { "color off", "Disable generated color names (XEP-0392) for occupants" }, + { "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." }, + { "default show|hide", "Whether occupants are shown by default in new rooms." }, + { "default show|hide jid", "Whether occupants jids are shown by default in new rooms." }, + { "size <percent>", "Percentage of the screen taken by the occupants list in rooms (1-99)." }, + { "indent <indent>", "Indent contact line by <indent> spaces (0 to 10)." }, + { "header char <char>", "Prefix occupants headers with specified character." }, + { "header char none", "Remove occupants header character prefix." }, + { "wrap on|off", "Enable or disable line wrapping in occupants panel." }) + CMD_NOEXAMPLES }, { "/form", - parse_args, 1, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_form) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/form show", - "/form submit", - "/form cancel", - "/form help [<tag>]") - CMD_DESC( - "Form configuration.") - CMD_ARGS( - { "show", "Show the current form." }, - { "submit", "Submit the current form." }, - { "cancel", "Cancel changes to the current form." }, - { "help [<tag>]", "Display help for form, or a specific field." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_form) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/form show", + "/form submit", + "/form cancel", + "/form help [<tag>]") + CMD_DESC( + "Form configuration.") + CMD_ARGS( + { "show", "Show the current form." }, + { "submit", "Submit the current form." }, + { "cancel", "Cancel changes to the current form." }, + { "help [<tag>]", "Display help for form, or a specific field." }) + CMD_NOEXAMPLES }, { "/rooms", - parse_args, 0, 4, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_rooms) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/rooms", - "/rooms filter <text>", - "/rooms service <service>", - "/rooms service <service> filter <text>", - "/rooms cache on|off|clear") - CMD_DESC( - "List the chat rooms available at the specified conference service. " - "If no argument is supplied, the account preference 'muc.service' is used, 'conference.<domain-part>' by default. " - "The filter argument only shows rooms that contain the provided text, case insensitive.") - CMD_ARGS( - { "service <service>", "The conference service to query." }, - { "filter <text>", "The text to filter results by."}, - { "cache on|off", "Enable or disable caching of rooms list response, enabled by default."}, - { "cache clear", "Clear the rooms response cache if enabled."}) - CMD_EXAMPLES( - "/rooms", - "/rooms filter development", - "/rooms service conference.jabber.org", - "/rooms service conference.jabber.org filter \"News Room\"") - }, + parse_args, 0, 4, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_rooms) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/rooms", + "/rooms filter <text>", + "/rooms service <service>", + "/rooms service <service> filter <text>", + "/rooms cache on|off|clear") + CMD_DESC( + "List the chat rooms available at the specified conference service. " + "If no argument is supplied, the account preference 'muc.service' is used, 'conference.<domain-part>' by default. " + "The filter argument only shows rooms that contain the provided text, case insensitive.") + CMD_ARGS( + { "service <service>", "The conference service to query." }, + { "filter <text>", "The text to filter results by." }, + { "cache on|off", "Enable or disable caching of rooms list response, enabled by default." }, + { "cache clear", "Clear the rooms response cache if enabled." }) + CMD_EXAMPLES( + "/rooms", + "/rooms filter development", + "/rooms service conference.jabber.org", + "/rooms service conference.jabber.org filter \"News Room\"") }, { "/bookmark", - parse_args, 0, 8, NULL, - CMD_SUBFUNCS( - { "ignore", cmd_bookmark_ignore } - ) - CMD_MAINFUNC(cmd_bookmark) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/bookmark", - "/bookmark list", - "/bookmark add [<room>] [nick <nick>] [password <password>] [name <roomname>] [autojoin on|off]", - "/bookmark update <room> [nick <nick>] [password <password>] [name <roomname>] autojoin on|off]", - "/bookmark remove [<room>]", - "/bookmark join <room>", - "/bookmark invites on|off", - "/bookmark ignore", - "/bookmark ignore add <jid>", - "/bookmark ignore remove <jid>") - CMD_DESC( - "Manage bookmarks and join bookmarked rooms. " - "In a chat room, no arguments will bookmark the current room, setting autojoin to \"on\"." - "There is also an autojoin ignore list in case you want to autojoind in many clients but not on Profanity.") - CMD_ARGS( - { "list", "List all bookmarks." }, - { "add [<room>]", "Add a bookmark, passing no room will bookmark the current room, setting autojoin to \"on\"." }, - { "remove [<room>]", "Remove a bookmark, passing no room will remove the bookmark for the current room, if one exists." }, - { "update <room>", "Update the properties associated with a bookmark." }, - { "nick <nick>", "Nickname used in the chat room." }, - { "password <password>", "Password if required, may be stored in plaintext on your server." }, - { "name <roomname>", "Optional name for the bookmark. By default localpart of the JID will be used." }, - { "autojoin on|off", "Whether to join the room automatically on login." }, - { "join <room>", "Join room using the properties associated with the bookmark." }, - { "invites on|off", "Whether or not to bookmark accepted room invites, defaults to 'on'."}, - { "ignore add <barejid>", "Add a bookmark to the autojoin ignore list."}, - { "ignore remove <barejid>", "Remove a bookmark from the autojoin ignore list."}) - CMD_NOEXAMPLES - }, + parse_args, 0, 8, NULL, + CMD_SUBFUNCS( + { "ignore", cmd_bookmark_ignore }) + CMD_MAINFUNC(cmd_bookmark) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/bookmark", + "/bookmark list", + "/bookmark add [<room>] [nick <nick>] [password <password>] [name <roomname>] [autojoin on|off]", + "/bookmark update <room> [nick <nick>] [password <password>] [name <roomname>] autojoin on|off]", + "/bookmark remove [<room>]", + "/bookmark join <room>", + "/bookmark invites on|off", + "/bookmark ignore", + "/bookmark ignore add <jid>", + "/bookmark ignore remove <jid>") + CMD_DESC( + "Manage bookmarks and join bookmarked rooms. " + "In a chat room, no arguments will bookmark the current room, setting autojoin to \"on\"." + "There is also an autojoin ignore list in case you want to autojoind in many clients but not on Profanity.") + CMD_ARGS( + { "list", "List all bookmarks." }, + { "add [<room>]", "Add a bookmark, passing no room will bookmark the current room, setting autojoin to \"on\"." }, + { "remove [<room>]", "Remove a bookmark, passing no room will remove the bookmark for the current room, if one exists." }, + { "update <room>", "Update the properties associated with a bookmark." }, + { "nick <nick>", "Nickname used in the chat room." }, + { "password <password>", "Password if required, may be stored in plaintext on your server." }, + { "name <roomname>", "Optional name for the bookmark. By default localpart of the JID will be used." }, + { "autojoin on|off", "Whether to join the room automatically on login." }, + { "join <room>", "Join room using the properties associated with the bookmark." }, + { "invites on|off", "Whether or not to bookmark accepted room invites, defaults to 'on'." }, + { "ignore add <barejid>", "Add a bookmark to the autojoin ignore list." }, + { "ignore remove <barejid>", "Remove a bookmark from the autojoin ignore list." }) + CMD_NOEXAMPLES }, { "/disco", - parse_args, 1, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_disco) - CMD_TAGS( - CMD_TAG_DISCOVERY) - CMD_SYN( - "/disco info [<jid>]", - "/disco items [<jid>]") - CMD_DESC( - "Find out information about an entities supported services. " - "Calling with no arguments will query the server you are currently connected to.") - CMD_ARGS( - { "info [<jid>]", "List protocols and features supported by an entity." }, - { "items [<jid>]", "List items associated with an entity." }) - CMD_EXAMPLES( - "/disco info", - "/disco items myserver.org", - "/disco items conference.jabber.org", - "/disco info odin@valhalla.edda/laptop") - }, + parse_args, 1, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_disco) + CMD_TAGS( + CMD_TAG_DISCOVERY) + CMD_SYN( + "/disco info [<jid>]", + "/disco items [<jid>]") + CMD_DESC( + "Find out information about an entities supported services. " + "Calling with no arguments will query the server you are currently connected to.") + CMD_ARGS( + { "info [<jid>]", "List protocols and features supported by an entity." }, + { "items [<jid>]", "List items associated with an entity." }) + CMD_EXAMPLES( + "/disco info", + "/disco items myserver.org", + "/disco items conference.jabber.org", + "/disco info odin@valhalla.edda/laptop") }, { "/sendfile", - parse_args_with_freetext, 1, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_sendfile) - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/sendfile <file>") - CMD_DESC( - "Send a file using XEP-0363 HTTP file transfer.") - CMD_ARGS( - { "<file>", "Path to the file." }) - CMD_EXAMPLES( - "/sendfile /etc/hosts", - "/sendfile ~/images/sweet_cat.jpg") - }, + parse_args_with_freetext, 1, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_sendfile) + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/sendfile <file>") + CMD_DESC( + "Send a file using XEP-0363 HTTP file transfer.") + CMD_ARGS( + { "<file>", "Path to the file." }) + CMD_EXAMPLES( + "/sendfile /etc/hosts", + "/sendfile ~/images/sweet_cat.jpg") }, { "/lastactivity", - parse_args, 0, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_lastactivity) - CMD_TAGS( - CMD_TAG_PRESENCE) - CMD_SYN( - "/lastactivity on|off", - "/lastactivity [<jid>]") - CMD_DESC( - "Enable/disable sending last activity, and send last activity requests.") - CMD_ARGS( - { "on|off", "Enable or disable sending of last activity." }, - { "<jid>", "The JID of the entity to query, omitting the JID will query your server." }) - CMD_EXAMPLES( - "/lastactivity", - "/lastactivity off", - "/lastactivity freyja@asgaard.edda", - "/lastactivity freyja@asgaard.edda/laptop", - "/lastactivity someserver.com") - }, + parse_args, 0, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_lastactivity) + CMD_TAGS( + CMD_TAG_PRESENCE) + CMD_SYN( + "/lastactivity on|off", + "/lastactivity [<jid>]") + CMD_DESC( + "Enable/disable sending last activity, and send last activity requests.") + CMD_ARGS( + { "on|off", "Enable or disable sending of last activity." }, + { "<jid>", "The JID of the entity to query, omitting the JID will query your server." }) + CMD_EXAMPLES( + "/lastactivity", + "/lastactivity off", + "/lastactivity freyja@asgaard.edda", + "/lastactivity freyja@asgaard.edda/laptop", + "/lastactivity someserver.com") }, { "/nick", - parse_args_with_freetext, 1, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_nick) - CMD_TAGS( - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/nick <nickname>") - CMD_DESC( - "Change your nickname in the current chat room.") - CMD_ARGS( - { "<nickname>", "Your new nickname." }) - CMD_NOEXAMPLES - }, + parse_args_with_freetext, 1, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_nick) + CMD_TAGS( + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/nick <nickname>") + CMD_DESC( + "Change your nickname in the current chat room.") + CMD_ARGS( + { "<nickname>", "Your new nickname." }) + CMD_NOEXAMPLES }, { "/win", - parse_args, 1, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_win) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/win console", - "/win <num>", - "/win <barejid>", - "/win <nick>", - "/win <roomjid>", - "/win <roomoccupantjid>", - "/win xmlconsole", - "/win <plugin>") - CMD_DESC( - "Move to the specified window.") - CMD_ARGS( - { "console", "Focus the Console window." }, - { "<num>", "Focus specified window number." }, - { "<barejid>", "Focus chat window with contact by JID if open." }, - { "<nick>", "Focus chat window with contact by nickname if open." }, - { "<roomjid>", "Focus chat room window with roomjid if open." }, - { "<roomoccupantjid>", "Focus private chat roomoccupantjid if open." }, - { "xmlconsole", "Focus the XML Console window if open." }, - { "<plugin>", "Focus the plugin window."}) - CMD_EXAMPLES( - "/win console", - "/win 4", - "/win odin@valhalla.edda", - "/win Eddie", - "/win bigroom@conference.chat.org", - "/win bigroom@conference.chat.org/thor", - "/win wikipedia") - }, + parse_args, 1, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_win) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/win console", + "/win <num>", + "/win <barejid>", + "/win <nick>", + "/win <roomjid>", + "/win <roomoccupantjid>", + "/win xmlconsole", + "/win <plugin>") + CMD_DESC( + "Move to the specified window.") + CMD_ARGS( + { "console", "Focus the Console window." }, + { "<num>", "Focus specified window number." }, + { "<barejid>", "Focus chat window with contact by JID if open." }, + { "<nick>", "Focus chat window with contact by nickname if open." }, + { "<roomjid>", "Focus chat room window with roomjid if open." }, + { "<roomoccupantjid>", "Focus private chat roomoccupantjid if open." }, + { "xmlconsole", "Focus the XML Console window if open." }, + { "<plugin>", "Focus the plugin window." }) + CMD_EXAMPLES( + "/win console", + "/win 4", + "/win odin@valhalla.edda", + "/win Eddie", + "/win bigroom@conference.chat.org", + "/win bigroom@conference.chat.org/thor", + "/win wikipedia") }, { "/wins", - parse_args, 0, 3, NULL, - CMD_SUBFUNCS( - { "unread", cmd_wins_unread }, - { "prune", cmd_wins_prune }, - { "swap", cmd_wins_swap }) - CMD_MAINFUNC(cmd_wins) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/wins", - "/wins unread", - "/wins prune", - "/wins swap <source> <target>") - CMD_DESC( - "Manage windows. " - "Passing no argument will list all currently active windows and information about their usage.") - CMD_ARGS( - { "unread", "List windows with unread messages." }, - { "prune", "Close all windows with no unread messages." }, - { "swap <source> <target>", "Swap windows, target may be an empty position." }) - CMD_NOEXAMPLES - }, + parse_args, 0, 3, NULL, + CMD_SUBFUNCS( + { "unread", cmd_wins_unread }, + { "prune", cmd_wins_prune }, + { "swap", cmd_wins_swap }) + CMD_MAINFUNC(cmd_wins) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/wins", + "/wins unread", + "/wins prune", + "/wins swap <source> <target>") + CMD_DESC( + "Manage windows. " + "Passing no argument will list all currently active windows and information about their usage.") + CMD_ARGS( + { "unread", "List windows with unread messages." }, + { "prune", "Close all windows with no unread messages." }, + { "swap <source> <target>", "Swap windows, target may be an empty position." }) + CMD_NOEXAMPLES }, { "/sub", - parse_args, 1, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_sub) - CMD_TAGS( - CMD_TAG_ROSTER) - CMD_SYN( - "/sub request [<jid>]", - "/sub allow [<jid>]", - "/sub deny [<jid>]", - "/sub show [<jid>]", - "/sub sent", - "/sub received") - CMD_DESC( - "Manage subscriptions to contact presence. " - "If jid is omitted, the contact of the current window is used.") - CMD_ARGS( - { "request [<jid>]", "Send a subscription request to the user." }, - { "allow [<jid>]", "Approve a contact's subscription request." }, - { "deny [<jid>]", "Remove subscription for a contact, or deny a request." }, - { "show [<jid>]", "Show subscription status for a contact." }, - { "sent", "Show all sent subscription requests pending a response." }, - { "received", "Show all received subscription requests awaiting your response." }) - CMD_EXAMPLES( - "/sub request odin@valhalla.edda", - "/sub allow odin@valhalla.edda", - "/sub request", - "/sub sent") - }, + parse_args, 1, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_sub) + CMD_TAGS( + CMD_TAG_ROSTER) + CMD_SYN( + "/sub request [<jid>]", + "/sub allow [<jid>]", + "/sub deny [<jid>]", + "/sub show [<jid>]", + "/sub sent", + "/sub received") + CMD_DESC( + "Manage subscriptions to contact presence. " + "If jid is omitted, the contact of the current window is used.") + CMD_ARGS( + { "request [<jid>]", "Send a subscription request to the user." }, + { "allow [<jid>]", "Approve a contact's subscription request." }, + { "deny [<jid>]", "Remove subscription for a contact, or deny a request." }, + { "show [<jid>]", "Show subscription status for a contact." }, + { "sent", "Show all sent subscription requests pending a response." }, + { "received", "Show all received subscription requests awaiting your response." }) + CMD_EXAMPLES( + "/sub request odin@valhalla.edda", + "/sub allow odin@valhalla.edda", + "/sub request", + "/sub sent") }, { "/tiny", - parse_args, 1, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_tiny) - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/tiny <url>") - CMD_DESC( - "Send url as tinyurl in current chat.") - CMD_ARGS( - { "<url>", "The url to make tiny." }) - CMD_EXAMPLES( - "Example: /tiny https://profanity-im.github.io/") - }, + parse_args, 1, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_tiny) + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/tiny <url>") + CMD_DESC( + "Send url as tinyurl in current chat.") + CMD_ARGS( + { "<url>", "The url to make tiny." }) + CMD_EXAMPLES( + "Example: /tiny https://profanity-im.github.io/") }, { "/who", - parse_args, 0, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_who) - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT, - CMD_TAG_ROSTER) - CMD_SYN( - "/who", - "/who online|offline|away|dnd|xa|chat|available|unavailable|any [<group>]", - "/who moderator|participant|visitor", - "/who owner|admin|member") - CMD_DESC( - "Show contacts or room occupants with chosen status, role or affiliation.") - CMD_ARGS( - { "offline|away|dnd|xa|chat", "Show contacts or room occupants with specified presence." }, - { "online", "Contacts that are online, chat, away, xa, dnd." }, - { "available", "Contacts that are available for chat - online, chat." }, - { "unavailable", "Contacts that are not available for chat - offline, away, xa, dnd." }, - { "any", "Contacts with any status (same as calling with no argument)." }, - { "<group>", "Filter the results by the specified roster group, not applicable in chat rooms." }, - { "moderator|participant|visitor", "Room occupants with the specified role." }, - { "owner|admin|member", "Room occupants with the specified affiliation." }) - CMD_EXAMPLES( - "/who", - "/who xa", - "/who online friends", - "/who any family", - "/who participant", - "/who admin") - }, + parse_args, 0, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_who) + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT, + CMD_TAG_ROSTER) + CMD_SYN( + "/who", + "/who online|offline|away|dnd|xa|chat|available|unavailable|any [<group>]", + "/who moderator|participant|visitor", + "/who owner|admin|member") + CMD_DESC( + "Show contacts or room occupants with chosen status, role or affiliation.") + CMD_ARGS( + { "offline|away|dnd|xa|chat", "Show contacts or room occupants with specified presence." }, + { "online", "Contacts that are online, chat, away, xa, dnd." }, + { "available", "Contacts that are available for chat - online, chat." }, + { "unavailable", "Contacts that are not available for chat - offline, away, xa, dnd." }, + { "any", "Contacts with any status (same as calling with no argument)." }, + { "<group>", "Filter the results by the specified roster group, not applicable in chat rooms." }, + { "moderator|participant|visitor", "Room occupants with the specified role." }, + { "owner|admin|member", "Room occupants with the specified affiliation." }) + CMD_EXAMPLES( + "/who", + "/who xa", + "/who online friends", + "/who any family", + "/who participant", + "/who admin") }, { "/close", - parse_args, 0, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_close) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/close", - "/close <num>", - "/close <barejid>", - "/close <nick>", - "/close <roomjid>", - "/close <roomoccupantjid>", - "/close xmlconsole", - "/close all|read") - CMD_DESC( - "Close windows. " - "Passing no argument closes the current window.") - CMD_ARGS( - { "<num>", "Close specified window number." }, - { "<barejid>", "Close chat window with contact by JID if open." }, - { "<nick>", "Close chat window with contact by nickname if open." }, - { "<roomjid>", "Close chat room window with roomjid if open." }, - { "<roomoccupantjid>", "Close private chat roomoccupantjid if open." }, - { "xmlconsole", "Close the XML Console window if open." }, - { "all", "Close all windows." }, - { "read", "Close all windows that have no unread messages." }) - CMD_NOEXAMPLES - }, + parse_args, 0, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_close) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/close", + "/close <num>", + "/close <barejid>", + "/close <nick>", + "/close <roomjid>", + "/close <roomoccupantjid>", + "/close xmlconsole", + "/close all|read") + CMD_DESC( + "Close windows. " + "Passing no argument closes the current window.") + CMD_ARGS( + { "<num>", "Close specified window number." }, + { "<barejid>", "Close chat window with contact by JID if open." }, + { "<nick>", "Close chat window with contact by nickname if open." }, + { "<roomjid>", "Close chat room window with roomjid if open." }, + { "<roomoccupantjid>", "Close private chat roomoccupantjid if open." }, + { "xmlconsole", "Close the XML Console window if open." }, + { "all", "Close all windows." }, + { "read", "Close all windows that have no unread messages." }) + CMD_NOEXAMPLES }, { "/clear", - parse_args, 0, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_clear) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/clear", - "/clear persist_history <on|off>") - CMD_DESC( - "Clear the current window. " - "If you set persist_history you can still access the history by pressing PAGE UP.") - CMD_ARGS( - { "persist_history on|off", "Whether or not to clear the screen persistently."}) - CMD_EXAMPLES( - "/clear", - "/clear persist_history", - "/clear persist_history on") - }, + parse_args, 0, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_clear) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/clear", + "/clear persist_history <on|off>") + CMD_DESC( + "Clear the current window. " + "If you set persist_history you can still access the history by pressing PAGE UP.") + CMD_ARGS( + { "persist_history on|off", "Whether or not to clear the screen persistently." }) + CMD_EXAMPLES( + "/clear", + "/clear persist_history", + "/clear persist_history on") }, { "/quit", - parse_args, 0, 0, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_quit) - CMD_NOTAGS - CMD_SYN( - "/quit") - CMD_DESC( - "Logout of any current session, and quit Profanity.") - CMD_NOARGS - CMD_NOEXAMPLES - }, + parse_args, 0, 0, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_quit) + CMD_NOTAGS + CMD_SYN( + "/quit") + CMD_DESC( + "Logout of any current session, and quit Profanity.") + CMD_NOARGS + CMD_NOEXAMPLES }, { "/privileges", - parse_args, 1, 1, &cons_privileges_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_privileges) - CMD_TAGS( - CMD_TAG_GROUPCHAT, - CMD_TAG_UI) - CMD_SYN( - "/privileges on|off") - CMD_DESC( - "Group occupants panel by role, and show role information in chat rooms.") - CMD_ARGS( - { "on|off", "Enable or disable privilege information." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_privileges_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_privileges) + CMD_TAGS( + CMD_TAG_GROUPCHAT, + CMD_TAG_UI) + CMD_SYN( + "/privileges on|off") + CMD_DESC( + "Group occupants panel by role, and show role information in chat rooms.") + CMD_ARGS( + { "on|off", "Enable or disable privilege information." }) + CMD_NOEXAMPLES }, { "/charset", - parse_args, 0, 0, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_charset) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/charset") - CMD_DESC( - "Display information about the current character set supported by the terminal. ") - CMD_NOARGS - CMD_NOEXAMPLES - }, + parse_args, 0, 0, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_charset) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/charset") + CMD_DESC( + "Display information about the current character set supported by the terminal. ") + CMD_NOARGS + CMD_NOEXAMPLES }, { "/beep", - parse_args, 1, 1, &cons_beep_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_beep) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/beep on|off") - CMD_DESC( - "Switch the terminal bell on or off. " - "The bell will sound when incoming messages are received. " - "If the terminal does not support sounds, it may attempt to flash the screen instead.") - CMD_ARGS( - { "on|off", "Enable or disable terminal bell." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_beep_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_beep) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/beep on|off") + CMD_DESC( + "Switch the terminal bell on or off. " + "The bell will sound when incoming messages are received. " + "If the terminal does not support sounds, it may attempt to flash the screen instead.") + CMD_ARGS( + { "on|off", "Enable or disable terminal bell." }) + CMD_NOEXAMPLES }, { "/console", - parse_args, 2, 2, &cons_console_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_console) - CMD_TAGS( - CMD_TAG_UI, - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/console chat all|first|none", - "/console muc all|first|none", - "/console private all|first|none") - CMD_DESC( - "Configure what is displayed in the console window when messages are received. " - "The default is set to 'all' for all types of messages.") - CMD_ARGS( - { "chat all", "Indicate all new chat messages in the console." }, - { "chat first", "Indicate only the first new message per chat in the console." }, - { "chat none", "Do not show any new chat messages in the console window." }, - { "muc all", "Indicate all new chat room messages in the console." }, - { "muc first", "Indicate only the first new message in each room in the console." }, - { "muc none", "Do not show any new chat room messages in the console window." }, - { "private all", "Indicate all new private room messages in the console." }, - { "private first", "Indicate only the first private room message in the console." }, - { "private none", "Do not show any new private room messages in the console window." }) - CMD_NOEXAMPLES - }, + parse_args, 2, 2, &cons_console_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_console) + CMD_TAGS( + CMD_TAG_UI, + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/console chat all|first|none", + "/console muc all|first|none", + "/console private all|first|none") + CMD_DESC( + "Configure what is displayed in the console window when messages are received. " + "The default is set to 'all' for all types of messages.") + CMD_ARGS( + { "chat all", "Indicate all new chat messages in the console." }, + { "chat first", "Indicate only the first new message per chat in the console." }, + { "chat none", "Do not show any new chat messages in the console window." }, + { "muc all", "Indicate all new chat room messages in the console." }, + { "muc first", "Indicate only the first new message in each room in the console." }, + { "muc none", "Do not show any new chat room messages in the console window." }, + { "private all", "Indicate all new private room messages in the console." }, + { "private first", "Indicate only the first private room message in the console." }, + { "private none", "Do not show any new private room messages in the console window." }) + CMD_NOEXAMPLES }, { "/presence", - parse_args, 2, 2, &cons_presence_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_presence) - CMD_TAGS( - CMD_TAG_UI, - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/presence titlebar on|off", - "/presence console all|online|none", - "/presence chat all|online|none", - "/presence room all|online|none") - CMD_DESC( - "Show the contacts presence in the titlebar and configure presence messages in different window types.") - CMD_ARGS( - { "titlebar on|off", "Switch display of the contacts presence in the titlebar on or off." }, - { "console all", "Show all presence changes in the console window." }, - { "console online", "Show only online/offline presence changes in the console window." }, - { "console none", "Don't show any presence changes in the console window." }, - { "chat all", "Show all presence changes in the chat windows." }, - { "chat online", "Show only online/offline presence changes in chat windows." }, - { "chat none", "Don't show any presence changes in chat windows." }, - { "room all", "Show all presence changes in chat room windows." }, - { "room online", "Show only online/offline presence changes in chat room windows." }, - { "room none", "Don't show any presence changes in chat room windows." }) - CMD_EXAMPLES( - "/presence titlebar off", - "/presence console none", - "/presence chat online", - "/presence room all") - }, + parse_args, 2, 2, &cons_presence_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_presence) + CMD_TAGS( + CMD_TAG_UI, + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/presence titlebar on|off", + "/presence console all|online|none", + "/presence chat all|online|none", + "/presence room all|online|none") + CMD_DESC( + "Show the contacts presence in the titlebar and configure presence messages in different window types.") + CMD_ARGS( + { "titlebar on|off", "Switch display of the contacts presence in the titlebar on or off." }, + { "console all", "Show all presence changes in the console window." }, + { "console online", "Show only online/offline presence changes in the console window." }, + { "console none", "Don't show any presence changes in the console window." }, + { "chat all", "Show all presence changes in the chat windows." }, + { "chat online", "Show only online/offline presence changes in chat windows." }, + { "chat none", "Don't show any presence changes in chat windows." }, + { "room all", "Show all presence changes in chat room windows." }, + { "room online", "Show only online/offline presence changes in chat room windows." }, + { "room none", "Don't show any presence changes in chat room windows." }) + CMD_EXAMPLES( + "/presence titlebar off", + "/presence console none", + "/presence chat online", + "/presence room all") }, { "/wrap", - parse_args, 1, 1, &cons_wrap_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_wrap) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/wrap on|off") - CMD_DESC( - "Word wrapping.") - CMD_ARGS( - { "on|off", "Enable or disable word wrapping in the main window." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_wrap_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_wrap) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/wrap on|off") + CMD_DESC( + "Word wrapping.") + CMD_ARGS( + { "on|off", "Enable or disable word wrapping in the main window." }) + CMD_NOEXAMPLES }, { "/time", - parse_args, 1, 3, &cons_time_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_time) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/time all|console|chat|muc|config|private|xml set <format>", - "/time all|console|chat|muc|config|private|xml off", - "/time statusbar set <format>", - "/time statusbar off", - "/time lastactivity set <format>") - CMD_DESC( - "Configure time display preferences. " - "Time formats are strings supported by g_date_time_format. " - "See https://developer.gnome.org/glib/stable/glib-GDateTime.html#g-date-time-format for more details. " - "Setting the format to an unsupported string, will display the string. " - "If the format contains spaces, it must be surrounded with double quotes.") - CMD_ARGS( - { "console set <format>", "Set time format for console window." }, - { "console off", "Do not show time in console window." }, - { "chat set <format>", "Set time format for chat windows." }, - { "chat off", "Do not show time in chat windows." }, - { "muc set <format>", "Set time format for chat room windows." }, - { "muc off", "Do not show time in chat room windows." }, - { "config set <format>", "Set time format for config windows." }, - { "config off", "Do not show time in config windows." }, - { "private set <format>", "Set time format for private chat windows." }, - { "private off", "Do not show time in private chat windows." }, - { "xml set <format>", "Set time format for XML console window." }, - { "xml off", "Do not show time in XML console window." }, - { "statusbar set <format>", "Change time format in statusbar." }, - { "statusbar off", "Do not show time in status bar." }, - { "lastactivity set <format>", "Change time format for last activity." }, - { "all set <format>", "Set time for: console, chat, muc, config, private and xml windows." }, - { "all off", "Do not show time for: console, chat, muc, config, private and xml windows." }) - CMD_EXAMPLES( - "/time console set %H:%M:%S", - "/time chat set \"%d-%m-%y %H:%M:%S\"", - "/time xml off", - "/time statusbar set %H:%M", - "/time lastactivity set \"%d-%m-%y %H:%M:%S\"", - "/time all set \"%d-%m-%y %H:%M:%S\"") - }, + parse_args, 1, 3, &cons_time_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_time) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/time all|console|chat|muc|config|private|xml set <format>", + "/time all|console|chat|muc|config|private|xml off", + "/time statusbar set <format>", + "/time statusbar off", + "/time lastactivity set <format>") + CMD_DESC( + "Configure time display preferences. " + "Time formats are strings supported by g_date_time_format. " + "See https://developer.gnome.org/glib/stable/glib-GDateTime.html#g-date-time-format for more details. " + "Setting the format to an unsupported string, will display the string. " + "If the format contains spaces, it must be surrounded with double quotes.") + CMD_ARGS( + { "console set <format>", "Set time format for console window." }, + { "console off", "Do not show time in console window." }, + { "chat set <format>", "Set time format for chat windows." }, + { "chat off", "Do not show time in chat windows." }, + { "muc set <format>", "Set time format for chat room windows." }, + { "muc off", "Do not show time in chat room windows." }, + { "config set <format>", "Set time format for config windows." }, + { "config off", "Do not show time in config windows." }, + { "private set <format>", "Set time format for private chat windows." }, + { "private off", "Do not show time in private chat windows." }, + { "xml set <format>", "Set time format for XML console window." }, + { "xml off", "Do not show time in XML console window." }, + { "statusbar set <format>", "Change time format in statusbar." }, + { "statusbar off", "Do not show time in status bar." }, + { "lastactivity set <format>", "Change time format for last activity." }, + { "all set <format>", "Set time for: console, chat, muc, config, private and xml windows." }, + { "all off", "Do not show time for: console, chat, muc, config, private and xml windows." }) + CMD_EXAMPLES( + "/time console set %H:%M:%S", + "/time chat set \"%d-%m-%y %H:%M:%S\"", + "/time xml off", + "/time statusbar set %H:%M", + "/time lastactivity set \"%d-%m-%y %H:%M:%S\"", + "/time all set \"%d-%m-%y %H:%M:%S\"") }, { "/inpblock", - parse_args, 2, 2, &cons_inpblock_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_inpblock) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/inpblock timeout <millis>", - "/inpblock dynamic on|off") - CMD_DESC( - "How long to wait for keyboard input before checking for new messages or checking for state changes such as 'idle'.") - CMD_ARGS( - { "timeout <millis>", "Time to wait (1-1000) in milliseconds before reading input from the terminal buffer, default: 1000." }, - { "dynamic on|off", "Start with 0 millis and dynamically increase up to timeout when no activity, default: on." }) - CMD_NOEXAMPLES - }, + parse_args, 2, 2, &cons_inpblock_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_inpblock) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/inpblock timeout <millis>", + "/inpblock dynamic on|off") + CMD_DESC( + "How long to wait for keyboard input before checking for new messages or checking for state changes such as 'idle'.") + CMD_ARGS( + { "timeout <millis>", "Time to wait (1-1000) in milliseconds before reading input from the terminal buffer, default: 1000." }, + { "dynamic on|off", "Start with 0 millis and dynamically increase up to timeout when no activity, default: on." }) + CMD_NOEXAMPLES }, { "/titlebar", - parse_args, 1, 2, &cons_titlebar_setting, - CMD_SUBFUNCS( - { "show", cmd_titlebar_show_hide }, - { "hide", cmd_titlebar_show_hide } - ) - CMD_MAINFUNC(cmd_titlebar) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/titlebar up", - "/titlebar down", - "/titlebar show|hide [encwarn|resource|tls]" - ) - CMD_DESC( - "Titlebar settings.") - CMD_ARGS( - { "up", "Move the title bar up the screen." }, - { "down", "Move the title bar down the screen." }, - { "show tls", "Show or hide TLS indicator in the titlebar." }, - { "show encwarn", "Enable or disable the unencrypted warning message in the titlebar." }, - { "show resource", "Show or hide the current resource in the titlebar." }, - { "show name", "In case of a MUC. Show the MUC name in the titlebar." }, - { "show jid", "In case of a MUC. Show the JID in the titlebar." } - ) - CMD_EXAMPLES( - "/titlebar up", - "/titlebar show tls", - "/titlebar hide encwarn") - }, + parse_args, 1, 2, &cons_titlebar_setting, + CMD_SUBFUNCS( + { "show", cmd_titlebar_show_hide }, + { "hide", cmd_titlebar_show_hide }) + CMD_MAINFUNC(cmd_titlebar) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/titlebar up", + "/titlebar down", + "/titlebar show|hide [encwarn|resource|tls]") + CMD_DESC( + "Titlebar settings.") + CMD_ARGS( + { "up", "Move the title bar up the screen." }, + { "down", "Move the title bar down the screen." }, + { "show tls", "Show or hide TLS indicator in the titlebar." }, + { "show encwarn", "Enable or disable the unencrypted warning message in the titlebar." }, + { "show resource", "Show or hide the current resource in the titlebar." }, + { "show name", "In case of a MUC. Show the MUC name in the titlebar." }, + { "show jid", "In case of a MUC. Show the JID in the titlebar." }) + CMD_EXAMPLES( + "/titlebar up", + "/titlebar show tls", + "/titlebar hide encwarn") }, { "/mainwin", - parse_args, 1, 1, &cons_winpos_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_mainwin) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/mainwin up", - "/mainwin down") - CMD_DESC( - "Move the main window.") - CMD_ARGS( - { "up", "Move the main window up the screen." }, - { "down", "Move the main window down the screen." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_winpos_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_mainwin) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/mainwin up", + "/mainwin down") + CMD_DESC( + "Move the main window.") + CMD_ARGS( + { "up", "Move the main window up the screen." }, + { "down", "Move the main window down the screen." }) + CMD_NOEXAMPLES }, { "/statusbar", - parse_args, 1, 2, &cons_statusbar_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_statusbar) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/statusbar show name|number|read", - "/statusbar hide name|number|read", - "/statusbar maxtabs <value>", - "/statusbar tablen <value>", - "/statusbar self user|barejid|fulljid|off", - "/statusbar chat user|jid", - "/statusbar room room|jid", - "/statusbar up", - "/statusbar down") - CMD_DESC( - "Manage statusbar display preferences.") - CMD_ARGS( - { "maxtabs <value>", "Set the maximum number of tabs to display, <value> must be between 0 and 10." }, - { "tablen <value>", "Set the maximum number of characters to show as the tab name, 0 sets to unlimited." }, - { "show|hide name", "Show or hide names in tabs." }, - { "show|hide number", "Show or hide numbers in tabs." }, - { "show|hide read", "Show or hide inactive tabs." }, - { "self user|barejid|fulljid", "Show account user name, barejid, fulljid as status bar title." }, - { "self off", "Disable showing self as status bar title." }, - { "chat user|jid", "Show users name, or the fulljid if no nick is present for chat tabs." }, - { "room room|jid", "Show room name, or the fulljid for room tabs." }, - { "up", "Move the status bar up the screen." }, - { "down", "Move the status bar down the screen." }) - CMD_EXAMPLES( - "/statusbar maxtabs 8", - "/statusbar tablen 5", - "/statusbar self user", - "/statusbar chat jid", - "/statusbar hide read", - "/statusbar hide name") - }, + parse_args, 1, 2, &cons_statusbar_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_statusbar) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/statusbar show name|number|read", + "/statusbar hide name|number|read", + "/statusbar maxtabs <value>", + "/statusbar tablen <value>", + "/statusbar self user|barejid|fulljid|off", + "/statusbar chat user|jid", + "/statusbar room room|jid", + "/statusbar up", + "/statusbar down") + CMD_DESC( + "Manage statusbar display preferences.") + CMD_ARGS( + { "maxtabs <value>", "Set the maximum number of tabs to display, <value> must be between 0 and 10." }, + { "tablen <value>", "Set the maximum number of characters to show as the tab name, 0 sets to unlimited." }, + { "show|hide name", "Show or hide names in tabs." }, + { "show|hide number", "Show or hide numbers in tabs." }, + { "show|hide read", "Show or hide inactive tabs." }, + { "self user|barejid|fulljid", "Show account user name, barejid, fulljid as status bar title." }, + { "self off", "Disable showing self as status bar title." }, + { "chat user|jid", "Show users name, or the fulljid if no nick is present for chat tabs." }, + { "room room|jid", "Show room name, or the fulljid for room tabs." }, + { "up", "Move the status bar up the screen." }, + { "down", "Move the status bar down the screen." }) + CMD_EXAMPLES( + "/statusbar maxtabs 8", + "/statusbar tablen 5", + "/statusbar self user", + "/statusbar chat jid", + "/statusbar hide read", + "/statusbar hide name") }, { "/inputwin", - parse_args, 1, 1, &cons_winpos_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_inputwin) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/inputwin up", - "/inputwin down") - CMD_DESC( - "Move the input window.") - CMD_ARGS( - { "up", "Move the input window up the screen." }, - { "down", "Move the input window down the screen." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_winpos_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_inputwin) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/inputwin up", + "/inputwin down") + CMD_DESC( + "Move the input window.") + CMD_ARGS( + { "up", "Move the input window up the screen." }, + { "down", "Move the input window down the screen." }) + CMD_NOEXAMPLES }, { "/notify", - parse_args_with_freetext, 0, 4, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_notify) - CMD_TAGS( - CMD_TAG_UI, - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/notify chat on|off", - "/notify chat current on|off", - "/notify chat text on|off", - "/notify room on|off", - "/notify room mention on|off", - "/notify room mention case_sensitive|case_insensitive", - "/notify room mention word_whole|word_part", - "/notify room current on|off", - "/notify room text on|off", - "/notify room trigger add <text>", - "/notify room trigger remove <text>", - "/notify room trigger list", - "/notify room trigger on|off", - "/notify on|off", - "/notify mention on|off", - "/notify trigger on|off", - "/notify reset", - "/notify remind <seconds>", - "/notify typing on|off", - "/notify typing current on|off", - "/notify invite on|off", - "/notify sub on|off") - CMD_DESC( - "Configure desktop notifications. " - "To configure presence update messages in the console, chat and chat room windows, see '/help presence'.") - CMD_ARGS( - { "chat on|off", "Notifications for regular chat messages." }, - { "chat current on|off", "Whether to show regular chat message notifications when the window is focussed." }, - { "chat text on|off", "Show message text in regular message notifications." }, - { "room on|off", "Notifications for all chat room messages." }, - { "room mention on|off", "Notifications for chat room messages when your nick is mentioned." }, - { "room mention case_sensitive", "Set room mention notifications as case sensitive." }, - { "room mention case_insensitive", "Set room mention notifications as case insensitive." }, - { "room mention word_whole", "Set room mention notifications only on whole word match, i.e. when nickname is not part of a larger word." }, - { "room mention word_part", "Set room mention notifications on partial word match, i.e. nickname may be part of a larger word." }, - { "room current on|off", "Whether to show all chat room messages notifications when the window is focussed." }, - { "room text on|off", "Show message text in chat room message notifications." }, - { "room trigger add <text>", "Notify when specified text included in all chat room messages." }, - { "room trigger remove <text>", "Remove chat room notification trigger." }, - { "room trigger list", "List all chat room highlight triggers." }, - { "room trigger on|off", "Enable or disable all chat room notification triggers." }, - { "on|off", "Override the global message setting for the current chat room." }, - { "mention on|off", "Override the global 'mention' setting for the current chat room." }, - { "trigger on|off", "Override the global 'trigger' setting for the current chat room." }, - { "reset", "Reset to global notification settings for the current chat room." }, - { "remind <seconds>", "Notification reminder period for unread messages, use 0 to disable." }, - { "typing on|off", "Notifications when contacts are typing." }, - { "typing current on|off", "Whether typing notifications are triggered for the current window." }, - { "invite on|off", "Notifications for chat room invites." }, - { "sub on|off", "Notifications for subscription requests." }) - CMD_EXAMPLES( - "/notify chat on", - "/notify chat text on", - "/notify room mention on", - "/notify room trigger add beer", - "/notify room trigger on", - "/notify room current off", - "/notify room text off", - "/notify remind 60", - "/notify typing on", - "/notify invite on") - }, + parse_args_with_freetext, 0, 4, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_notify) + CMD_TAGS( + CMD_TAG_UI, + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/notify chat on|off", + "/notify chat current on|off", + "/notify chat text on|off", + "/notify room on|off", + "/notify room mention on|off", + "/notify room mention case_sensitive|case_insensitive", + "/notify room mention word_whole|word_part", + "/notify room current on|off", + "/notify room text on|off", + "/notify room trigger add <text>", + "/notify room trigger remove <text>", + "/notify room trigger list", + "/notify room trigger on|off", + "/notify on|off", + "/notify mention on|off", + "/notify trigger on|off", + "/notify reset", + "/notify remind <seconds>", + "/notify typing on|off", + "/notify typing current on|off", + "/notify invite on|off", + "/notify sub on|off") + CMD_DESC( + "Configure desktop notifications. " + "To configure presence update messages in the console, chat and chat room windows, see '/help presence'.") + CMD_ARGS( + { "chat on|off", "Notifications for regular chat messages." }, + { "chat current on|off", "Whether to show regular chat message notifications when the window is focussed." }, + { "chat text on|off", "Show message text in regular message notifications." }, + { "room on|off", "Notifications for all chat room messages." }, + { "room mention on|off", "Notifications for chat room messages when your nick is mentioned." }, + { "room mention case_sensitive", "Set room mention notifications as case sensitive." }, + { "room mention case_insensitive", "Set room mention notifications as case insensitive." }, + { "room mention word_whole", "Set room mention notifications only on whole word match, i.e. when nickname is not part of a larger word." }, + { "room mention word_part", "Set room mention notifications on partial word match, i.e. nickname may be part of a larger word." }, + { "room current on|off", "Whether to show all chat room messages notifications when the window is focussed." }, + { "room text on|off", "Show message text in chat room message notifications." }, + { "room trigger add <text>", "Notify when specified text included in all chat room messages." }, + { "room trigger remove <text>", "Remove chat room notification trigger." }, + { "room trigger list", "List all chat room highlight triggers." }, + { "room trigger on|off", "Enable or disable all chat room notification triggers." }, + { "on|off", "Override the global message setting for the current chat room." }, + { "mention on|off", "Override the global 'mention' setting for the current chat room." }, + { "trigger on|off", "Override the global 'trigger' setting for the current chat room." }, + { "reset", "Reset to global notification settings for the current chat room." }, + { "remind <seconds>", "Notification reminder period for unread messages, use 0 to disable." }, + { "typing on|off", "Notifications when contacts are typing." }, + { "typing current on|off", "Whether typing notifications are triggered for the current window." }, + { "invite on|off", "Notifications for chat room invites." }, + { "sub on|off", "Notifications for subscription requests." }) + CMD_EXAMPLES( + "/notify chat on", + "/notify chat text on", + "/notify room mention on", + "/notify room trigger add beer", + "/notify room trigger on", + "/notify room current off", + "/notify room text off", + "/notify remind 60", + "/notify typing on", + "/notify invite on") }, { "/flash", - parse_args, 1, 1, &cons_flash_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_flash) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/flash on|off") - CMD_DESC( - "Make the terminal flash when incoming messages are received in another window. " - "If the terminal doesn't support flashing, it may attempt to beep.") - CMD_ARGS( - { "on|off", "Enable or disable terminal flash." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_flash_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_flash) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/flash on|off") + CMD_DESC( + "Make the terminal flash when incoming messages are received in another window. " + "If the terminal doesn't support flashing, it may attempt to beep.") + CMD_ARGS( + { "on|off", "Enable or disable terminal flash." }) + CMD_NOEXAMPLES }, { "/tray", - parse_args, 1, 2, &cons_tray_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_tray) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/tray on|off", - "/tray read on|off", - "/tray timer <seconds>") - CMD_DESC( - "Display an icon in the tray that will indicate new messages.") - CMD_ARGS( - { "on|off", "Show tray icon." }, - { "read on|off", "Show tray icon when no unread messages." }, - { "timer <seconds>", "Set tray icon timer, seconds must be between 1-10." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 2, &cons_tray_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_tray) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/tray on|off", + "/tray read on|off", + "/tray timer <seconds>") + CMD_DESC( + "Display an icon in the tray that will indicate new messages.") + CMD_ARGS( + { "on|off", "Show tray icon." }, + { "read on|off", "Show tray icon when no unread messages." }, + { "timer <seconds>", "Set tray icon timer, seconds must be between 1-10." }) + CMD_NOEXAMPLES }, { "/intype", - parse_args, 1, 1, &cons_intype_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_intype) - CMD_TAGS( - CMD_TAG_UI, - CMD_TAG_CHAT) - CMD_SYN( - "/intype on|off") - CMD_DESC( - "Show when a contact is typing in the console, and in active message window.") - CMD_ARGS( - { "on|off", "Enable or disable contact typing messages." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_intype_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_intype) + CMD_TAGS( + CMD_TAG_UI, + CMD_TAG_CHAT) + CMD_SYN( + "/intype on|off") + CMD_DESC( + "Show when a contact is typing in the console, and in active message window.") + CMD_ARGS( + { "on|off", "Enable or disable contact typing messages." }) + CMD_NOEXAMPLES }, { "/splash", - parse_args, 1, 1, &cons_splash_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_splash) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/splash on|off") - CMD_DESC( - "Switch on or off the ascii logo on start up and when the /about command is called.") - CMD_ARGS( - { "on|off", "Enable or disable splash logo." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_splash_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_splash) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/splash on|off") + CMD_DESC( + "Switch on or off the ascii logo on start up and when the /about command is called.") + CMD_ARGS( + { "on|off", "Enable or disable splash logo." }) + CMD_NOEXAMPLES }, { "/autoconnect", - parse_args, 1, 2, &cons_autoconnect_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_autoconnect) - CMD_TAGS( - CMD_TAG_CONNECTION) - CMD_SYN( - "/autoconnect set <account>", - "/autoconnect off") - CMD_DESC( - "Enable or disable autoconnect on start up. " - "The setting can be overridden by the -a (--account) command line option.") - CMD_ARGS( - { "set <account>", "Connect with account on start up." }, - { "off", "Disable autoconnect." }) - CMD_EXAMPLES( - "/autoconnect set ulfhednar@valhalla.edda", - "/autoconnect off") - }, + parse_args, 1, 2, &cons_autoconnect_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_autoconnect) + CMD_TAGS( + CMD_TAG_CONNECTION) + CMD_SYN( + "/autoconnect set <account>", + "/autoconnect off") + CMD_DESC( + "Enable or disable autoconnect on start up. " + "The setting can be overridden by the -a (--account) command line option.") + CMD_ARGS( + { "set <account>", "Connect with account on start up." }, + { "off", "Disable autoconnect." }) + CMD_EXAMPLES( + "/autoconnect set ulfhednar@valhalla.edda", + "/autoconnect off") }, { "/vercheck", - parse_args, 0, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_vercheck) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/vercheck on|off") - CMD_DESC( - "Check for new versions when Profanity starts, and when the /about command is run.") - CMD_ARGS( - { "on|off", "Enable or disable the version check." }) - CMD_NOEXAMPLES - }, + parse_args, 0, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_vercheck) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/vercheck on|off") + CMD_DESC( + "Check for new versions when Profanity starts, and when the /about command is run.") + CMD_ARGS( + { "on|off", "Enable or disable the version check." }) + CMD_NOEXAMPLES }, { "/wintitle", - parse_args, 2, 2, &cons_wintitle_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_wintitle) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/wintitle show on|off", - "/wintitle goodbye on|off") - CMD_DESC( - "Allow Profanity to modify the window title bar.") - CMD_ARGS( - { "show on|off", "Show current logged in user, and unread messages as the window title." }, - { "goodbye on|off", "Show a message in the title when exiting profanity." }) - CMD_NOEXAMPLES - }, + parse_args, 2, 2, &cons_wintitle_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_wintitle) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/wintitle show on|off", + "/wintitle goodbye on|off") + CMD_DESC( + "Allow Profanity to modify the window title bar.") + CMD_ARGS( + { "show on|off", "Show current logged in user, and unread messages as the window title." }, + { "goodbye on|off", "Show a message in the title when exiting profanity." }) + CMD_NOEXAMPLES }, { "/alias", - parse_args_with_freetext, 1, 3, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_alias) - CMD_NOTAGS - CMD_SYN( - "/alias list", - "/alias add <name> <value>", - "/alias remove <name>") - CMD_DESC( - "Add, remove or list command aliases.") - CMD_ARGS( - { "list", "List all aliases." }, - { "add <name> <value>", "Add a new command alias." }, - { "remove <name>", "Remove a command alias." }) - CMD_EXAMPLES( - "/alias add friends /who online friends", - "/alias add /q /quit", - "/alias add a /away \"I'm in a meeting.\"", - "/alias remove q", - "/alias list") - }, + parse_args_with_freetext, 1, 3, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_alias) + CMD_NOTAGS + CMD_SYN( + "/alias list", + "/alias add <name> <value>", + "/alias remove <name>") + CMD_DESC( + "Add, remove or list command aliases.") + CMD_ARGS( + { "list", "List all aliases." }, + { "add <name> <value>", "Add a new command alias." }, + { "remove <name>", "Remove a command alias." }) + CMD_EXAMPLES( + "/alias add friends /who online friends", + "/alias add /q /quit", + "/alias add a /away \"I'm in a meeting.\"", + "/alias remove q", + "/alias list") }, { "/logging", - parse_args, 2, 3, &cons_logging_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_logging) - CMD_TAGS( - CMD_TAG_CHAT) - CMD_SYN( - "/logging chat|group on|off") - CMD_DESC( - "Configure chat logging. " - "Switch logging on or off. " - "Chat logging will be enabled if /history is set to on. " - "When disabling this option, /history will also be disabled. ") - CMD_ARGS( - { "chat on|off", "Enable/Disable regular chat logging." }, - { "group on|off", "Enable/Disable groupchat (room) logging." }) - CMD_EXAMPLES( - "/logging chat on", - "/logging group off") - }, + parse_args, 2, 3, &cons_logging_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_logging) + CMD_TAGS( + CMD_TAG_CHAT) + CMD_SYN( + "/logging chat|group on|off") + CMD_DESC( + "Configure chat logging. " + "Switch logging on or off. " + "Chat logging will be enabled if /history is set to on. " + "When disabling this option, /history will also be disabled. ") + CMD_ARGS( + { "chat on|off", "Enable/Disable regular chat logging." }, + { "group on|off", "Enable/Disable groupchat (room) logging." }) + CMD_EXAMPLES( + "/logging chat on", + "/logging group off") }, { "/states", - parse_args, 1, 1, &cons_states_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_states) - CMD_TAGS( - CMD_TAG_CHAT) - CMD_SYN( - "/states on|off") - CMD_DESC( - "Send chat state notifications to recipient during chat sessions, such as typing, paused, active, gone.") - CMD_ARGS( - { "on|off", "Enable or disable sending of chat state notifications." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_states_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_states) + CMD_TAGS( + CMD_TAG_CHAT) + CMD_SYN( + "/states on|off") + CMD_DESC( + "Send chat state notifications to recipient during chat sessions, such as typing, paused, active, gone.") + CMD_ARGS( + { "on|off", "Enable or disable sending of chat state notifications." }) + CMD_NOEXAMPLES }, { "/pgp", - parse_args, 1, 3, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_pgp) - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_UI) - CMD_SYN( - "/pgp libver", - "/pgp keys", - "/pgp contacts", - "/pgp setkey <contact> <keyid>", - "/pgp start [<contact>]", - "/pgp end", - "/pgp log on|off|redact", - "/pgp char <char>", - "/pgp sendfile on|off") - CMD_DESC( - "Open PGP commands to manage keys, and perform PGP encryption during chat sessions. " - "See the /account command to set your own PGP key.") - CMD_ARGS( - { "libver", "Show which version of the libgpgme library is being used." }, - { "keys", "List all keys known to the system." }, - { "contacts", "Show contacts with assigned public keys." }, - { "setkey <contact> <keyid>", "Manually associate a contact with a public key." }, - { "start [<contact>]", "Start PGP encrypted chat, current contact will be used if not specified." }, - { "end", "End PGP encrypted chat with the current recipient." }, - { "log on|off", "Enable or disable plaintext logging of PGP encrypted messages." }, - { "log redact", "Log PGP encrypted messages, but replace the contents with [redacted]. This is the default." }, - { "char <char>", "Set the character to be displayed next to PGP encrypted messages." }, - { "sendfile on|off", "Allow /sendfile to send unencrypted files while otherwise using PGP."}) - CMD_EXAMPLES( - "/pgp log off", - "/pgp setkey odin@valhalla.edda BA19CACE5A9592C5", - "/pgp start odin@valhalla.edda", - "/pgp end", - "/pgp char P") - }, + parse_args, 1, 3, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_pgp) + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_UI) + CMD_SYN( + "/pgp libver", + "/pgp keys", + "/pgp contacts", + "/pgp setkey <contact> <keyid>", + "/pgp start [<contact>]", + "/pgp end", + "/pgp log on|off|redact", + "/pgp char <char>", + "/pgp sendfile on|off") + CMD_DESC( + "Open PGP commands to manage keys, and perform PGP encryption during chat sessions. " + "See the /account command to set your own PGP key.") + CMD_ARGS( + { "libver", "Show which version of the libgpgme library is being used." }, + { "keys", "List all keys known to the system." }, + { "contacts", "Show contacts with assigned public keys." }, + { "setkey <contact> <keyid>", "Manually associate a contact with a public key." }, + { "start [<contact>]", "Start PGP encrypted chat, current contact will be used if not specified." }, + { "end", "End PGP encrypted chat with the current recipient." }, + { "log on|off", "Enable or disable plaintext logging of PGP encrypted messages." }, + { "log redact", "Log PGP encrypted messages, but replace the contents with [redacted]. This is the default." }, + { "char <char>", "Set the character to be displayed next to PGP encrypted messages." }, + { "sendfile on|off", "Allow /sendfile to send unencrypted files while otherwise using PGP." }) + CMD_EXAMPLES( + "/pgp log off", + "/pgp setkey odin@valhalla.edda BA19CACE5A9592C5", + "/pgp start odin@valhalla.edda", + "/pgp end", + "/pgp char P") }, // XEP-0373: OpenPGP for XMPP #ifdef HAVE_LIBGPGME { "/ox", - parse_args, 1, 3, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_ox) - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_UI) - CMD_SYN( - "/ox keys", - "/ox contacts", - "/ox start [<contact>]", - "/ox end", - "/ox log on|off|redact", - "/ox char <char>", - "/ox sendfile on|off", - "/ox announce <file>", - "/ox discover", - "/ox request <jid>") - CMD_DESC( - "OpenPGP (OX) commands to manage keys, and perform PGP encryption during chat sessions. ") - CMD_ARGS( - { "keys", "List all keys known to the system." }, - { "contacts", "Show contacts with assigned public keys." }, - { "start [<contact>]", "Start PGP encrypted chat, current contact will be used if not specified." }, - { "end", "End PGP encrypted chat with the current recipient." }, - { "log on|off", "Enable or disable plaintext logging of PGP encrypted messages." }, - { "log redact", "Log PGP encrypted messages, but replace the contents with [redacted]. This is the default." }, - { "char <char>", "Set the character to be displayed next to PGP encrypted messages." }, - { "announce <file>", "Announce a public key by pushing it on the XMPP Server"}, - { "discover <jid>", "Discover public keys of a jid "}, - { "request <jid>", "Request public keys"}, - { "sendfile on|off", "Allow /sendfile to send unencrypted files while otherwise using PGP."}) - CMD_EXAMPLES( - "/ox log off", - "/ox start odin@valhalla.edda", - "/ox end", - "/ox char X") - }, + parse_args, 1, 3, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_ox) + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_UI) + CMD_SYN( + "/ox keys", + "/ox contacts", + "/ox start [<contact>]", + "/ox end", + "/ox log on|off|redact", + "/ox char <char>", + "/ox sendfile on|off", + "/ox announce <file>", + "/ox discover", + "/ox request <jid>") + CMD_DESC( + "OpenPGP (OX) commands to manage keys, and perform PGP encryption during chat sessions. ") + CMD_ARGS( + { "keys", "List all keys known to the system." }, + { "contacts", "Show contacts with assigned public keys." }, + { "start [<contact>]", "Start PGP encrypted chat, current contact will be used if not specified." }, + { "end", "End PGP encrypted chat with the current recipient." }, + { "log on|off", "Enable or disable plaintext logging of PGP encrypted messages." }, + { "log redact", "Log PGP encrypted messages, but replace the contents with [redacted]. This is the default." }, + { "char <char>", "Set the character to be displayed next to PGP encrypted messages." }, + { "announce <file>", "Announce a public key by pushing it on the XMPP Server" }, + { "discover <jid>", "Discover public keys of a jid " }, + { "request <jid>", "Request public keys" }, + { "sendfile on|off", "Allow /sendfile to send unencrypted files while otherwise using PGP." }) + CMD_EXAMPLES( + "/ox log off", + "/ox start odin@valhalla.edda", + "/ox end", + "/ox char X") }, #endif // HAVE_LIBGPGME { "/otr", - parse_args, 1, 3, NULL, - CMD_SUBFUNCS( - { "char", cmd_otr_char }, - { "log", cmd_otr_log }, - { "libver", cmd_otr_libver }, - { "policy", cmd_otr_policy }, - { "gen", cmd_otr_gen }, - { "myfp", cmd_otr_myfp }, - { "theirfp", cmd_otr_theirfp }, - { "start", cmd_otr_start }, - { "end", cmd_otr_end }, - { "trust", cmd_otr_trust }, - { "untrust", cmd_otr_untrust }, - { "secret", cmd_otr_secret }, - { "question", cmd_otr_question }, - { "answer", cmd_otr_answer }, - { "sendfile", cmd_otr_sendfile }) - CMD_NOMAINFUNC - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_UI) - CMD_SYN( - "/otr libver", - "/otr gen", - "/otr myfp|theirfp", - "/otr start [<contact>]", - "/otr end", - "/otr trust|untrust", - "/otr secret <secret>", - "/otr question <question> <answer>", - "/otr answer <answer>", - "/otr policy manual|opportunistic|always [<contact>]", - "/otr log on|off|redact", - "/otr char <char>", - "/otr sendfile on|off") - CMD_DESC( - "Off The Record (OTR) commands to manage keys, and perform OTR encryption during chat sessions.") - CMD_ARGS( - { "libver", "Show which version of the libotr library is being used." }, - { "gen", "Generate your private key." }, - { "myfp", "Show your fingerprint." }, - { "theirfp", "Show contacts fingerprint." }, - { "start [<contact>]", "Start an OTR session with contact, or current recipient if omitted." }, - { "end", "End the current OTR session." }, - { "trust|untrust", "Indicate whether or not you trust the contact's fingerprint." }, - { "secret <secret>", "Verify a contact's identity using a shared secret." }, - { "question <question> <answer>", "Verify a contact's identity using a question and expected answer." }, - { "answer <answer>", "Respond to a question answer verification request with your answer." }, - { "policy manual", "Set the global OTR policy to manual, OTR sessions must be started manually." }, - { "policy manual <contact>", "Set the OTR policy to manual for a specific contact." }, - { "policy opportunistic", "Set the global OTR policy to opportunistic, an OTR session will be attempted upon starting a conversation." }, - { "policy opportunistic <contact>", "Set the OTR policy to opportunistic for a specific contact." }, - { "policy always", "Set the global OTR policy to always, an error will be displayed if an OTR session cannot be initiated upon starting a conversation." }, - { "policy always <contact>", "Set the OTR policy to always for a specific contact." }, - { "log on|off", "Enable or disable plaintext logging of OTR encrypted messages." }, - { "log redact", "Log OTR encrypted messages, but replace the contents with [redacted]. This is the default." }, - { "char <char>", "Set the character to be displayed next to OTR encrypted messages." }, - { "sendfile on|off", "Allow /sendfile to send unencrypted files while in an OTR session."}) - CMD_EXAMPLES( - "/otr log off", - "/otr policy manual", - "/otr policy opportunistic odin@valhalla.edda", - "/otr gen", - "/otr start odin@valhalla.edda", - "/otr myfp", - "/otr theirfp", - "/otr question \"What is the name of my rabbit?\" fiffi", - "/otr end", - "/otr char *") - }, + parse_args, 1, 3, NULL, + CMD_SUBFUNCS( + { "char", cmd_otr_char }, + { "log", cmd_otr_log }, + { "libver", cmd_otr_libver }, + { "policy", cmd_otr_policy }, + { "gen", cmd_otr_gen }, + { "myfp", cmd_otr_myfp }, + { "theirfp", cmd_otr_theirfp }, + { "start", cmd_otr_start }, + { "end", cmd_otr_end }, + { "trust", cmd_otr_trust }, + { "untrust", cmd_otr_untrust }, + { "secret", cmd_otr_secret }, + { "question", cmd_otr_question }, + { "answer", cmd_otr_answer }, + { "sendfile", cmd_otr_sendfile }) + CMD_NOMAINFUNC + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_UI) + CMD_SYN( + "/otr libver", + "/otr gen", + "/otr myfp|theirfp", + "/otr start [<contact>]", + "/otr end", + "/otr trust|untrust", + "/otr secret <secret>", + "/otr question <question> <answer>", + "/otr answer <answer>", + "/otr policy manual|opportunistic|always [<contact>]", + "/otr log on|off|redact", + "/otr char <char>", + "/otr sendfile on|off") + CMD_DESC( + "Off The Record (OTR) commands to manage keys, and perform OTR encryption during chat sessions.") + CMD_ARGS( + { "libver", "Show which version of the libotr library is being used." }, + { "gen", "Generate your private key." }, + { "myfp", "Show your fingerprint." }, + { "theirfp", "Show contacts fingerprint." }, + { "start [<contact>]", "Start an OTR session with contact, or current recipient if omitted." }, + { "end", "End the current OTR session." }, + { "trust|untrust", "Indicate whether or not you trust the contact's fingerprint." }, + { "secret <secret>", "Verify a contact's identity using a shared secret." }, + { "question <question> <answer>", "Verify a contact's identity using a question and expected answer." }, + { "answer <answer>", "Respond to a question answer verification request with your answer." }, + { "policy manual", "Set the global OTR policy to manual, OTR sessions must be started manually." }, + { "policy manual <contact>", "Set the OTR policy to manual for a specific contact." }, + { "policy opportunistic", "Set the global OTR policy to opportunistic, an OTR session will be attempted upon starting a conversation." }, + { "policy opportunistic <contact>", "Set the OTR policy to opportunistic for a specific contact." }, + { "policy always", "Set the global OTR policy to always, an error will be displayed if an OTR session cannot be initiated upon starting a conversation." }, + { "policy always <contact>", "Set the OTR policy to always for a specific contact." }, + { "log on|off", "Enable or disable plaintext logging of OTR encrypted messages." }, + { "log redact", "Log OTR encrypted messages, but replace the contents with [redacted]. This is the default." }, + { "char <char>", "Set the character to be displayed next to OTR encrypted messages." }, + { "sendfile on|off", "Allow /sendfile to send unencrypted files while in an OTR session." }) + CMD_EXAMPLES( + "/otr log off", + "/otr policy manual", + "/otr policy opportunistic odin@valhalla.edda", + "/otr gen", + "/otr start odin@valhalla.edda", + "/otr myfp", + "/otr theirfp", + "/otr question \"What is the name of my rabbit?\" fiffi", + "/otr end", + "/otr char *") }, { "/outtype", - parse_args, 1, 1, &cons_outtype_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_outtype) - CMD_TAGS( - CMD_TAG_CHAT) - CMD_SYN( - "/outtype on|off") - CMD_DESC( - "Send typing notifications, chat states (/states) will be enabled if this setting is enabled.") - CMD_ARGS( - { "on|off", "Enable or disable sending typing notifications." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_outtype_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_outtype) + CMD_TAGS( + CMD_TAG_CHAT) + CMD_SYN( + "/outtype on|off") + CMD_DESC( + "Send typing notifications, chat states (/states) will be enabled if this setting is enabled.") + CMD_ARGS( + { "on|off", "Enable or disable sending typing notifications." }) + CMD_NOEXAMPLES }, { "/gone", - parse_args, 1, 1, &cons_gone_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_gone) - CMD_TAGS( - CMD_TAG_CHAT) - CMD_SYN( - "/gone <minutes>") - CMD_DESC( - "Send a 'gone' state to the recipient after the specified number of minutes. " - "Chat states (/states) will be enabled if this setting is set.") - CMD_ARGS( - { "<minutes>", "Number of minutes of inactivity before sending the 'gone' state, a value of 0 will disable sending this state." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_gone_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_gone) + CMD_TAGS( + CMD_TAG_CHAT) + CMD_SYN( + "/gone <minutes>") + CMD_DESC( + "Send a 'gone' state to the recipient after the specified number of minutes. " + "Chat states (/states) will be enabled if this setting is set.") + CMD_ARGS( + { "<minutes>", "Number of minutes of inactivity before sending the 'gone' state, a value of 0 will disable sending this state." }) + CMD_NOEXAMPLES }, { "/history", - parse_args, 1, 1, &cons_history_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_history) - CMD_TAGS( - CMD_TAG_UI, - CMD_TAG_CHAT) - CMD_SYN( - "/history on|off") - CMD_DESC( - "Switch chat history on or off, /chlog will automatically be enabled when this setting is on. " - "When history is enabled, previous messages are shown in chat windows.") - CMD_ARGS( - { "on|off", "Enable or disable showing chat history." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_history_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_history) + CMD_TAGS( + CMD_TAG_UI, + CMD_TAG_CHAT) + CMD_SYN( + "/history on|off") + CMD_DESC( + "Switch chat history on or off, /chlog will automatically be enabled when this setting is on. " + "When history is enabled, previous messages are shown in chat windows.") + CMD_ARGS( + { "on|off", "Enable or disable showing chat history." }) + CMD_NOEXAMPLES }, { "/log", - parse_args, 1, 2, &cons_log_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_log) - CMD_NOTAGS - CMD_SYN( - "/log where", - "/log rotate on|off", - "/log maxsize <bytes>", - "/log shared on|off") - CMD_DESC( - "Manage profanity log settings.") - CMD_ARGS( - { "where", "Show the current log file location." }, - { "rotate on|off", "Rotate log, default on." }, - { "maxsize <bytes>", "With rotate enabled, specifies the max log size, defaults to 1048580 (1MB)." }, - { "shared on|off", "Share logs between all instances, default: on. When off, the process id will be included in the log filename." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 2, &cons_log_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_log) + CMD_NOTAGS + CMD_SYN( + "/log where", + "/log rotate on|off", + "/log maxsize <bytes>", + "/log shared on|off") + CMD_DESC( + "Manage profanity log settings.") + CMD_ARGS( + { "where", "Show the current log file location." }, + { "rotate on|off", "Rotate log, default on." }, + { "maxsize <bytes>", "With rotate enabled, specifies the max log size, defaults to 1048580 (1MB)." }, + { "shared on|off", "Share logs between all instances, default: on. When off, the process id will be included in the log filename." }) + CMD_NOEXAMPLES }, { "/carbons", - parse_args, 1, 1, &cons_carbons_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_carbons) - CMD_TAGS( - CMD_TAG_CHAT) - CMD_SYN( - "/carbons on|off") - CMD_DESC( - "Enable or disable message carbons. " - "Message carbons ensure that both sides of all conversations are shared with all the user's clients that implement this protocol.") - CMD_ARGS( - { "on|off", "Enable or disable message carbons." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_carbons_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_carbons) + CMD_TAGS( + CMD_TAG_CHAT) + CMD_SYN( + "/carbons on|off") + CMD_DESC( + "Enable or disable message carbons. " + "Message carbons ensure that both sides of all conversations are shared with all the user's clients that implement this protocol.") + CMD_ARGS( + { "on|off", "Enable or disable message carbons." }) + CMD_NOEXAMPLES }, { "/receipts", - parse_args, 2, 2, &cons_receipts_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_receipts) - CMD_TAGS( - CMD_TAG_CHAT) - CMD_SYN( - "/receipts request on|off", - "/receipts send on|off") - CMD_DESC( - "Enable or disable message delivery receipts. The interface will indicate when a message has been received.") - CMD_ARGS( - { "request on|off", "Whether or not to request a receipt upon sending a message." }, - { "send on|off", "Whether or not to send a receipt if one has been requested with a received message." }) - CMD_NOEXAMPLES - }, + parse_args, 2, 2, &cons_receipts_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_receipts) + CMD_TAGS( + CMD_TAG_CHAT) + CMD_SYN( + "/receipts request on|off", + "/receipts send on|off") + CMD_DESC( + "Enable or disable message delivery receipts. The interface will indicate when a message has been received.") + CMD_ARGS( + { "request on|off", "Whether or not to request a receipt upon sending a message." }, + { "send on|off", "Whether or not to send a receipt if one has been requested with a received message." }) + CMD_NOEXAMPLES }, { "/reconnect", - parse_args, 1, 1, &cons_reconnect_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_reconnect) - CMD_TAGS( - CMD_TAG_CONNECTION) - CMD_SYN( - "/reconnect <seconds>") - CMD_DESC( - "Set the reconnect attempt interval for when the connection is lost.") - CMD_ARGS( - { "<seconds>", "Number of seconds before attempting to reconnect, a value of 0 disables reconnect." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_reconnect_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_reconnect) + CMD_TAGS( + CMD_TAG_CONNECTION) + CMD_SYN( + "/reconnect <seconds>") + CMD_DESC( + "Set the reconnect attempt interval for when the connection is lost.") + CMD_ARGS( + { "<seconds>", "Number of seconds before attempting to reconnect, a value of 0 disables reconnect." }) + CMD_NOEXAMPLES }, { "/autoping", - parse_args, 2, 2, &cons_autoping_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_autoping) - CMD_TAGS( - CMD_TAG_CONNECTION) - CMD_SYN( - "/autoping set <seconds>", - "/autoping timeout <seconds>") - CMD_DESC( - "Set the interval between sending ping requests to the server to ensure the connection is kept alive.") - CMD_ARGS( - { "set <seconds>", "Number of seconds between sending pings, a value of 0 disables autoping." }, - { "timeout <seconds>", "Seconds to wait for autoping responses, after which the connection is considered broken." }) - CMD_NOEXAMPLES - }, + parse_args, 2, 2, &cons_autoping_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_autoping) + CMD_TAGS( + CMD_TAG_CONNECTION) + CMD_SYN( + "/autoping set <seconds>", + "/autoping timeout <seconds>") + CMD_DESC( + "Set the interval between sending ping requests to the server to ensure the connection is kept alive.") + CMD_ARGS( + { "set <seconds>", "Number of seconds between sending pings, a value of 0 disables autoping." }, + { "timeout <seconds>", "Seconds to wait for autoping responses, after which the connection is considered broken." }) + CMD_NOEXAMPLES }, { "/ping", - parse_args, 0, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_ping) - CMD_TAGS( - CMD_TAG_CONNECTION) - CMD_SYN( - "/ping [<jid>]") - CMD_DESC( - "Sends an IQ ping stanza to the specified JID. " - "If no JID is supplied, your chat server will be pinged.") - CMD_ARGS( - { "<jid>", "The Jabber ID to send the ping request to." }) - CMD_NOEXAMPLES - }, + parse_args, 0, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_ping) + CMD_TAGS( + CMD_TAG_CONNECTION) + CMD_SYN( + "/ping [<jid>]") + CMD_DESC( + "Sends an IQ ping stanza to the specified JID. " + "If no JID is supplied, your chat server will be pinged.") + CMD_ARGS( + { "<jid>", "The Jabber ID to send the ping request to." }) + CMD_NOEXAMPLES }, { "/autoaway", - parse_args_with_freetext, 2, 3, &cons_autoaway_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_autoaway) - CMD_TAGS( - CMD_TAG_PRESENCE) - CMD_SYN( - "/autoaway mode idle|away|off", - "/autoaway time away|xa <minutes>", - "/autoaway message away|xa <message>|off", - "/autoaway check on|off") - CMD_DESC( - "Manage autoaway settings for idle time.") - CMD_ARGS( - { "mode idle", "Sends idle time, status remains online." }, - { "mode away", "Sends away and xa presence as well as idle time." }, - { "mode off", "Disabled (default)." }, - { "time away <minutes>", "Number of minutes before the away presence is sent, default: 15." }, - { "time xa <minutes>", "Number of minutes before the xa presence is sent, default: 0 (disabled)." }, - { "message away <message>", "Optional message to send with the away presence, default: off (disabled)." }, - { "message xa <message>", "Optional message to send with the xa presence, default: off (disabled)." }, - { "message away off", "Send no message with away presence." }, - { "message xa off", "Send no message with xa presence." }, - { "check on|off", "When enabled, checks for activity and sends online presence, default: on." }) - CMD_EXAMPLES( - "/autoaway mode away", - "/autoaway time away 30", - "/autoaway message away Away from computer for a while", - "/autoaway time xa 120", - "/autoaway message xa Away from computer for a very long time", - "/autoaway check off") - }, + parse_args_with_freetext, 2, 3, &cons_autoaway_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_autoaway) + CMD_TAGS( + CMD_TAG_PRESENCE) + CMD_SYN( + "/autoaway mode idle|away|off", + "/autoaway time away|xa <minutes>", + "/autoaway message away|xa <message>|off", + "/autoaway check on|off") + CMD_DESC( + "Manage autoaway settings for idle time.") + CMD_ARGS( + { "mode idle", "Sends idle time, status remains online." }, + { "mode away", "Sends away and xa presence as well as idle time." }, + { "mode off", "Disabled (default)." }, + { "time away <minutes>", "Number of minutes before the away presence is sent, default: 15." }, + { "time xa <minutes>", "Number of minutes before the xa presence is sent, default: 0 (disabled)." }, + { "message away <message>", "Optional message to send with the away presence, default: off (disabled)." }, + { "message xa <message>", "Optional message to send with the xa presence, default: off (disabled)." }, + { "message away off", "Send no message with away presence." }, + { "message xa off", "Send no message with xa presence." }, + { "check on|off", "When enabled, checks for activity and sends online presence, default: on." }) + CMD_EXAMPLES( + "/autoaway mode away", + "/autoaway time away 30", + "/autoaway message away Away from computer for a while", + "/autoaway time xa 120", + "/autoaway message xa Away from computer for a very long time", + "/autoaway check off") }, { "/priority", - parse_args, 1, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_priority) - CMD_TAGS( - CMD_TAG_PRESENCE) - CMD_SYN( - "/priority <priority>") - CMD_DESC( - "Set priority for the current account. " - "See the /account command for specific priority settings per presence status.") - CMD_ARGS( - { "<priority>", "Number between -128 and 127, default: 0." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_priority) + CMD_TAGS( + CMD_TAG_PRESENCE) + CMD_SYN( + "/priority <priority>") + CMD_DESC( + "Set priority for the current account. " + "See the /account command for specific priority settings per presence status.") + CMD_ARGS( + { "<priority>", "Number between -128 and 127, default: 0." }) + CMD_NOEXAMPLES }, { "/account", - parse_args, 0, 4, NULL, - CMD_SUBFUNCS( - { "list", cmd_account_list }, - { "show", cmd_account_show }, - { "add", cmd_account_add }, - { "remove", cmd_account_remove }, - { "enable", cmd_account_enable }, - { "disable", cmd_account_disable }, - { "rename", cmd_account_rename }, - { "default", cmd_account_default }, - { "set", cmd_account_set }, - { "clear", cmd_account_clear }) - CMD_MAINFUNC(cmd_account) - CMD_TAGS( - CMD_TAG_CONNECTION, - CMD_TAG_PRESENCE, - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/account", - "/account list", - "/account show <account>", - "/account enable|disable <account>", - "/account default set <account>", - "/account default off", - "/account add <account>", - "/account remove <account>", - "/account rename <account> <newaccount>", - "/account set <account> jid <jid>", - "/account set <account> server <server>", - "/account set <account> port <port>", - "/account set <account> status <presence>", - "/account set <account> status last", - "/account set <account> <presence> <priority>", - "/account set <account> resource <resource>", - "/account set <account> password <password>", - "/account set <account> eval_password <command>", - "/account set <account> muc <service>", - "/account set <account> nick <nick>", - "/account set <account> otr <policy>", - "/account set <account> pgpkeyid <pgpkeyid>", - "/account set <account> startscript <script>", - "/account set <account> tls force|allow|trust|legacy|disable", - "/account set <account> auth default|legacy", - "/account set <account> theme <theme>", - "/account clear <account> password", - "/account clear <account> eval_password", - "/account clear <account> server", - "/account clear <account> port", - "/account clear <account> otr", - "/account clear <account> pgpkeyid", - "/account clear <account> startscript", - "/account clear <account> muc", - "/account clear <account> resource") - CMD_DESC( - "Commands for creating and managing accounts. " - "Calling with no arguments will display information for the current account.") - CMD_ARGS( - { "list", "List all accounts." }, - { "enable <account>", "Enable the account, it will be used for autocompletion." }, - { "show <account>", "Show details for the specified account." }, - { "disable <account>", "Disable the account." }, - { "default set <account>", "Set the default account, used when no argument passed to the /connect command." }, - { "default off", "Clear the default account setting." }, - { "add <account>", "Create a new account." }, - { "remove <account>", "Remove an account." }, - { "rename <account> <newaccount>", "Rename 'account' to 'newaccount'." }, - { "set <account> jid <jid>", "Set the Jabber ID for the account, account name will be used if not set." }, - { "set <account> server <server>", "The chat server, if different to the domainpart of the JID." }, - { "set <account> port <port>", "The port used for connecting if not the default (5222, or 5223 for SSL)." }, - { "set <account> status <presence>", "The presence status to use on login." }, - { "set <account> status last", "Use your last status before logging out, when logging in." }, - { "set <account> <presence> <priority>", "Set the priority (-128..127) to use for the specified presence." }, - { "set <account> resource <resource>", "The resource to be used for this account, defaults to 'profanity'." }, - { "set <account> password <password>", "Password for the account, note this is currently stored in plaintext if set." }, - { "set <account> eval_password <command>", "Shell command evaluated to retrieve password for the account. Can be used to retrieve password from keyring." }, - { "set <account> muc <service>", "The default MUC chat service to use, defaults to the servers disco info response." }, - { "set <account> nick <nick>", "The default nickname to use when joining chat rooms." }, - { "set <account> otr <policy>", "Override global OTR policy for this account, see /otr." }, - { "set <account> pgpkeyid <pgpkeyid>", "Set the ID of the PGP key for this account, see /pgp." }, - { "set <account> startscript <script>", "Set the script to execute after connecting." }, - { "set <account> tls force", "Force TLS connection, and fail if one cannot be established, this is default behaviour." }, - { "set <account> tls allow", "Use TLS for the connection if it is available." }, - { "set <account> tls trust", "Force TLS connection and trust server's certificate." }, - { "set <account> tls legacy", "Use legacy TLS for the connection. It means server doesn't support STARTTLS and TLS is forced just after TCP connection is established." }, - { "set <account> tls disable", "Disable TLS for the connection." }, - { "set <account> auth default", "Use default authentication process." }, - { "set <account> auth legacy", "Allow legacy authentication." }, - { "set <account> <theme>", "Set the UI theme for the account." }, - { "clear <account> server", "Remove the server setting for this account." }, - { "clear <account> port", "Remove the port setting for this account." }, - { "clear <account> password", "Remove the password setting for this account." }, - { "clear <account> eval_password", "Remove the eval_password setting for this account." }, - { "clear <account> otr", "Remove the OTR policy setting for this account." }, - { "clear <account> pgpkeyid", "Remove pgpkeyid associated with this account." }, - { "clear <account> startscript", "Remove startscript associated with this account." }, - { "clear <account> theme", "Clear the theme setting for the account, the global theme will be used." }, - { "clear <account> resource", "Remove the resource setting for this account."}, - { "clear <account> muc", "Remove the default MUC service setting."}) - CMD_EXAMPLES( - "/account add me", - "/account set me jid ulfhednar@valhalla.edda", - "/account set me server talk.chat.com", - "/account set me port 5111", - "/account set me muc chatservice.mycompany.com", - "/account set me nick dennis", - "/account set me status dnd", - "/account set me dnd -1", - "/account rename me chattyme", - "/account clear me pgpkeyid" - ) - }, + parse_args, 0, 4, NULL, + CMD_SUBFUNCS( + { "list", cmd_account_list }, + { "show", cmd_account_show }, + { "add", cmd_account_add }, + { "remove", cmd_account_remove }, + { "enable", cmd_account_enable }, + { "disable", cmd_account_disable }, + { "rename", cmd_account_rename }, + { "default", cmd_account_default }, + { "set", cmd_account_set }, + { "clear", cmd_account_clear }) + CMD_MAINFUNC(cmd_account) + CMD_TAGS( + CMD_TAG_CONNECTION, + CMD_TAG_PRESENCE, + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/account", + "/account list", + "/account show <account>", + "/account enable|disable <account>", + "/account default set <account>", + "/account default off", + "/account add <account>", + "/account remove <account>", + "/account rename <account> <newaccount>", + "/account set <account> jid <jid>", + "/account set <account> server <server>", + "/account set <account> port <port>", + "/account set <account> status <presence>", + "/account set <account> status last", + "/account set <account> <presence> <priority>", + "/account set <account> resource <resource>", + "/account set <account> password <password>", + "/account set <account> eval_password <command>", + "/account set <account> muc <service>", + "/account set <account> nick <nick>", + "/account set <account> otr <policy>", + "/account set <account> pgpkeyid <pgpkeyid>", + "/account set <account> startscript <script>", + "/account set <account> tls force|allow|trust|legacy|disable", + "/account set <account> auth default|legacy", + "/account set <account> theme <theme>", + "/account clear <account> password", + "/account clear <account> eval_password", + "/account clear <account> server", + "/account clear <account> port", + "/account clear <account> otr", + "/account clear <account> pgpkeyid", + "/account clear <account> startscript", + "/account clear <account> muc", + "/account clear <account> resource") + CMD_DESC( + "Commands for creating and managing accounts. " + "Calling with no arguments will display information for the current account.") + CMD_ARGS( + { "list", "List all accounts." }, + { "enable <account>", "Enable the account, it will be used for autocompletion." }, + { "show <account>", "Show details for the specified account." }, + { "disable <account>", "Disable the account." }, + { "default set <account>", "Set the default account, used when no argument passed to the /connect command." }, + { "default off", "Clear the default account setting." }, + { "add <account>", "Create a new account." }, + { "remove <account>", "Remove an account." }, + { "rename <account> <newaccount>", "Rename 'account' to 'newaccount'." }, + { "set <account> jid <jid>", "Set the Jabber ID for the account, account name will be used if not set." }, + { "set <account> server <server>", "The chat server, if different to the domainpart of the JID." }, + { "set <account> port <port>", "The port used for connecting if not the default (5222, or 5223 for SSL)." }, + { "set <account> status <presence>", "The presence status to use on login." }, + { "set <account> status last", "Use your last status before logging out, when logging in." }, + { "set <account> <presence> <priority>", "Set the priority (-128..127) to use for the specified presence." }, + { "set <account> resource <resource>", "The resource to be used for this account, defaults to 'profanity'." }, + { "set <account> password <password>", "Password for the account, note this is currently stored in plaintext if set." }, + { "set <account> eval_password <command>", "Shell command evaluated to retrieve password for the account. Can be used to retrieve password from keyring." }, + { "set <account> muc <service>", "The default MUC chat service to use, defaults to the servers disco info response." }, + { "set <account> nick <nick>", "The default nickname to use when joining chat rooms." }, + { "set <account> otr <policy>", "Override global OTR policy for this account, see /otr." }, + { "set <account> pgpkeyid <pgpkeyid>", "Set the ID of the PGP key for this account, see /pgp." }, + { "set <account> startscript <script>", "Set the script to execute after connecting." }, + { "set <account> tls force", "Force TLS connection, and fail if one cannot be established, this is default behaviour." }, + { "set <account> tls allow", "Use TLS for the connection if it is available." }, + { "set <account> tls trust", "Force TLS connection and trust server's certificate." }, + { "set <account> tls legacy", "Use legacy TLS for the connection. It means server doesn't support STARTTLS and TLS is forced just after TCP connection is established." }, + { "set <account> tls disable", "Disable TLS for the connection." }, + { "set <account> auth default", "Use default authentication process." }, + { "set <account> auth legacy", "Allow legacy authentication." }, + { "set <account> <theme>", "Set the UI theme for the account." }, + { "clear <account> server", "Remove the server setting for this account." }, + { "clear <account> port", "Remove the port setting for this account." }, + { "clear <account> password", "Remove the password setting for this account." }, + { "clear <account> eval_password", "Remove the eval_password setting for this account." }, + { "clear <account> otr", "Remove the OTR policy setting for this account." }, + { "clear <account> pgpkeyid", "Remove pgpkeyid associated with this account." }, + { "clear <account> startscript", "Remove startscript associated with this account." }, + { "clear <account> theme", "Clear the theme setting for the account, the global theme will be used." }, + { "clear <account> resource", "Remove the resource setting for this account." }, + { "clear <account> muc", "Remove the default MUC service setting." }) + CMD_EXAMPLES( + "/account add me", + "/account set me jid ulfhednar@valhalla.edda", + "/account set me server talk.chat.com", + "/account set me port 5111", + "/account set me muc chatservice.mycompany.com", + "/account set me nick dennis", + "/account set me status dnd", + "/account set me dnd -1", + "/account rename me chattyme", + "/account clear me pgpkeyid") }, { "/plugins", - parse_args, 0, 3, NULL, - CMD_SUBFUNCS( - { "sourcepath", cmd_plugins_sourcepath }, - { "install", cmd_plugins_install }, - { "uninstall", cmd_plugins_uninstall }, - { "update", cmd_plugins_update }, - { "load", cmd_plugins_load }, - { "unload", cmd_plugins_unload }, - { "reload", cmd_plugins_reload }, - { "python_version", cmd_plugins_python_version }) - CMD_MAINFUNC(cmd_plugins) - CMD_NOTAGS - CMD_SYN( - "/plugins", - "/plugins sourcepath set <path>", - "/plugins sourcepath clear", - "/plugins install [<path>]", - "/plugins uninstall [<plugin>]", - "/plugins update [<path>]", - "/plugins unload [<plugin>]", - "/plugins load [<plugin>]", - "/plugins reload [<plugin>]", - "/plugins python_version") - CMD_DESC( - "Manage plugins. Passing no arguments lists currently loaded plugins.") - CMD_ARGS( - { "sourcepath set <path>", "Set the default path to install plugins from, will be used if no arg is passed to /plugins install." }, - { "sourcepath clear", "Clear the default plugins source path." }, - { "install [<path>]", "Install a plugin, or all plugins found in a directory (recursive). Passing no argument will use the sourcepath if one is set." }, - { "uninstall [<plugin>]", "Uninstall a plugin." }, - { "update [<path>]", "Updates an installed plugin" }, - { "load [<plugin>]", "Load a plugin that already exists in the plugin directory, passing no argument loads all found plugins." }, - { "unload [<plugin>]", "Unload a loaded plugin, passing no argument will unload all plugins." }, - { "reload [<plugin>]", "Reload a plugin, passing no argument will reload all plugins." }, - { "python_version", "Show the Python interpreter version." }) - CMD_EXAMPLES( - "/plugins sourcepath set /home/meee/projects/profanity-plugins", - "/plugins install", - "/plugins install /home/steveharris/Downloads/metal.py", - "/plugins update /home/steveharris/Downloads/metal.py", - "/plugins uninstall browser.py", - "/plugins load browser.py", - "/plugins unload say.py", - "/plugins reload wikipedia.py") - }, + parse_args, 0, 3, NULL, + CMD_SUBFUNCS( + { "sourcepath", cmd_plugins_sourcepath }, + { "install", cmd_plugins_install }, + { "uninstall", cmd_plugins_uninstall }, + { "update", cmd_plugins_update }, + { "load", cmd_plugins_load }, + { "unload", cmd_plugins_unload }, + { "reload", cmd_plugins_reload }, + { "python_version", cmd_plugins_python_version }) + CMD_MAINFUNC(cmd_plugins) + CMD_NOTAGS + CMD_SYN( + "/plugins", + "/plugins sourcepath set <path>", + "/plugins sourcepath clear", + "/plugins install [<path>]", + "/plugins uninstall [<plugin>]", + "/plugins update [<path>]", + "/plugins unload [<plugin>]", + "/plugins load [<plugin>]", + "/plugins reload [<plugin>]", + "/plugins python_version") + CMD_DESC( + "Manage plugins. Passing no arguments lists currently loaded plugins.") + CMD_ARGS( + { "sourcepath set <path>", "Set the default path to install plugins from, will be used if no arg is passed to /plugins install." }, + { "sourcepath clear", "Clear the default plugins source path." }, + { "install [<path>]", "Install a plugin, or all plugins found in a directory (recursive). Passing no argument will use the sourcepath if one is set." }, + { "uninstall [<plugin>]", "Uninstall a plugin." }, + { "update [<path>]", "Updates an installed plugin" }, + { "load [<plugin>]", "Load a plugin that already exists in the plugin directory, passing no argument loads all found plugins." }, + { "unload [<plugin>]", "Unload a loaded plugin, passing no argument will unload all plugins." }, + { "reload [<plugin>]", "Reload a plugin, passing no argument will reload all plugins." }, + { "python_version", "Show the Python interpreter version." }) + CMD_EXAMPLES( + "/plugins sourcepath set /home/meee/projects/profanity-plugins", + "/plugins install", + "/plugins install /home/steveharris/Downloads/metal.py", + "/plugins update /home/steveharris/Downloads/metal.py", + "/plugins uninstall browser.py", + "/plugins load browser.py", + "/plugins unload say.py", + "/plugins reload wikipedia.py") }, { "/prefs", - parse_args, 0, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_prefs) - CMD_NOTAGS - CMD_SYN( - "/prefs [ui|desktop|chat|log|conn|presence|otr|pgp|omemo]") - CMD_DESC( - "Show preferences for different areas of functionality. " - "Passing no arguments shows all preferences.") - CMD_ARGS( - { "ui", "User interface preferences." }, - { "desktop", "Desktop notification preferences." }, - { "chat", "Chat state preferences." }, - { "log", "Logging preferences." }, - { "conn", "Connection handling preferences." }, - { "presence", "Chat presence preferences." }, - { "otr", "Off The Record preferences." }, - { "pgp", "OpenPGP preferences." }, - { "omemo", "OMEMO preferences." }) - CMD_NOEXAMPLES - }, + parse_args, 0, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_prefs) + CMD_NOTAGS + CMD_SYN( + "/prefs [ui|desktop|chat|log|conn|presence|otr|pgp|omemo]") + CMD_DESC( + "Show preferences for different areas of functionality. " + "Passing no arguments shows all preferences.") + CMD_ARGS( + { "ui", "User interface preferences." }, + { "desktop", "Desktop notification preferences." }, + { "chat", "Chat state preferences." }, + { "log", "Logging preferences." }, + { "conn", "Connection handling preferences." }, + { "presence", "Chat presence preferences." }, + { "otr", "Off The Record preferences." }, + { "pgp", "OpenPGP preferences." }, + { "omemo", "OMEMO preferences." }) + CMD_NOEXAMPLES }, { "/theme", - parse_args, 1, 2, &cons_theme_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_theme) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/theme list", - "/theme load <theme>", - "/theme full-load <theme>", - "/theme colours", - "/theme properties") - CMD_DESC( - "Load a theme, includes colours and UI options.") - CMD_ARGS( - { "list", "List all available themes." }, - { "load <theme>", "Load colours from specified theme. 'default' will reset to the default theme." }, - { "full-load <theme>", "Same as 'load' but will also load preferences set in the theme, not just colours." }, - { "colours", "Show colour values as rendered by the terminal." }, - { "properties", "Show colour settings for current theme." }) - CMD_EXAMPLES( - "/theme list", - "/theme load forest") - }, + parse_args, 1, 2, &cons_theme_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_theme) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/theme list", + "/theme load <theme>", + "/theme full-load <theme>", + "/theme colours", + "/theme properties") + CMD_DESC( + "Load a theme, includes colours and UI options.") + CMD_ARGS( + { "list", "List all available themes." }, + { "load <theme>", "Load colours from specified theme. 'default' will reset to the default theme." }, + { "full-load <theme>", "Same as 'load' but will also load preferences set in the theme, not just colours." }, + { "colours", "Show colour values as rendered by the terminal." }, + { "properties", "Show colour settings for current theme." }) + CMD_EXAMPLES( + "/theme list", + "/theme load forest") }, { "/xmlconsole", - parse_args, 0, 0, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_xmlconsole) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/xmlconsole") - CMD_DESC( - "Open the XML console to view incoming and outgoing XMPP traffic.") - CMD_NOARGS - CMD_NOEXAMPLES - }, + parse_args, 0, 0, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_xmlconsole) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/xmlconsole") + CMD_DESC( + "Open the XML console to view incoming and outgoing XMPP traffic.") + CMD_NOARGS + CMD_NOEXAMPLES }, { "/script", - parse_args, 1, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_script) - CMD_NOTAGS - CMD_SYN( - "/script run <script>", - "/script list", - "/script show <script>") - CMD_DESC( - "Run command scripts. " - "Scripts are stored in $XDG_DATA_HOME/profanity/scripts/ which is usually $HOME/.local/share/profanity/scripts/.") - CMD_ARGS( - { "script run <script>", "Execute a script." }, - { "script list", "List all scripts TODO." }, - { "script show <script>", "Show the commands in script TODO." }) - CMD_EXAMPLES( - "/script list", - "/script run myscript", - "/script show somescript") - }, + parse_args, 1, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_script) + CMD_NOTAGS + CMD_SYN( + "/script run <script>", + "/script list", + "/script show <script>") + CMD_DESC( + "Run command scripts. " + "Scripts are stored in $XDG_DATA_HOME/profanity/scripts/ which is usually $HOME/.local/share/profanity/scripts/.") + CMD_ARGS( + { "script run <script>", "Execute a script." }, + { "script list", "List all scripts TODO." }, + { "script show <script>", "Show the commands in script TODO." }) + CMD_EXAMPLES( + "/script list", + "/script run myscript", + "/script show somescript") }, { "/export", - parse_args, 1, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_export) - CMD_NOTAGS - CMD_SYN( - "/export <filepath>") - CMD_DESC( - "Exports contacts to a csv file.") - CMD_ARGS( - { "<filepath>", "Path to the output file." }) - CMD_EXAMPLES( - "/export /path/to/output.csv", - "/export ~/contacts.csv") - }, + parse_args, 1, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_export) + CMD_NOTAGS + CMD_SYN( + "/export <filepath>") + CMD_DESC( + "Exports contacts to a csv file.") + CMD_ARGS( + { "<filepath>", "Path to the output file." }) + CMD_EXAMPLES( + "/export /path/to/output.csv", + "/export ~/contacts.csv") }, { "/cmd", - parse_args, 1, 3, NULL, - CMD_SUBFUNCS( - { "list", cmd_command_list }, - { "exec", cmd_command_exec }) - CMD_NOMAINFUNC - CMD_NOTAGS - CMD_SYN( - "/cmd list [<jid>]", - "/cmd exec <command> [<jid>]") - CMD_DESC( - "Execute ad hoc commands.") - CMD_ARGS( - { "list", "List supported ad hoc commands." }, - { "exec <command>", "Execute a command." }) - CMD_EXAMPLES( - "/cmd list", - "/cmd exec ping") - }, + parse_args, 1, 3, NULL, + CMD_SUBFUNCS( + { "list", cmd_command_list }, + { "exec", cmd_command_exec }) + CMD_NOMAINFUNC + CMD_NOTAGS + CMD_SYN( + "/cmd list [<jid>]", + "/cmd exec <command> [<jid>]") + CMD_DESC( + "Execute ad hoc commands.") + CMD_ARGS( + { "list", "List supported ad hoc commands." }, + { "exec <command>", "Execute a command." }) + CMD_EXAMPLES( + "/cmd list", + "/cmd exec ping") }, { "/omemo", - parse_args, 1, 3, NULL, - CMD_SUBFUNCS( - { "gen", cmd_omemo_gen }, - { "log", cmd_omemo_log }, - { "start", cmd_omemo_start }, - { "end", cmd_omemo_end }, - { "trust", cmd_omemo_trust }, - { "untrust", cmd_omemo_untrust }, - { "fingerprint", cmd_omemo_fingerprint }, - { "char", cmd_omemo_char }, - { "policy", cmd_omemo_policy }, - { "clear_device_list", cmd_omemo_clear_device_list }, - { "sendfile", cmd_omemo_sendfile} ) - CMD_NOMAINFUNC - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_UI) - CMD_SYN( - "/omemo gen", - "/omemo log on|off|redact", - "/omemo start [<contact>]", - "/omemo trust [<contact>] <fingerprint>", - "/omemo end", - "/omemo fingerprint [<contact>]", - "/omemo char <char>", - "/omemo policy manual|automatic|always", - "/omemo sendfile on|off", - "/omemo clear_device_list") - CMD_DESC( - "OMEMO commands to manage keys, and perform encryption during chat sessions.") - CMD_ARGS( - { "gen", "Generate OMEMO crytographic materials for current account." }, - { "start [<contact>]", "Start an OMEMO session with contact, or current recipient if omitted." }, - { "end", "End the current OMEMO session." }, - { "log on|off", "Enable or disable plaintext logging of OMEMO encrypted messages." }, - { "log redact", "Log OMEMO encrypted messages, but replace the contents with [redacted]. This is the default." }, - { "fingerprint [<contact>]", "Show contact fingerprints, or current recipient if omitted." }, - { "char <char>", "Set the character to be displayed next to OMEMO encrypted messages." }, - { "policy manual", "Set the global OMEMO policy to manual, OMEMO sessions must be started manually." }, - { "policy automatic", "Set the global OMEMO policy to opportunistic, an OMEMO session will be attempted upon starting a conversation." }, - { "policy always", "Set the global OMEMO policy to always, an error will be displayed if an OMEMO session cannot be initiated upon starting a conversation." }, - { "sendfile on|off", "Allow /sendfile to send unencrypted files while in an OMEMO session."}, - { "clear_device_list", "Clear your own device list on server side. Each client will reannounce itself when connected back."}) - CMD_EXAMPLES( - "/omemo gen", - "/omemo start odin@valhalla.edda", - "/omemo trust c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a", - "/omemo untrust loki@valhalla.edda c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a", - "/omemo char *") - }, + parse_args, 1, 3, NULL, + CMD_SUBFUNCS( + { "gen", cmd_omemo_gen }, + { "log", cmd_omemo_log }, + { "start", cmd_omemo_start }, + { "end", cmd_omemo_end }, + { "trust", cmd_omemo_trust }, + { "untrust", cmd_omemo_untrust }, + { "fingerprint", cmd_omemo_fingerprint }, + { "char", cmd_omemo_char }, + { "policy", cmd_omemo_policy }, + { "clear_device_list", cmd_omemo_clear_device_list }, + { "sendfile", cmd_omemo_sendfile }) + CMD_NOMAINFUNC + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_UI) + CMD_SYN( + "/omemo gen", + "/omemo log on|off|redact", + "/omemo start [<contact>]", + "/omemo trust [<contact>] <fingerprint>", + "/omemo end", + "/omemo fingerprint [<contact>]", + "/omemo char <char>", + "/omemo policy manual|automatic|always", + "/omemo sendfile on|off", + "/omemo clear_device_list") + CMD_DESC( + "OMEMO commands to manage keys, and perform encryption during chat sessions.") + CMD_ARGS( + { "gen", "Generate OMEMO crytographic materials for current account." }, + { "start [<contact>]", "Start an OMEMO session with contact, or current recipient if omitted." }, + { "end", "End the current OMEMO session." }, + { "log on|off", "Enable or disable plaintext logging of OMEMO encrypted messages." }, + { "log redact", "Log OMEMO encrypted messages, but replace the contents with [redacted]. This is the default." }, + { "fingerprint [<contact>]", "Show contact fingerprints, or current recipient if omitted." }, + { "char <char>", "Set the character to be displayed next to OMEMO encrypted messages." }, + { "policy manual", "Set the global OMEMO policy to manual, OMEMO sessions must be started manually." }, + { "policy automatic", "Set the global OMEMO policy to opportunistic, an OMEMO session will be attempted upon starting a conversation." }, + { "policy always", "Set the global OMEMO policy to always, an error will be displayed if an OMEMO session cannot be initiated upon starting a conversation." }, + { "sendfile on|off", "Allow /sendfile to send unencrypted files while in an OMEMO session." }, + { "clear_device_list", "Clear your own device list on server side. Each client will reannounce itself when connected back." }) + CMD_EXAMPLES( + "/omemo gen", + "/omemo start odin@valhalla.edda", + "/omemo trust c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a", + "/omemo untrust loki@valhalla.edda c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a", + "/omemo char *") }, { "/save", - parse_args, 0, 0, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_save) - CMD_NOTAGS - CMD_SYN( - "/save") - CMD_DESC( - "Save preferences to configuration file.") - CMD_NOARGS - CMD_NOEXAMPLES - }, + parse_args, 0, 0, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_save) + CMD_NOTAGS + CMD_SYN( + "/save") + CMD_DESC( + "Save preferences to configuration file.") + CMD_NOARGS + CMD_NOEXAMPLES }, { "/reload", - parse_args, 0, 0, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_reload) - CMD_NOTAGS - CMD_SYN( - "/reload") - CMD_DESC( - "Reload preferences from configuration file.") - CMD_NOARGS - CMD_NOEXAMPLES - }, + parse_args, 0, 0, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_reload) + CMD_NOTAGS + CMD_SYN( + "/reload") + CMD_DESC( + "Reload preferences from configuration file.") + CMD_NOARGS + CMD_NOEXAMPLES }, { "/paste", - parse_args, 0, 0, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_paste) - CMD_NOTAGS - CMD_SYN( - "/paste") - CMD_DESC( - "Paste clipboard.") - CMD_NOARGS - CMD_NOEXAMPLES - }, + parse_args, 0, 0, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_paste) + CMD_NOTAGS + CMD_SYN( + "/paste") + CMD_DESC( + "Paste clipboard.") + CMD_NOARGS + CMD_NOEXAMPLES }, { "/color", - parse_args, 1, 2, &cons_color_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_color) - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/color on|off|redgreen|blue", - "/color own on|off") - CMD_DESC( - "Settings for consistent color generation for nicks (XEP-0392). Including corrections for Color Vision Deficiencies. " - "Your terminal needs to support 256 colors.") - CMD_ARGS( - { "on|off|redgreen|blue", "Enable or disable nick colorization for MUC nicks. 'redgreen' is for people with red/green blindess and 'blue' for people with blue blindness."}, - { "own on|off", "Enable color generation for own nick. If disabled the color from the color from the theme ('me') will get used."}) - CMD_EXAMPLES( - "/color off", - "/color on", - "/color blue", - "/color own off") - }, + parse_args, 1, 2, &cons_color_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_color) + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/color on|off|redgreen|blue", + "/color own on|off") + CMD_DESC( + "Settings for consistent color generation for nicks (XEP-0392). Including corrections for Color Vision Deficiencies. " + "Your terminal needs to support 256 colors.") + CMD_ARGS( + { "on|off|redgreen|blue", "Enable or disable nick colorization for MUC nicks. 'redgreen' is for people with red/green blindess and 'blue' for people with blue blindness." }, + { "own on|off", "Enable color generation for own nick. If disabled the color from the color from the theme ('me') will get used." }) + CMD_EXAMPLES( + "/color off", + "/color on", + "/color blue", + "/color own off") }, { "/avatar", - parse_args, 2, 2, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_avatar) - CMD_TAGS( - CMD_TAG_CHAT) - CMD_SYN( - "/avatar get <barejid>", - "/avatar open <barejid>") - CMD_DESC( - "Download avatar (XEP-0084) for a certain contact. " - "If nothing happens after using this command the user either doesn't have an avatar set at all " - "or doesn't use XEP-0084 to publish it.") - CMD_ARGS( - { "get <barejid>", "Download the avatar. barejid is the JID to download avatar from."}, - { "open <barejid>", "Download avatar and open it with command."}) - CMD_EXAMPLES( - "/avatar get thor@valhalla.edda", - "/avatar open freyja@vanaheimr.edda") - }, + parse_args, 2, 2, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_avatar) + CMD_TAGS( + CMD_TAG_CHAT) + CMD_SYN( + "/avatar get <barejid>", + "/avatar open <barejid>") + CMD_DESC( + "Download avatar (XEP-0084) for a certain contact. " + "If nothing happens after using this command the user either doesn't have an avatar set at all " + "or doesn't use XEP-0084 to publish it.") + CMD_ARGS( + { "get <barejid>", "Download the avatar. barejid is the JID to download avatar from." }, + { "open <barejid>", "Download avatar and open it with command." }) + CMD_EXAMPLES( + "/avatar get thor@valhalla.edda", + "/avatar open freyja@vanaheimr.edda") }, { "/os", - parse_args, 1, 1, &cons_os_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_os) - CMD_TAGS( - CMD_TAG_DISCOVERY) - CMD_SYN( - "/os <on>|<off>") - CMD_DESC( - "Choose whether to include the OS name if a user asks for software information (XEP-0092).") - CMD_ARGS( - { "on|off", ""}) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_os_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_os) + CMD_TAGS( + CMD_TAG_DISCOVERY) + CMD_SYN( + "/os <on>|<off>") + CMD_DESC( + "Choose whether to include the OS name if a user asks for software information (XEP-0092).") + CMD_ARGS( + { "on|off", "" }) + CMD_NOEXAMPLES }, { "/correction", - parse_args, 1, 2, &cons_correction_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_correction) - CMD_TAGS( - CMD_TAG_UI, - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/correction <on>|<off>", - "/correction char <char>") - CMD_DESC( - "Settings regarding Last Message Correction (XEP-0308). " - "Corrections will only work in MUC and regular chat windows. MUC PMs won't be allowed. " - "For more information on how to correct messages, see: /help correct.") - CMD_ARGS( - { "on|off", "Enable/Disable support for last message correction."}, - { "char", "Set character that will prefix corrected messages. Default: '+'."}) - CMD_NOEXAMPLES - }, + parse_args, 1, 2, &cons_correction_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_correction) + CMD_TAGS( + CMD_TAG_UI, + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/correction <on>|<off>", + "/correction char <char>") + CMD_DESC( + "Settings regarding Last Message Correction (XEP-0308). " + "Corrections will only work in MUC and regular chat windows. MUC PMs won't be allowed. " + "For more information on how to correct messages, see: /help correct.") + CMD_ARGS( + { "on|off", "Enable/Disable support for last message correction." }, + { "char", "Set character that will prefix corrected messages. Default: '+'." }) + CMD_NOEXAMPLES }, { "/correct", - parse_args, 1, -1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_correct) - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/correct <message>") - CMD_DESC( - "Correct and resend the last message (XEP-0308). " - "Use tab completion to get the last sent message. " - "For more information on how to configure corrections, see: /help correction.") - CMD_ARGS( - { "message", "The corrected message."}) - CMD_NOEXAMPLES - }, + parse_args, 1, -1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_correct) + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/correct <message>") + CMD_DESC( + "Correct and resend the last message (XEP-0308). " + "Use tab completion to get the last sent message. " + "For more information on how to configure corrections, see: /help correction.") + CMD_ARGS( + { "message", "The corrected message." }) + CMD_NOEXAMPLES }, { "/slashguard", - parse_args, 1, 1, &cons_slashguard_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_slashguard) - CMD_TAGS( - CMD_TAG_UI, - CMD_TAG_CHAT) - CMD_SYN( - "/slashguard on|off") - CMD_DESC( - "Slashguard won't accept a slash in the first 4 characters of your input field. " - "It tries to protect you from typing ' /quit' and similar things in chats.") - CMD_ARGS( - { "on|off", "Enable or disable slashguard." }) - CMD_NOEXAMPLES - }, + parse_args, 1, 1, &cons_slashguard_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_slashguard) + CMD_TAGS( + CMD_TAG_UI, + CMD_TAG_CHAT) + CMD_SYN( + "/slashguard on|off") + CMD_DESC( + "Slashguard won't accept a slash in the first 4 characters of your input field. " + "It tries to protect you from typing ' /quit' and similar things in chats.") + CMD_ARGS( + { "on|off", "Enable or disable slashguard." }) + CMD_NOEXAMPLES }, { "/serversoftware", - parse_args, 1, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_serversoftware) - CMD_TAGS( - CMD_TAG_DISCOVERY) - CMD_SYN( - "/serversoftware <domain>") - CMD_DESC( - "Find server or component software version information.") - CMD_ARGS( - { "<domain>", "The jid of your server or component." }) - CMD_EXAMPLES( - "/software valhalla.edda", - "/software xmpp.vanaheimr.edda") - }, + parse_args, 1, 1, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_serversoftware) + CMD_TAGS( + CMD_TAG_DISCOVERY) + CMD_SYN( + "/serversoftware <domain>") + CMD_DESC( + "Find server or component software version information.") + CMD_ARGS( + { "<domain>", "The jid of your server or component." }) + CMD_EXAMPLES( + "/software valhalla.edda", + "/software xmpp.vanaheimr.edda") }, { "/executable", - parse_args, 2, 4, &cons_executable_setting, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_executable) - CMD_TAGS( - CMD_TAG_DISCOVERY) - CMD_SYN( - "/executable avatar <cmd>", - "/executable urlopen (<fileType>|DEF <require_save> <cmd>", - "/executable urlsave (<protocol>|DEF) <cmd>") - CMD_DESC( - "Configure executable that should be called upon a certain command." - "Default is xdg-open.") - CMD_ARGS( - { "avatar", "Set executable that is run in /avatar open. Use your favourite image viewer." }, - { "urlopen", "Set executable that is run in /url open for a given file type. It may be your favorite browser or a specific viewer. Use DEF to set default command for undefined file type." }, - { "urlsave", "Set executable that is run in /url save for a given protocol. Use your favourite downloader. Use DEF to set default command for undefined protocol."}) - CMD_EXAMPLES( - "/executable avatar xdg-open", - "/executable urlopen DEF false \"xdg-open %u\"", - "/executable urlopen html false \"firefox %u\"", - "/executable urlsave aesgcm \"omut -d -o %p %u\"") - }, + parse_args, 2, 4, &cons_executable_setting, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_executable) + CMD_TAGS( + CMD_TAG_DISCOVERY) + CMD_SYN( + "/executable avatar <cmd>", + "/executable urlopen (<fileType>|DEF <require_save> <cmd>", + "/executable urlsave (<protocol>|DEF) <cmd>") + CMD_DESC( + "Configure executable that should be called upon a certain command." + "Default is xdg-open.") + CMD_ARGS( + { "avatar", "Set executable that is run in /avatar open. Use your favourite image viewer." }, + { "urlopen", "Set executable that is run in /url open for a given file type. It may be your favorite browser or a specific viewer. Use DEF to set default command for undefined file type." }, + { "urlsave", "Set executable that is run in /url save for a given protocol. Use your favourite downloader. Use DEF to set default command for undefined protocol." }) + CMD_EXAMPLES( + "/executable avatar xdg-open", + "/executable urlopen DEF false \"xdg-open %u\"", + "/executable urlopen html false \"firefox %u\"", + "/executable urlsave aesgcm \"omut -d -o %p %u\"") }, { "/url", - parse_args, 2, 3, NULL, - CMD_SUBFUNCS( - { "open", cmd_url_open}, - { "save", cmd_url_save }) - CMD_NOMAINFUNC - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/url open <url>", - "/url save <url> [<path>]") - CMD_DESC( - "Deal with URLs") - CMD_ARGS( - { "open", "Open URL with predefined executable." }, - { "save", "Save URL to optional path, default path is current directory"}) - CMD_EXAMPLES( - "/url open https://profanity-im.github.io", - "/url save https://profanity-im.github.io/guide/latest/userguide.html /home/user/Download/") - }, + parse_args, 2, 3, NULL, + CMD_SUBFUNCS( + { "open", cmd_url_open }, + { "save", cmd_url_save }) + CMD_NOMAINFUNC + CMD_TAGS( + CMD_TAG_CHAT, + CMD_TAG_GROUPCHAT) + CMD_SYN( + "/url open <url>", + "/url save <url> [<path>]") + CMD_DESC( + "Deal with URLs") + CMD_ARGS( + { "open", "Open URL with predefined executable." }, + { "save", "Save URL to optional path, default path is current directory" }) + CMD_EXAMPLES( + "/url open https://profanity-im.github.io", + "/url save https://profanity-im.github.io/guide/latest/userguide.html /home/user/Download/") }, }; -static GHashTable *search_index; +static GHashTable* search_index; char* -_cmd_index(Command *cmd) { - GString *index_source = g_string_new(""); +_cmd_index(Command* cmd) +{ + GString* index_source = g_string_new(""); index_source = g_string_append(index_source, cmd->cmd); index_source = g_string_append(index_source, " "); index_source = g_string_append(index_source, cmd->help.desc); @@ -2581,36 +2493,36 @@ _cmd_index(Command *cmd) { index_source = g_string_append(index_source, " "); } - gchar **tokens = g_str_tokenize_and_fold(index_source->str, NULL, NULL); + gchar** tokens = g_str_tokenize_and_fold(index_source->str, NULL, NULL); g_string_free(index_source, TRUE); - GString *index = g_string_new(""); + GString* index = g_string_new(""); for (i = 0; i < g_strv_length(tokens); i++) { index = g_string_append(index, tokens[i]); index = g_string_append(index, " "); } g_strfreev(tokens); - char *res = index->str; + char* res = index->str; g_string_free(index, FALSE); return res; } GList* -cmd_search_index_any(char *term) +cmd_search_index_any(char* term) { - GList *results = NULL; + GList* results = NULL; - gchar **processed_terms = g_str_tokenize_and_fold(term, NULL, NULL); + gchar** processed_terms = g_str_tokenize_and_fold(term, NULL, NULL); int terms_len = g_strv_length(processed_terms); int i = 0; for (i = 0; i < terms_len; i++) { - GList *index_keys = g_hash_table_get_keys(search_index); - GList *curr = index_keys; + GList* index_keys = g_hash_table_get_keys(search_index); + GList* curr = index_keys; while (curr) { - char *index_entry = g_hash_table_lookup(search_index, curr->data); + char* index_entry = g_hash_table_lookup(search_index, curr->data); if (g_str_match_string(processed_terms[i], index_entry, FALSE)) { results = g_list_append(results, curr->data); } @@ -2625,21 +2537,21 @@ cmd_search_index_any(char *term) } GList* -cmd_search_index_all(char *term) +cmd_search_index_all(char* term) { - GList *results = NULL; + GList* results = NULL; - gchar **terms = g_str_tokenize_and_fold(term, NULL, NULL); + gchar** terms = g_str_tokenize_and_fold(term, NULL, NULL); int terms_len = g_strv_length(terms); - GList *commands = g_hash_table_get_keys(search_index); - GList *curr = commands; + GList* commands = g_hash_table_get_keys(search_index); + GList* curr = commands; while (curr) { - char *command = curr->data; + char* command = curr->data; int matches = 0; int i = 0; for (i = 0; i < terms_len; i++) { - char *command_index = g_hash_table_lookup(search_index, command); + char* command_index = g_hash_table_lookup(search_index, command); if (g_str_match_string(terms[i], command_index, FALSE)) { matches++; } @@ -2672,7 +2584,7 @@ cmd_init(void) commands = g_hash_table_new(g_str_hash, g_str_equal); unsigned int i; for (i = 0; i < ARRAY_SIZE(command_defs); i++) { - Command *pcmd = command_defs+i; + Command* pcmd = command_defs + i; // add to hash g_hash_table_insert(commands, pcmd->cmd, pcmd); @@ -2685,10 +2597,10 @@ cmd_init(void) } // load aliases - GList *aliases = prefs_get_aliases(); - GList *curr = aliases; + GList* aliases = prefs_get_aliases(); + GList* curr = aliases; while (curr) { - ProfAlias *alias = curr->data; + ProfAlias* alias = curr->data; cmd_ac_add_alias(alias); curr = g_list_next(curr); } @@ -2703,20 +2615,13 @@ cmd_uninit(void) } gboolean -cmd_valid_tag(const char *const str) +cmd_valid_tag(const char* const str) { - return ((g_strcmp0(str, CMD_TAG_CHAT) == 0) || - (g_strcmp0(str, CMD_TAG_GROUPCHAT) == 0) || - (g_strcmp0(str, CMD_TAG_PRESENCE) == 0) || - (g_strcmp0(str, CMD_TAG_ROSTER) == 0) || - (g_strcmp0(str, CMD_TAG_DISCOVERY) == 0) || - (g_strcmp0(str, CMD_TAG_CONNECTION) == 0) || - (g_strcmp0(str, CMD_TAG_UI) == 0) || - (g_strcmp0(str, CMD_TAG_PLUGINS) == 0)); + return ((g_strcmp0(str, CMD_TAG_CHAT) == 0) || (g_strcmp0(str, CMD_TAG_GROUPCHAT) == 0) || (g_strcmp0(str, CMD_TAG_PRESENCE) == 0) || (g_strcmp0(str, CMD_TAG_ROSTER) == 0) || (g_strcmp0(str, CMD_TAG_DISCOVERY) == 0) || (g_strcmp0(str, CMD_TAG_CONNECTION) == 0) || (g_strcmp0(str, CMD_TAG_UI) == 0) || (g_strcmp0(str, CMD_TAG_PLUGINS) == 0)); } Command* -cmd_get(const char *const command) +cmd_get(const char* const command) { if (commands) { return g_hash_table_lookup(commands, command); @@ -2726,9 +2631,9 @@ cmd_get(const char *const command) } GList* -cmd_get_ordered(const char *const tag) +cmd_get_ordered(const char* const tag) { - GList *ordered_commands = NULL; + GList* ordered_commands = NULL; GHashTableIter iter; gpointer key; @@ -2736,7 +2641,7 @@ cmd_get_ordered(const char *const tag) g_hash_table_iter_init(&iter, commands); while (g_hash_table_iter_next(&iter, &key, &value)) { - Command *pcmd = (Command *)value; + Command* pcmd = (Command*)value; if (tag) { if (_cmd_has_tag(pcmd, tag)) { ordered_commands = g_list_insert_sorted(ordered_commands, pcmd->cmd, (GCompareFunc)g_strcmp0); @@ -2750,7 +2655,7 @@ cmd_get_ordered(const char *const tag) } static gboolean -_cmd_has_tag(Command *pcmd, const char *const tag) +_cmd_has_tag(Command* pcmd, const char* const tag) { int i = 0; for (i = 0; pcmd->help.tags[i] != NULL; i++) { @@ -2763,7 +2668,7 @@ _cmd_has_tag(Command *pcmd, const char *const tag) } static int -_cmp_command(Command *cmd1, Command *cmd2) +_cmp_command(Command* cmd1, Command* cmd2) { return g_strcmp0(cmd1->cmd, cmd2->cmd); } @@ -2771,22 +2676,22 @@ _cmp_command(Command *cmd1, Command *cmd2) void command_docgen(void) { - GList *cmds = NULL; + GList* cmds = NULL; unsigned int i; for (i = 0; i < ARRAY_SIZE(command_defs); i++) { - Command *pcmd = command_defs+i; + Command* pcmd = command_defs + i; cmds = g_list_insert_sorted(cmds, pcmd, (GCompareFunc)_cmp_command); } - FILE *toc_fragment = fopen("toc_fragment.html", "w"); - FILE *main_fragment = fopen("main_fragment.html", "w"); + FILE* toc_fragment = fopen("toc_fragment.html", "w"); + FILE* main_fragment = fopen("main_fragment.html", "w"); fputs("<ul><li><ul><li>\n", toc_fragment); fputs("<hr>\n", main_fragment); - GList *curr = cmds; + GList* curr = cmds; while (curr) { - Command *pcmd = curr->data; + Command* pcmd = curr->data; fprintf(toc_fragment, "<a href=\"#%s\">%s</a>,\n", &pcmd->cmd[1], pcmd->cmd); fprintf(main_fragment, "<a name=\"%s\"></a>\n", &pcmd->cmd[1]); @@ -2796,8 +2701,8 @@ command_docgen(void) fputs("<p><pre><code>", main_fragment); int i = 0; while (pcmd->help.synopsis[i]) { - char *str1 = str_replace(pcmd->help.synopsis[i], "<", "<"); - char *str2 = str_replace(str1, ">", ">"); + char* str1 = str_replace(pcmd->help.synopsis[i], "<", "<"); + char* str2 = str_replace(str1, ">", ">"); fprintf(main_fragment, "%s\n", str2); i++; } @@ -2815,8 +2720,8 @@ command_docgen(void) fputs("<tr>", main_fragment); fputs("<td>", main_fragment); fputs("<code>", main_fragment); - char *str1 = str_replace(pcmd->help.args[i][0], "<", "<"); - char *str2 = str_replace(str1, ">", ">"); + char* str1 = str_replace(pcmd->help.args[i][0], "<", "<"); + char* str2 = str_replace(str1, ">", ">"); fprintf(main_fragment, "%s", str2); fputs("</code>", main_fragment); fputs("</td>", main_fragment); diff --git a/src/command/cmd_defs.h b/src/command/cmd_defs.h index 6d829adc..32167c6d 100644 --- a/src/command/cmd_defs.h +++ b/src/command/cmd_defs.h @@ -44,14 +44,14 @@ void cmd_init(void); void cmd_uninit(void); -Command* cmd_get(const char *const command); -GList* cmd_get_ordered(const char *const tag); +Command* cmd_get(const char* const command); +GList* cmd_get_ordered(const char* const tag); -gboolean cmd_valid_tag(const char *const str); +gboolean cmd_valid_tag(const char* const str); void command_docgen(void); -GList* cmd_search_index_all(char *term); -GList* cmd_search_index_any(char *term); +GList* cmd_search_index_all(char* term); +GList* cmd_search_index_any(char* term); #endif diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 1020db96..d7488cff 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -107,21 +107,21 @@ #endif static void _update_presence(const resource_presence_t presence, - const char *const show, gchar **args); -static void _cmd_set_boolean_preference(gchar *arg, const char *const command, - const char *const display, preference_t pref); -static void _who_room(ProfWin *window, const char *const command, gchar **args); -static void _who_roster(ProfWin *window, const char *const command, gchar **args); -static gboolean _cmd_execute(ProfWin *window, const char *const command, const char *const inp); -static gboolean _cmd_execute_default(ProfWin *window, const char *inp); -static gboolean _cmd_execute_alias(ProfWin *window, const char *const inp, gboolean *ran); + const char* const show, gchar** args); +static void _cmd_set_boolean_preference(gchar* arg, const char* const command, + const char* const display, preference_t pref); +static void _who_room(ProfWin* window, const char* const command, gchar** args); +static void _who_roster(ProfWin* window, const char* const command, gchar** args); +static gboolean _cmd_execute(ProfWin* window, const char* const command, const char* const inp); +static gboolean _cmd_execute_default(ProfWin* window, const char* inp); +static gboolean _cmd_execute_alias(ProfWin* window, const char* const inp, gboolean* ran); /* * Take a line of input and process it, return TRUE if profanity is to * continue, FALSE otherwise */ gboolean -cmd_process_input(ProfWin *window, char *inp) +cmd_process_input(ProfWin* window, char* inp) { log_debug("Input received: %s", inp); gboolean result = FALSE; @@ -131,15 +131,15 @@ cmd_process_input(ProfWin *window, char *inp) if (strlen(inp) == 0) { result = TRUE; - // handle command if input starts with a '/' + // handle command if input starts with a '/' } else if (inp[0] == '/') { - char *inp_cpy = strdup(inp); - char *command = strtok(inp_cpy, " "); - char *question_mark = strchr(command, '?'); + char* inp_cpy = strdup(inp); + char* command = strtok(inp_cpy, " "); + char* question_mark = strchr(command, '?'); if (question_mark) { *question_mark = '\0'; - char *fakeinp; - if (asprintf(&fakeinp, "/help %s", command+1)) { + char* fakeinp; + if (asprintf(&fakeinp, "/help %s", command + 1)) { result = _cmd_execute(window, "/help", fakeinp); free(fakeinp); } @@ -148,7 +148,7 @@ cmd_process_input(ProfWin *window, char *inp) } free(inp_cpy); - // call a default handler if input didn't start with '/' + // call a default handler if input didn't start with '/' } else { result = _cmd_execute_default(window, inp); } @@ -159,16 +159,16 @@ cmd_process_input(ProfWin *window, char *inp) // Command execution void -cmd_execute_connect(ProfWin *window, const char *const account) +cmd_execute_connect(ProfWin* window, const char* const account) { - GString *command = g_string_new("/connect "); + GString* command = g_string_new("/connect "); g_string_append(command, account); cmd_process_input(window, command->str); g_string_free(command, TRUE); } gboolean -cmd_tls_certpath(ProfWin *window, const char *const command, gchar **args) +cmd_tls_certpath(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBMESODE if (g_strcmp0(args[1], "set") == 0) { @@ -193,7 +193,7 @@ cmd_tls_certpath(ProfWin *window, const char *const command, gchar **args) cons_show("Certificate path defaulted to finding system certpath."); return TRUE; } else if (args[1] == NULL) { - char *path = prefs_get_tls_certpath(); + char* path = prefs_get_tls_certpath(); if (path) { cons_show("Trusted certificate path: %s", path); free(path); @@ -209,11 +209,10 @@ cmd_tls_certpath(ProfWin *window, const char *const command, gchar **args) cons_show("Certificate path setting only supported when built with libmesode."); return TRUE; #endif - } gboolean -cmd_tls_trust(ProfWin *window, const char *const command, gchar **args) +cmd_tls_trust(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBMESODE jabber_conn_status_t conn_status = connection_get_status(); @@ -225,7 +224,7 @@ cmd_tls_trust(ProfWin *window, const char *const command, gchar **args) cons_show("No TLS connection established"); return TRUE; } - TLSCertificate *cert = connection_get_tls_peer_cert(); + TLSCertificate* cert = connection_get_tls_peer_cert(); if (!cert) { cons_show("Error getting TLS certificate."); return TRUE; @@ -246,11 +245,11 @@ cmd_tls_trust(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_tls_trusted(ProfWin *window, const char *const command, gchar **args) +cmd_tls_trusted(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBMESODE - GList *certs = tlscerts_list(); - GList *curr = certs; + GList* certs = tlscerts_list(); + GList* curr = certs; if (curr) { cons_show("Trusted certificates:"); @@ -259,7 +258,7 @@ cmd_tls_trusted(ProfWin *window, const char *const command, gchar **args) cons_show("No trusted certificates found."); } while (curr) { - TLSCertificate *cert = curr->data; + TLSCertificate* cert = curr->data; cons_show_tlscert_summary(cert); cons_show(""); curr = g_list_next(curr); @@ -273,7 +272,7 @@ cmd_tls_trusted(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_tls_revoke(ProfWin *window, const char *const command, gchar **args) +cmd_tls_revoke(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBMESODE if (args[1] == NULL) { @@ -294,11 +293,11 @@ cmd_tls_revoke(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_tls_cert(ProfWin *window, const char *const command, gchar **args) +cmd_tls_cert(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBMESODE if (args[1]) { - TLSCertificate *cert = tlscerts_get_trusted(args[1]); + TLSCertificate* cert = tlscerts_get_trusted(args[1]); if (!cert) { cons_show("No such certificate."); } else { @@ -316,7 +315,7 @@ cmd_tls_cert(ProfWin *window, const char *const command, gchar **args) cons_show("No TLS connection established"); return TRUE; } - TLSCertificate *cert = connection_get_tls_peer_cert(); + TLSCertificate* cert = connection_get_tls_peer_cert(); if (!cert) { cons_show("Error getting TLS certificate."); return TRUE; @@ -333,7 +332,7 @@ cmd_tls_cert(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_connect(ProfWin *window, const char *const command, gchar **args) +cmd_connect(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); if (conn_status != JABBER_DISCONNECTED) { @@ -341,10 +340,10 @@ cmd_connect(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gchar *opt_keys[] = { "server", "port", "tls", "auth", NULL }; + gchar* opt_keys[] = { "server", "port", "tls", "auth", NULL }; gboolean parsed; - GHashTable *options = parse_options(&args[args[0] ? 1 : 0], opt_keys, &parsed); + GHashTable* options = parse_options(&args[args[0] ? 1 : 0], opt_keys, &parsed); if (!parsed) { cons_bad_cmd_usage(command); cons_show(""); @@ -352,25 +351,18 @@ cmd_connect(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *altdomain = g_hash_table_lookup(options, "server"); + char* altdomain = g_hash_table_lookup(options, "server"); - char *tls_policy = g_hash_table_lookup(options, "tls"); - if (tls_policy && - (g_strcmp0(tls_policy, "force") != 0) && - (g_strcmp0(tls_policy, "allow") != 0) && - (g_strcmp0(tls_policy, "trust") != 0) && - (g_strcmp0(tls_policy, "disable") != 0) && - (g_strcmp0(tls_policy, "legacy") != 0)) { + char* tls_policy = g_hash_table_lookup(options, "tls"); + if (tls_policy && (g_strcmp0(tls_policy, "force") != 0) && (g_strcmp0(tls_policy, "allow") != 0) && (g_strcmp0(tls_policy, "trust") != 0) && (g_strcmp0(tls_policy, "disable") != 0) && (g_strcmp0(tls_policy, "legacy") != 0)) { cons_bad_cmd_usage(command); cons_show(""); options_destroy(options); return TRUE; } - char *auth_policy = g_hash_table_lookup(options, "auth"); - if (auth_policy && - (g_strcmp0(auth_policy, "default") != 0) && - (g_strcmp0(auth_policy, "legacy") != 0)) { + char* auth_policy = g_hash_table_lookup(options, "auth"); + if (auth_policy && (g_strcmp0(auth_policy, "default") != 0) && (g_strcmp0(auth_policy, "legacy") != 0)) { cons_bad_cmd_usage(command); cons_show(""); options_destroy(options); @@ -379,8 +371,8 @@ cmd_connect(ProfWin *window, const char *const command, gchar **args) int port = 0; if (g_hash_table_contains(options, "port")) { - char *port_str = g_hash_table_lookup(options, "port"); - char *err_msg = NULL; + char* port_str = g_hash_table_lookup(options, "port"); + char* err_msg = NULL; gboolean res = strtoi_range(port_str, &port, 1, 65535, &err_msg); if (!res) { cons_show(err_msg); @@ -392,8 +384,8 @@ cmd_connect(ProfWin *window, const char *const command, gchar **args) } } - char *user = args[0]; - char *def = prefs_get_string(PREF_DEFAULT_ACCOUNT); + char* user = args[0]; + char* def = prefs_get_string(PREF_DEFAULT_ACCOUNT); if (!user) { if (def) { user = def; @@ -405,12 +397,12 @@ cmd_connect(ProfWin *window, const char *const command, gchar **args) } } - char *jid; + char* jid; user = strdup(user); g_free(def); // connect with account - ProfAccount *account = accounts_get_account(user); + ProfAccount* account = accounts_get_account(user); if (account) { // override account options with connect options if (altdomain != NULL) @@ -426,7 +418,7 @@ cmd_connect(ProfWin *window, const char *const command, gchar **args) if (account->password) { conn_status = cl_ev_connect_account(account); - // use eval_password if set + // use eval_password if set } else if (account->eval_password) { gboolean res = account_eval_password(account); if (res) { @@ -441,7 +433,7 @@ cmd_connect(ProfWin *window, const char *const command, gchar **args) return TRUE; } - // no account password setting, prompt + // no account password setting, prompt } else { account->password = ui_ask_password(); conn_status = cl_ev_connect_account(account); @@ -452,10 +444,10 @@ cmd_connect(ProfWin *window, const char *const command, gchar **args) jid = account_create_connect_jid(account); account_free(account); - // connect with JID + // connect with JID } else { jid = g_utf8_strdown(user, -1); - char *passwd = ui_ask_password(); + char* passwd = ui_ask_password(); conn_status = cl_ev_connect_jid(jid, passwd, altdomain, port, tls_policy, auth_policy); free(passwd); } @@ -473,9 +465,9 @@ cmd_connect(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_account_list(ProfWin *window, const char *const command, gchar **args) +cmd_account_list(ProfWin* window, const char* const command, gchar** args) { - gchar **accounts = accounts_get_list(); + gchar** accounts = accounts_get_list(); cons_show_account_list(accounts); g_strfreev(accounts); @@ -483,15 +475,15 @@ cmd_account_list(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_account_show(ProfWin *window, const char *const command, gchar **args) +cmd_account_show(ProfWin* window, const char* const command, gchar** args) { - char *account_name = args[1]; + char* account_name = args[1]; if (account_name == NULL) { cons_bad_cmd_usage(command); return TRUE; } - ProfAccount *account = accounts_get_account(account_name); + ProfAccount* account = accounts_get_account(account_name); if (account == NULL) { cons_show("No such account."); cons_show(""); @@ -504,9 +496,9 @@ cmd_account_show(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_account_add(ProfWin *window, const char *const command, gchar **args) +cmd_account_add(ProfWin* window, const char* const command, gchar** args) { - char *account_name = args[1]; + char* account_name = args[1]; if (account_name == NULL) { cons_bad_cmd_usage(command); return TRUE; @@ -520,18 +512,18 @@ cmd_account_add(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_account_remove(ProfWin *window, const char *const command, gchar **args) +cmd_account_remove(ProfWin* window, const char* const command, gchar** args) { - char *account_name = args[1]; - if(!account_name) { + char* account_name = args[1]; + if (!account_name) { cons_bad_cmd_usage(command); return TRUE; } - char *def = prefs_get_string(PREF_DEFAULT_ACCOUNT); - if(accounts_remove(account_name)){ + char* def = prefs_get_string(PREF_DEFAULT_ACCOUNT); + if (accounts_remove(account_name)) { cons_show("Account %s removed.", account_name); - if(def && strcmp(def, account_name) == 0){ + if (def && strcmp(def, account_name) == 0) { prefs_set_string(PREF_DEFAULT_ACCOUNT, NULL); cons_show("Default account removed because the corresponding account was removed."); } @@ -546,9 +538,9 @@ cmd_account_remove(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_account_enable(ProfWin *window, const char *const command, gchar **args) +cmd_account_enable(ProfWin* window, const char* const command, gchar** args) { - char *account_name = args[1]; + char* account_name = args[1]; if (account_name == NULL) { cons_bad_cmd_usage(command); return TRUE; @@ -565,9 +557,9 @@ cmd_account_enable(ProfWin *window, const char *const command, gchar **args) return TRUE; } gboolean -cmd_account_disable(ProfWin *window, const char *const command, gchar **args) +cmd_account_disable(ProfWin* window, const char* const command, gchar** args) { - char *account_name = args[1]; + char* account_name = args[1]; if (account_name == NULL) { cons_bad_cmd_usage(command); return TRUE; @@ -585,15 +577,15 @@ cmd_account_disable(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_account_rename(ProfWin *window, const char *const command, gchar **args) +cmd_account_rename(ProfWin* window, const char* const command, gchar** args) { if (g_strv_length(args) != 3) { cons_bad_cmd_usage(command); return TRUE; } - char *account_name = args[1]; - char *new_name = args[2]; + char* account_name = args[1]; + char* new_name = args[2]; if (accounts_rename(account_name, new_name)) { cons_show("Account renamed."); @@ -607,10 +599,10 @@ cmd_account_rename(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_account_default(ProfWin *window, const char *const command, gchar **args) +cmd_account_default(ProfWin* window, const char* const command, gchar** args) { if (g_strv_length(args) == 1) { - char *def = prefs_get_string(PREF_DEFAULT_ACCOUNT); + char* def = prefs_get_string(PREF_DEFAULT_ACCOUNT); if (def) { cons_show("The default account is %s.", def); free(def); @@ -626,7 +618,7 @@ cmd_account_default(ProfWin *window, const char *const command, gchar **args) } } else if (g_strv_length(args) == 3) { if (strcmp(args[1], "set") == 0) { - ProfAccount *account_p = accounts_get_account(args[2]); + ProfAccount* account_p = accounts_get_account(args[2]); if (account_p) { prefs_set_string(PREF_DEFAULT_ACCOUNT, args[2]); cons_show("Default account set to %s.", args[2]); @@ -645,9 +637,9 @@ cmd_account_default(ProfWin *window, const char *const command, gchar **args) } gboolean -_account_set_jid(char *account_name, char *jid) +_account_set_jid(char* account_name, char* jid) { - Jid *jidp = jid_create(jid); + Jid* jidp = jid_create(jid); if (jidp == NULL) { cons_show("Malformed jid: %s", jid); } else { @@ -665,7 +657,7 @@ _account_set_jid(char *account_name, char *jid) } gboolean -_account_set_server(char *account_name, char *server) +_account_set_server(char* account_name, char* server) { accounts_set_server(account_name, server); cons_show("Updated server for account %s: %s", account_name, server); @@ -674,10 +666,10 @@ _account_set_server(char *account_name, char *server) } gboolean -_account_set_port(char *account_name, char *port) +_account_set_port(char* account_name, char* port) { int porti; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(port, &porti, 1, 65535, &err_msg); if (!res) { cons_show(err_msg); @@ -692,7 +684,7 @@ _account_set_port(char *account_name, char *port) } gboolean -_account_set_resource(char *account_name, char *resource) +_account_set_resource(char* account_name, char* resource) { accounts_set_resource(account_name, resource); if (connection_get_status() == JABBER_CONNECTED) { @@ -705,9 +697,9 @@ _account_set_resource(char *account_name, char *resource) } gboolean -_account_set_password(char *account_name, char *password) +_account_set_password(char* account_name, char* password) { - ProfAccount *account = accounts_get_account(account_name); + ProfAccount* account = accounts_get_account(account_name); if (account->eval_password) { cons_show("Cannot set password when eval_password is set."); } else { @@ -720,10 +712,10 @@ _account_set_password(char *account_name, char *password) } gboolean -_account_set_eval_password(char *account_name, char *eval_password) +_account_set_eval_password(char* account_name, char* eval_password) { - ProfAccount *account = accounts_get_account(account_name); - if(account->password) { + ProfAccount* account = accounts_get_account(account_name); + if (account->password) { cons_show("Cannot set eval_password when password is set."); } else { accounts_set_eval_password(account_name, eval_password); @@ -735,7 +727,7 @@ _account_set_eval_password(char *account_name, char *eval_password) } gboolean -_account_set_muc(char *account_name, char *muc) +_account_set_muc(char* account_name, char* muc) { accounts_set_muc_service(account_name, muc); cons_show("Updated muc service for account %s: %s", account_name, muc); @@ -744,7 +736,7 @@ _account_set_muc(char *account_name, char *muc) } gboolean -_account_set_nick(char *account_name, char *nick) +_account_set_nick(char* account_name, char* nick) { accounts_set_muc_nick(account_name, nick); cons_show("Updated muc nick for account %s: %s", account_name, nick); @@ -753,11 +745,11 @@ _account_set_nick(char *account_name, char *nick) } gboolean -_account_set_otr(char *account_name, char *policy) +_account_set_otr(char* account_name, char* policy) { if ((g_strcmp0(policy, "manual") != 0) - && (g_strcmp0(policy, "opportunistic") != 0) - && (g_strcmp0(policy, "always") != 0)) { + && (g_strcmp0(policy, "opportunistic") != 0) + && (g_strcmp0(policy, "always") != 0)) { cons_show("OTR policy must be one of: manual, opportunistic or always."); } else { accounts_set_otr_policy(account_name, policy); @@ -768,7 +760,7 @@ _account_set_otr(char *account_name, char *policy) } gboolean -_account_set_status(char *account_name, char *status) +_account_set_status(char* account_name, char* status) { if (!valid_resource_presence_string(status) && (strcmp(status, "last") != 0)) { cons_show("Invalid status: %s", status); @@ -781,10 +773,10 @@ _account_set_status(char *account_name, char *status) } gboolean -_account_set_pgpkeyid(char *account_name, char *pgpkeyid) +_account_set_pgpkeyid(char* account_name, char* pgpkeyid) { #ifdef HAVE_LIBGPGME - char *err_str = NULL; + char* err_str = NULL; if (!p_gpg_valid_key(pgpkeyid, &err_str)) { cons_show("Invalid PGP key ID specified: %s, see /pgp keys", err_str); } else { @@ -800,7 +792,7 @@ _account_set_pgpkeyid(char *account_name, char *pgpkeyid) } gboolean -_account_set_startscript(char *account_name, char *script) +_account_set_startscript(char* account_name, char* script) { accounts_set_script_start(account_name, script); cons_show("Updated start script for account %s: %s", account_name, script); @@ -808,7 +800,7 @@ _account_set_startscript(char *account_name, char *script) } gboolean -_account_set_theme(char *account_name, char *theme) +_account_set_theme(char* account_name, char* theme) { if (!theme_exists(theme)) { cons_show("Theme does not exist: %s", theme); @@ -817,7 +809,7 @@ _account_set_theme(char *account_name, char *theme) accounts_set_theme(account_name, theme); if (connection_get_status() == JABBER_CONNECTED) { - ProfAccount *account = accounts_get_account(session_get_account_name()); + ProfAccount* account = accounts_get_account(session_get_account_name()); if (account) { if (g_strcmp0(account->name, account_name) == 0) { theme_load(theme, false); @@ -842,13 +834,13 @@ _account_set_theme(char *account_name, char *theme) } gboolean -_account_set_tls(char *account_name, char *policy) +_account_set_tls(char* account_name, char* policy) { if ((g_strcmp0(policy, "force") != 0) - && (g_strcmp0(policy, "allow") != 0) - && (g_strcmp0(policy, "trust") != 0) - && (g_strcmp0(policy, "disable") != 0) - && (g_strcmp0(policy, "legacy") != 0)) { + && (g_strcmp0(policy, "allow") != 0) + && (g_strcmp0(policy, "trust") != 0) + && (g_strcmp0(policy, "disable") != 0) + && (g_strcmp0(policy, "legacy") != 0)) { cons_show("TLS policy must be one of: force, allow, legacy or disable."); } else { accounts_set_tls_policy(account_name, policy); @@ -859,10 +851,10 @@ _account_set_tls(char *account_name, char *policy) } gboolean -_account_set_auth(char *account_name, char *policy) +_account_set_auth(char* account_name, char* policy) { if ((g_strcmp0(policy, "default") != 0) - && (g_strcmp0(policy, "legacy") != 0)) { + && (g_strcmp0(policy, "legacy") != 0)) { cons_show("Auth policy must be either default or legacy."); } else { accounts_set_auth_policy(account_name, policy); @@ -873,10 +865,10 @@ _account_set_auth(char *account_name, char *policy) } gboolean -_account_set_presence_priority(char *account_name, char *presence, char *priority) +_account_set_presence_priority(char* account_name, char* presence, char* priority) { int intval; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(priority, &intval, -128, 127, &err_msg); if (!res) { cons_show(err_msg); @@ -885,8 +877,7 @@ _account_set_presence_priority(char *account_name, char *presence, char *priorit } resource_presence_t presence_type = resource_presence_from_string(presence); - switch (presence_type) - { + switch (presence_type) { case (RESOURCE_ONLINE): accounts_set_priority_online(account_name, intval); break; @@ -906,7 +897,7 @@ _account_set_presence_priority(char *account_name, char *presence, char *priorit jabber_conn_status_t conn_status = connection_get_status(); if (conn_status == JABBER_CONNECTED) { - char *connected_account = session_get_account_name(); + char* connected_account = session_get_account_name(); resource_presence_t last_presence = accounts_get_last_presence(connected_account); if (presence_type == last_presence) { cl_ev_presence_send(last_presence, 0); @@ -918,37 +909,52 @@ _account_set_presence_priority(char *account_name, char *presence, char *priorit } gboolean -cmd_account_set(ProfWin *window, const char *const command, gchar **args) +cmd_account_set(ProfWin* window, const char* const command, gchar** args) { if (g_strv_length(args) != 4) { cons_bad_cmd_usage(command); return TRUE; } - char *account_name = args[1]; + char* account_name = args[1]; if (!accounts_account_exists(account_name)) { cons_show("Account %s doesn't exist", account_name); cons_show(""); return TRUE; } - char *property = args[2]; - char *value = args[3]; - if (strcmp(property, "jid") == 0) return _account_set_jid(account_name, value); - if (strcmp(property, "server") == 0) return _account_set_server(account_name, value); - if (strcmp(property, "port") == 0) return _account_set_port(account_name, value); - if (strcmp(property, "resource") == 0) return _account_set_resource(account_name, value); - if (strcmp(property, "password") == 0) return _account_set_password(account_name, value); - if (strcmp(property, "eval_password") == 0) return _account_set_eval_password(account_name, value); - if (strcmp(property, "muc") == 0) return _account_set_muc(account_name, value); - if (strcmp(property, "nick") == 0) return _account_set_nick(account_name, value); - if (strcmp(property, "otr") == 0) return _account_set_otr(account_name, value); - if (strcmp(property, "status") == 0) return _account_set_status(account_name, value); - if (strcmp(property, "pgpkeyid") == 0) return _account_set_pgpkeyid(account_name, value); - if (strcmp(property, "startscript") == 0) return _account_set_startscript(account_name, value); - if (strcmp(property, "theme") == 0) return _account_set_theme(account_name, value); - if (strcmp(property, "tls") == 0) return _account_set_tls(account_name, value); - if (strcmp(property, "auth") == 0) return _account_set_auth(account_name, value); + char* property = args[2]; + char* value = args[3]; + if (strcmp(property, "jid") == 0) + return _account_set_jid(account_name, value); + if (strcmp(property, "server") == 0) + return _account_set_server(account_name, value); + if (strcmp(property, "port") == 0) + return _account_set_port(account_name, value); + if (strcmp(property, "resource") == 0) + return _account_set_resource(account_name, value); + if (strcmp(property, "password") == 0) + return _account_set_password(account_name, value); + if (strcmp(property, "eval_password") == 0) + return _account_set_eval_password(account_name, value); + if (strcmp(property, "muc") == 0) + return _account_set_muc(account_name, value); + if (strcmp(property, "nick") == 0) + return _account_set_nick(account_name, value); + if (strcmp(property, "otr") == 0) + return _account_set_otr(account_name, value); + if (strcmp(property, "status") == 0) + return _account_set_status(account_name, value); + if (strcmp(property, "pgpkeyid") == 0) + return _account_set_pgpkeyid(account_name, value); + if (strcmp(property, "startscript") == 0) + return _account_set_startscript(account_name, value); + if (strcmp(property, "theme") == 0) + return _account_set_theme(account_name, value); + if (strcmp(property, "tls") == 0) + return _account_set_tls(account_name, value); + if (strcmp(property, "auth") == 0) + return _account_set_auth(account_name, value); if (valid_resource_presence_string(property)) { return _account_set_presence_priority(account_name, property, value); @@ -961,21 +967,21 @@ cmd_account_set(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_account_clear(ProfWin *window, const char *const command, gchar **args) +cmd_account_clear(ProfWin* window, const char* const command, gchar** args) { if (g_strv_length(args) != 3) { cons_bad_cmd_usage(command); return TRUE; } - char *account_name = args[1]; + char* account_name = args[1]; if (!accounts_account_exists(account_name)) { cons_show("Account %s doesn't exist", account_name); cons_show(""); return TRUE; } - char *property = args[2]; + char* property = args[2]; if (strcmp(property, "password") == 0) { accounts_clear_password(account_name); cons_show("Removed password for account %s", account_name); @@ -1025,7 +1031,7 @@ cmd_account_clear(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_account(ProfWin *window, const char *const command, gchar **args) +cmd_account(ProfWin* window, const char* const command, gchar** args) { if (args[0] != NULL) { cons_bad_cmd_usage(command); @@ -1038,7 +1044,7 @@ cmd_account(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfAccount *account = accounts_get_account(session_get_account_name()); + ProfAccount* account = accounts_get_account(session_get_account_name()); if (account) { cons_show_account(account); account_free(account); @@ -1050,7 +1056,7 @@ cmd_account(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_script(ProfWin *window, const char *const command, gchar **args) +cmd_script(ProfWin* window, const char* const command, gchar** args) { if ((g_strcmp0(args[0], "run") == 0) && args[1]) { gboolean res = scripts_exec(args[1]); @@ -1058,11 +1064,11 @@ cmd_script(ProfWin *window, const char *const command, gchar **args) cons_show("Could not find script %s", args[1]); } } else if (g_strcmp0(args[0], "list") == 0) { - GSList *scripts = scripts_list(); + GSList* scripts = scripts_list(); cons_show_scripts(scripts); g_slist_free_full(scripts, g_free); } else if ((g_strcmp0(args[0], "show") == 0) && args[1]) { - GSList *commands = scripts_read(args[1]); + GSList* commands = scripts_read(args[1]); cons_show_script(args[1], commands); g_slist_free_full(commands, g_free); } else { @@ -1074,16 +1080,22 @@ cmd_script(ProfWin *window, const char *const command, gchar **args) /* escape a string into csv and write it to the file descriptor */ static int -_writecsv(int fd, const char *const str) +_writecsv(int fd, const char* const str) { - if (!str) return 0; + if (!str) + return 0; size_t len = strlen(str); - char *s = malloc(2 * len * sizeof(char)); - char *c = s; + char* s = malloc(2 * len * sizeof(char)); + char* c = s; int i = 0; for (; i < strlen(str); i++) { - if (str[i] != '"') *c++ = str[i]; - else { *c++ = '"'; *c++ = '"'; len++; } + if (str[i] != '"') + *c++ = str[i]; + else { + *c++ = '"'; + *c++ = '"'; + len++; + } } if (-1 == write(fd, s, len)) { cons_show("error: failed to write '%s' to the requested file: %s", s, strerror(errno)); @@ -1094,7 +1106,7 @@ _writecsv(int fd, const char *const str) } gboolean -cmd_export(ProfWin *window, const char *const command, gchar **args) +cmd_export(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -1103,8 +1115,8 @@ cmd_export(ProfWin *window, const char *const command, gchar **args) cons_show(""); return TRUE; } else { - GString *fname = g_string_new(""); - GSList *list = NULL; + GString* fname = g_string_new(""); + GSList* list = NULL; int fd; /* deal with the ~ convention for $HOME */ @@ -1124,22 +1136,28 @@ cmd_export(ProfWin *window, const char *const command, gchar **args) return TRUE; } - if (-1 == write(fd, "jid,name\n", strlen("jid,name\n"))) goto write_error; + if (-1 == write(fd, "jid,name\n", strlen("jid,name\n"))) + goto write_error; list = roster_get_contacts(ROSTER_ORD_NAME); if (list) { - GSList *curr = list; - while (curr){ + GSList* curr = list; + while (curr) { PContact contact = curr->data; - const char *jid = p_contact_barejid(contact); - const char *name = p_contact_name(contact); + const char* jid = p_contact_barejid(contact); + const char* name = p_contact_name(contact); /* write the data to the file */ - if (-1 == write(fd, "\"", 1)) goto write_error; - if (-1 == _writecsv(fd, jid)) goto write_error; - if (-1 == write(fd, "\",\"", 3)) goto write_error; - if (-1 == _writecsv(fd, name)) goto write_error; - if (-1 == write(fd, "\"\n", 2)) goto write_error; + if (-1 == write(fd, "\"", 1)) + goto write_error; + if (-1 == _writecsv(fd, jid)) + goto write_error; + if (-1 == write(fd, "\",\"", 3)) + goto write_error; + if (-1 == _writecsv(fd, name)) + goto write_error; + if (-1 == write(fd, "\"\n", 2)) + goto write_error; /* loop */ curr = g_slist_next(curr); @@ -1154,7 +1172,7 @@ cmd_export(ProfWin *window, const char *const command, gchar **args) g_slist_free(list); close(fd); return TRUE; -write_error: + write_error: cons_show("error: write failed: %s", strerror(errno)); cons_show(""); g_slist_free(list); @@ -1164,7 +1182,7 @@ write_error: } gboolean -cmd_sub(ProfWin *window, const char *const command, gchar **args) +cmd_sub(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -1198,12 +1216,12 @@ cmd_sub(ProfWin *window, const char *const command, gchar **args) } if (jid == NULL) { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); jid = chatwin->barejid; } - Jid *jidp = jid_create(jid); + Jid* jidp = jid_create(jid); if (strcmp(subcmd, "allow") == 0) { presence_subscription(jidp->barejid, PRESENCE_SUBSCRIBED); @@ -1229,18 +1247,18 @@ cmd_sub(ProfWin *window, const char *const command, gchar **args) if (window->type == WIN_CHAT) { if (p_contact_pending_out(contact)) { win_println(window, THEME_DEFAULT, "-", "%s subscription status: %s, request pending.", - jidp->barejid, p_contact_subscription(contact)); + jidp->barejid, p_contact_subscription(contact)); } else { win_println(window, THEME_DEFAULT, "-", "%s subscription status: %s.", jidp->barejid, - p_contact_subscription(contact)); + p_contact_subscription(contact)); } } else { if (p_contact_pending_out(contact)) { cons_show("%s subscription status: %s, request pending.", - jidp->barejid, p_contact_subscription(contact)); + jidp->barejid, p_contact_subscription(contact)); } else { cons_show("%s subscription status: %s.", jidp->barejid, - p_contact_subscription(contact)); + p_contact_subscription(contact)); } } } @@ -1254,7 +1272,7 @@ cmd_sub(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_disconnect(ProfWin *window, const char *const command, gchar **args) +cmd_disconnect(ProfWin* window, const char* const command, gchar** args) { if (connection_get_status() != JABBER_CONNECTED) { cons_show("You are not currently connected."); @@ -1263,7 +1281,7 @@ cmd_disconnect(ProfWin *window, const char *const command, gchar **args) cl_ev_disconnect(); - char *theme = prefs_get_string(PREF_THEME); + char* theme = prefs_get_string(PREF_THEME); if (theme) { gboolean res = theme_load(theme, false); g_free(theme); @@ -1290,7 +1308,7 @@ cmd_disconnect(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_quit(ProfWin *window, const char *const command, gchar **args) +cmd_quit(ProfWin* window, const char* const command, gchar** args) { log_info("Profanity is shutting down..."); exit(0); @@ -1298,21 +1316,21 @@ cmd_quit(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_wins_unread(ProfWin *window, const char *const command, gchar **args) +cmd_wins_unread(ProfWin* window, const char* const command, gchar** args) { cons_show_wins(TRUE); return TRUE; } gboolean -cmd_wins_prune(ProfWin *window, const char *const command, gchar **args) +cmd_wins_prune(ProfWin* window, const char* const command, gchar** args) { ui_prune_wins(); return TRUE; } gboolean -cmd_wins_swap(ProfWin *window, const char *const command, gchar **args) +cmd_wins_swap(ProfWin* window, const char* const command, gchar** args) { if ((args[1] == NULL) || (args[2] == NULL)) { cons_bad_cmd_usage(command); @@ -1353,7 +1371,7 @@ cmd_wins_swap(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_wins(ProfWin *window, const char *const command, gchar **args) +cmd_wins(ProfWin* window, const char* const command, gchar** args) { if (args[0] != NULL) { cons_bad_cmd_usage(command); @@ -1365,7 +1383,7 @@ cmd_wins(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_close(ProfWin *window, const char *const command, gchar **args) +cmd_close(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -1424,7 +1442,7 @@ cmd_close(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfWin *toclose = wins_get_by_num(index); + ProfWin* toclose = wins_get_by_num(index); if (!toclose) { cons_show("Window is not open."); return TRUE; @@ -1454,7 +1472,7 @@ cmd_close(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfWin *toclose = wins_get_by_string(args[0]); + ProfWin* toclose = wins_get_by_string(args[0]); if (!toclose) { cons_show("Window \"%s\" does not exist.", args[0]); return TRUE; @@ -1483,7 +1501,7 @@ cmd_close(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_win(ProfWin *window, const char *const command, gchar **args) +cmd_win(ProfWin* window, const char* const command, gchar** args) { gboolean is_num = TRUE; int i = 0; @@ -1497,14 +1515,14 @@ cmd_win(ProfWin *window, const char *const command, gchar **args) if (is_num) { int num = atoi(args[0]); - ProfWin *focuswin = wins_get_by_num(num); + ProfWin* focuswin = wins_get_by_num(num); if (!focuswin) { cons_show("Window %d does not exist.", num); } else { ui_focus_win(focuswin); } } else { - ProfWin *focuswin = wins_get_by_string(args[0]); + ProfWin* focuswin = wins_get_by_string(args[0]); if (!focuswin) { cons_show("Window \"%s\" does not exist.", args[0]); } else { @@ -1516,21 +1534,23 @@ cmd_win(ProfWin *window, const char *const command, gchar **args) } static void -_cmd_list_commands(GList *commands) { +_cmd_list_commands(GList* commands) +{ int maxlen = 0; - GList *curr = commands; + GList* curr = commands; while (curr) { - gchar *cmd = curr->data; + gchar* cmd = curr->data; int len = strlen(cmd); - if (len > maxlen) maxlen = len; + if (len > maxlen) + maxlen = len; curr = g_list_next(curr); } - GString *cmds = g_string_new(""); + GString* cmds = g_string_new(""); curr = commands; int count = 0; while (curr) { - gchar *cmd = curr->data; + gchar* cmd = curr->data; if (count == 5) { cons_show(cmds->str); g_string_free(cmds, TRUE); @@ -1551,21 +1571,21 @@ _cmd_list_commands(GList *commands) { } static void -_cmd_help_cmd_list(const char *const tag) +_cmd_help_cmd_list(const char* const tag) { cons_show(""); - ProfWin *console = wins_get_console(); + ProfWin* console = wins_get_console(); if (tag) { win_println(console, THEME_HELP_HEADER, "-", "%s commands", tag); } else { win_println(console, THEME_HELP_HEADER, "-", "All commands"); } - GList *ordered_commands = NULL; + GList* ordered_commands = NULL; if (g_strcmp0(tag, "plugins") == 0) { - GList *plugins_cmds = plugins_get_command_names(); - GList *curr = plugins_cmds; + GList* plugins_cmds = plugins_get_command_names(); + GList* curr = plugins_cmds; while (curr) { ordered_commands = g_list_insert_sorted(ordered_commands, curr->data, (GCompareFunc)g_strcmp0); curr = g_list_next(curr); @@ -1576,8 +1596,8 @@ _cmd_help_cmd_list(const char *const tag) // add plugins if showing all commands if (!tag) { - GList *plugins_cmds = plugins_get_command_names(); - GList *curr = plugins_cmds; + GList* plugins_cmds = plugins_get_command_names(); + GList* curr = plugins_cmds; while (curr) { ordered_commands = g_list_insert_sorted(ordered_commands, curr->data, (GCompareFunc)g_strcmp0); curr = g_list_next(curr); @@ -1591,7 +1611,7 @@ _cmd_help_cmd_list(const char *const tag) } gboolean -cmd_help(ProfWin *window, const char *const command, gchar **args) +cmd_help(ProfWin* window, const char* const command, gchar** args) { int num_args = g_strv_length(args); if (num_args == 0) { @@ -1600,12 +1620,12 @@ cmd_help(ProfWin *window, const char *const command, gchar **args) if (args[1] == NULL) { cons_bad_cmd_usage(command); } else { - GList *cmds = cmd_search_index_all(args[1]); + GList* cmds = cmd_search_index_all(args[1]); if (cmds == NULL) { cons_show("No commands found."); } else { - GList *curr = cmds; - GList *results = NULL; + GList* curr = cmds; + GList* results = NULL; while (curr) { results = g_list_insert_sorted(results, curr->data, (GCompareFunc)g_strcmp0); curr = g_list_next(curr); @@ -1620,12 +1640,12 @@ cmd_help(ProfWin *window, const char *const command, gchar **args) if (args[1] == NULL) { cons_bad_cmd_usage(command); } else { - GList *cmds = cmd_search_index_any(args[1]); + GList* cmds = cmd_search_index_any(args[1]); if (cmds == NULL) { cons_show("No commands found."); } else { - GList *curr = cmds; - GList *results = NULL; + GList* curr = cmds; + GList* results = NULL; while (curr) { results = g_list_insert_sorted(results, curr->data, (GCompareFunc)g_strcmp0); curr = g_list_next(curr); @@ -1649,15 +1669,15 @@ cmd_help(ProfWin *window, const char *const command, gchar **args) } else if (strcmp(args[0], "navigation") == 0) { cons_navigation_help(); } else { - char *cmd = args[0]; + char* cmd = args[0]; char cmd_with_slash[1 + strlen(cmd) + 1]; sprintf(cmd_with_slash, "/%s", cmd); - Command *command = cmd_get(cmd_with_slash); + Command* command = cmd_get(cmd_with_slash); if (command) { cons_show_help(cmd_with_slash, &command->help); } else { - CommandHelp *commandHelp = plugins_get_help(cmd_with_slash); + CommandHelp* commandHelp = plugins_get_help(cmd_with_slash); if (commandHelp) { cons_show_help(cmd_with_slash, commandHelp); } else { @@ -1671,7 +1691,7 @@ cmd_help(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_about(ProfWin *window, const char *const command, gchar **args) +cmd_about(ProfWin* window, const char* const command, gchar** args) { cons_show(""); cons_about(); @@ -1679,7 +1699,7 @@ cmd_about(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_prefs(ProfWin *window, const char *const command, gchar **args) +cmd_prefs(ProfWin* window, const char* const command, gchar** args) { if (args[0] == NULL) { cons_prefs(); @@ -1728,18 +1748,18 @@ cmd_prefs(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_theme(ProfWin *window, const char *const command, gchar **args) +cmd_theme(ProfWin* window, const char* const command, gchar** args) { // 'full-load' means to load the theme including the settings (not just [colours]) gboolean fullload = (g_strcmp0(args[0], "full-load") == 0); // list themes if (g_strcmp0(args[0], "list") == 0) { - GSList *themes = theme_list(); + GSList* themes = theme_list(); cons_show_themes(themes); g_slist_free_full(themes, g_free); - // load a theme + // load a theme } else if (g_strcmp0(args[0], "load") == 0 || fullload) { if (args[1] == NULL) { cons_bad_cmd_usage(command); @@ -1762,7 +1782,7 @@ cmd_theme(ProfWin *window, const char *const command, gchar **args) cons_show("Couldn't find theme: %s", args[1]); } - // show colours + // show colours } else if (g_strcmp0(args[0], "colours") == 0) { cons_theme_colours(); } else if (g_strcmp0(args[0], "properties") == 0) { @@ -1775,7 +1795,7 @@ cmd_theme(ProfWin *window, const char *const command, gchar **args) } static void -_who_room(ProfWin *window, const char *const command, gchar **args) +_who_room(ProfWin* window, const char* const command, gchar** args) { if ((g_strv_length(args) == 2) && args[1]) { cons_show("Argument group is not applicable to chat rooms."); @@ -1783,53 +1803,30 @@ _who_room(ProfWin *window, const char *const command, gchar **args) } // bad arg - if (args[0] && - (g_strcmp0(args[0], "online") != 0) && - (g_strcmp0(args[0], "available") != 0) && - (g_strcmp0(args[0], "unavailable") != 0) && - (g_strcmp0(args[0], "away") != 0) && - (g_strcmp0(args[0], "chat") != 0) && - (g_strcmp0(args[0], "xa") != 0) && - (g_strcmp0(args[0], "dnd") != 0) && - (g_strcmp0(args[0], "any") != 0) && - (g_strcmp0(args[0], "moderator") != 0) && - (g_strcmp0(args[0], "participant") != 0) && - (g_strcmp0(args[0], "visitor") != 0) && - (g_strcmp0(args[0], "owner") != 0) && - (g_strcmp0(args[0], "admin") != 0) && - (g_strcmp0(args[0], "member") != 0) && - (g_strcmp0(args[0], "outcast") != 0)) { + if (args[0] && (g_strcmp0(args[0], "online") != 0) && (g_strcmp0(args[0], "available") != 0) && (g_strcmp0(args[0], "unavailable") != 0) && (g_strcmp0(args[0], "away") != 0) && (g_strcmp0(args[0], "chat") != 0) && (g_strcmp0(args[0], "xa") != 0) && (g_strcmp0(args[0], "dnd") != 0) && (g_strcmp0(args[0], "any") != 0) && (g_strcmp0(args[0], "moderator") != 0) && (g_strcmp0(args[0], "participant") != 0) && (g_strcmp0(args[0], "visitor") != 0) && (g_strcmp0(args[0], "owner") != 0) && (g_strcmp0(args[0], "admin") != 0) && (g_strcmp0(args[0], "member") != 0) && (g_strcmp0(args[0], "outcast") != 0)) { cons_bad_cmd_usage(command); return; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); // presence filter - if (args[0] == NULL || - (g_strcmp0(args[0], "online") == 0) || - (g_strcmp0(args[0], "available") == 0) || - (g_strcmp0(args[0], "unavailable") == 0) || - (g_strcmp0(args[0], "away") == 0) || - (g_strcmp0(args[0], "chat") == 0) || - (g_strcmp0(args[0], "xa") == 0) || - (g_strcmp0(args[0], "dnd") == 0) || - (g_strcmp0(args[0], "any") == 0)) { - - char *presence = args[0]; - GList *occupants = muc_roster(mucwin->roomjid); + if (args[0] == NULL || (g_strcmp0(args[0], "online") == 0) || (g_strcmp0(args[0], "available") == 0) || (g_strcmp0(args[0], "unavailable") == 0) || (g_strcmp0(args[0], "away") == 0) || (g_strcmp0(args[0], "chat") == 0) || (g_strcmp0(args[0], "xa") == 0) || (g_strcmp0(args[0], "dnd") == 0) || (g_strcmp0(args[0], "any") == 0)) { + + char* presence = args[0]; + GList* occupants = muc_roster(mucwin->roomjid); // no arg, show all contacts if ((presence == NULL) || (g_strcmp0(presence, "any") == 0)) { mucwin_roster(mucwin, occupants, NULL); - // available + // available } else if (strcmp("available", presence) == 0) { - GList *filtered = NULL; + GList* filtered = NULL; while (occupants) { - Occupant *occupant = occupants->data; + Occupant* occupant = occupants->data; if (muc_occupant_available(occupant)) { filtered = g_list_append(filtered, occupant); } @@ -1838,12 +1835,12 @@ _who_room(ProfWin *window, const char *const command, gchar **args) mucwin_roster(mucwin, filtered, "available"); - // unavailable + // unavailable } else if (strcmp("unavailable", presence) == 0) { - GList *filtered = NULL; + GList* filtered = NULL; while (occupants) { - Occupant *occupant = occupants->data; + Occupant* occupant = occupants->data; if (!muc_occupant_available(occupant)) { filtered = g_list_append(filtered, occupant); } @@ -1852,13 +1849,13 @@ _who_room(ProfWin *window, const char *const command, gchar **args) mucwin_roster(mucwin, filtered, "unavailable"); - // show specific status + // show specific status } else { - GList *filtered = NULL; + GList* filtered = NULL; while (occupants) { - Occupant *occupant = occupants->data; - const char *presence_str = string_from_resource_presence(occupant->presence); + Occupant* occupant = occupants->data; + const char* presence_str = string_from_resource_presence(occupant->presence); if (strcmp(presence_str, presence) == 0) { filtered = g_list_append(filtered, occupant); } @@ -1870,7 +1867,7 @@ _who_room(ProfWin *window, const char *const command, gchar **args) g_list_free(occupants); - // role or affiliation filter + // role or affiliation filter } else { if (g_strcmp0(args[0], "moderator") == 0) { mucwin_show_role_list(mucwin, MUC_ROLE_MODERATOR); @@ -1905,32 +1902,32 @@ _who_room(ProfWin *window, const char *const command, gchar **args) } static void -_who_roster(ProfWin *window, const char *const command, gchar **args) +_who_roster(ProfWin* window, const char* const command, gchar** args) { - char *presence = args[0]; + char* presence = args[0]; // bad arg if (presence - && (strcmp(presence, "online") != 0) - && (strcmp(presence, "available") != 0) - && (strcmp(presence, "unavailable") != 0) - && (strcmp(presence, "offline") != 0) - && (strcmp(presence, "away") != 0) - && (strcmp(presence, "chat") != 0) - && (strcmp(presence, "xa") != 0) - && (strcmp(presence, "dnd") != 0) - && (strcmp(presence, "any") != 0)) { + && (strcmp(presence, "online") != 0) + && (strcmp(presence, "available") != 0) + && (strcmp(presence, "unavailable") != 0) + && (strcmp(presence, "offline") != 0) + && (strcmp(presence, "away") != 0) + && (strcmp(presence, "chat") != 0) + && (strcmp(presence, "xa") != 0) + && (strcmp(presence, "dnd") != 0) + && (strcmp(presence, "any") != 0)) { cons_bad_cmd_usage(command); return; } - char *group = NULL; + char* group = NULL; if ((g_strv_length(args) == 2) && args[1]) { group = args[1]; } cons_show(""); - GSList *list = NULL; + GSList* list = NULL; if (group) { list = roster_get_group(group, ROSTER_ORD_NAME); if (list == NULL) { @@ -1963,11 +1960,11 @@ _who_roster(ProfWin *window, const char *const command, gchar **args) } } - // available + // available } else if (strcmp("available", presence) == 0) { - GSList *filtered = NULL; + GSList* filtered = NULL; - GSList *curr = list; + GSList* curr = list; while (curr) { PContact contact = curr->data; if (p_contact_is_available(contact)) { @@ -1993,11 +1990,11 @@ _who_roster(ProfWin *window, const char *const command, gchar **args) } g_slist_free(filtered); - // unavailable + // unavailable } else if (strcmp("unavailable", presence) == 0) { - GSList *filtered = NULL; + GSList* filtered = NULL; - GSList *curr = list; + GSList* curr = list; while (curr) { PContact contact = curr->data; if (!p_contact_is_available(contact)) { @@ -2023,11 +2020,11 @@ _who_roster(ProfWin *window, const char *const command, gchar **args) } g_slist_free(filtered); - // online, available resources + // online, available resources } else if (strcmp("online", presence) == 0) { - GSList *filtered = NULL; + GSList* filtered = NULL; - GSList *curr = list; + GSList* curr = list; while (curr) { PContact contact = curr->data; if (p_contact_has_available_resource(contact)) { @@ -2053,11 +2050,11 @@ _who_roster(ProfWin *window, const char *const command, gchar **args) } g_slist_free(filtered); - // offline, no available resources + // offline, no available resources } else if (strcmp("offline", presence) == 0) { - GSList *filtered = NULL; + GSList* filtered = NULL; - GSList *curr = list; + GSList* curr = list; while (curr) { PContact contact = curr->data; if (!p_contact_has_available_resource(contact)) { @@ -2083,11 +2080,11 @@ _who_roster(ProfWin *window, const char *const command, gchar **args) } g_slist_free(filtered); - // show specific status + // show specific status } else { - GSList *filtered = NULL; + GSList* filtered = NULL; - GSList *curr = list; + GSList* curr = list; while (curr) { PContact contact = curr->data; if (strcmp(p_contact_presence(contact), presence) == 0) { @@ -2118,7 +2115,7 @@ _who_roster(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_who(ProfWin *window, const char *const command, gchar **args) +cmd_who(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -2138,10 +2135,10 @@ cmd_who(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_msg(ProfWin *window, const char *const command, gchar **args) +cmd_msg(ProfWin* window, const char* const command, gchar** args) { - char *usr = args[0]; - char *msg = args[1]; + char* usr = args[0]; + char* msg = args[1]; jabber_conn_status_t conn_status = connection_get_status(); @@ -2152,14 +2149,14 @@ cmd_msg(ProfWin *window, const char *const command, gchar **args) // send private message when in MUC room if (window->type == WIN_MUC) { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); if (muc_roster_contains_nick(mucwin->roomjid, usr)) { - GString *full_jid = g_string_new(mucwin->roomjid); + GString* full_jid = g_string_new(mucwin->roomjid); g_string_append(full_jid, "/"); g_string_append(full_jid, usr); - ProfPrivateWin *privwin = wins_get_private(full_jid->str); + ProfPrivateWin* privwin = wins_get_private(full_jid->str); if (!privwin) { privwin = (ProfPrivateWin*)wins_new_private(full_jid->str); } @@ -2177,14 +2174,14 @@ cmd_msg(ProfWin *window, const char *const command, gchar **args) return TRUE; - // send chat message + // send chat message } else { - char *barejid = roster_barejid_from_name(usr); + char* barejid = roster_barejid_from_name(usr); if (barejid == NULL) { barejid = usr; } - ProfChatWin *chatwin = wins_get_chat(barejid); + ProfChatWin* chatwin = wins_get_chat(barejid); if (!chatwin) { chatwin = chatwin_new(barejid); } @@ -2221,7 +2218,7 @@ cmd_msg(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_group(ProfWin *window, const char *const command, gchar **args) +cmd_group(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -2232,8 +2229,8 @@ cmd_group(ProfWin *window, const char *const command, gchar **args) // list all groups if (args[1] == NULL) { - GList *groups = roster_get_groups(); - GList *curr = groups; + GList* groups = roster_get_groups(); + GList* curr = groups; if (curr) { cons_show("Groups:"); while (curr) { @@ -2250,28 +2247,28 @@ cmd_group(ProfWin *window, const char *const command, gchar **args) // show contacts in group if (strcmp(args[1], "show") == 0) { - char *group = args[2]; + char* group = args[2]; if (group == NULL) { cons_bad_cmd_usage(command); return TRUE; } - GSList *list = roster_get_group(group, ROSTER_ORD_NAME); + GSList* list = roster_get_group(group, ROSTER_ORD_NAME); cons_show_roster_group(group, list); return TRUE; } // add contact to group if (strcmp(args[1], "add") == 0) { - char *group = args[2]; - char *contact = args[3]; + char* group = args[2]; + char* contact = args[3]; if ((group == NULL) || (contact == NULL)) { cons_bad_cmd_usage(command); return TRUE; } - char *barejid = roster_barejid_from_name(contact); + char* barejid = roster_barejid_from_name(contact); if (barejid == NULL) { barejid = contact; } @@ -2283,7 +2280,7 @@ cmd_group(ProfWin *window, const char *const command, gchar **args) } if (p_contact_in_group(pcontact, group)) { - const char *display_name = p_contact_name_or_jid(pcontact); + const char* display_name = p_contact_name_or_jid(pcontact); ui_contact_already_in_group(display_name, group); } else { roster_send_add_to_group(group, pcontact); @@ -2294,15 +2291,15 @@ cmd_group(ProfWin *window, const char *const command, gchar **args) // remove contact from group if (strcmp(args[1], "remove") == 0) { - char *group = args[2]; - char *contact = args[3]; + char* group = args[2]; + char* contact = args[3]; if ((group == NULL) || (contact == NULL)) { cons_bad_cmd_usage(command); return TRUE; } - char *barejid = roster_barejid_from_name(contact); + char* barejid = roster_barejid_from_name(contact); if (barejid == NULL) { barejid = contact; } @@ -2314,7 +2311,7 @@ cmd_group(ProfWin *window, const char *const command, gchar **args) } if (!p_contact_in_group(pcontact, group)) { - const char *display_name = p_contact_name_or_jid(pcontact); + const char* display_name = p_contact_name_or_jid(pcontact); ui_contact_not_in_group(display_name, group); } else { roster_send_remove_from_group(group, pcontact); @@ -2328,7 +2325,7 @@ cmd_group(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_roster(ProfWin *window, const char *const command, gchar **args) +cmd_roster(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -2339,31 +2336,31 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) return TRUE; } - GSList *list = roster_get_contacts(ROSTER_ORD_NAME); + GSList* list = roster_get_contacts(ROSTER_ORD_NAME); cons_show_roster(list); g_slist_free(list); return TRUE; - // show roster, only online contacts - } else if(g_strcmp0(args[0], "online") == 0){ + // show roster, only online contacts + } else if (g_strcmp0(args[0], "online") == 0) { if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); return TRUE; } - GSList *list = roster_get_contacts_online(); + GSList* list = roster_get_contacts_online(); cons_show_roster(list); g_slist_free(list); return TRUE; - // set roster size + // set roster size } else if (g_strcmp0(args[0], "size") == 0) { if (!args[1]) { cons_bad_cmd_usage(command); return TRUE; } int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(args[1], &intval, 1, 99, &err_msg); if (res) { prefs_set_roster_size(intval); @@ -2378,7 +2375,7 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) return TRUE; } - // set line wrapping + // set line wrapping } else if (g_strcmp0(args[0], "wrap") == 0) { if (!args[1]) { cons_bad_cmd_usage(command); @@ -2389,7 +2386,7 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) return TRUE; } - // header settings + // header settings } else if (g_strcmp0(args[0], "header") == 0) { if (g_strcmp0(args[1], "char") == 0) { if (!args[2]) { @@ -2408,7 +2405,7 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) } return TRUE; - // contact settings + // contact settings } else if (g_strcmp0(args[0], "contact") == 0) { if (g_strcmp0(args[1], "char") == 0) { if (!args[2]) { @@ -2427,7 +2424,7 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) cons_bad_cmd_usage(command); } else { int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(args[2], &intval, 0, 10, &err_msg); if (res) { prefs_set_roster_contact_indent(intval); @@ -2443,7 +2440,7 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) } return TRUE; - // resource settings + // resource settings } else if (g_strcmp0(args[0], "resource") == 0) { if (g_strcmp0(args[1], "char") == 0) { if (!args[2]) { @@ -2462,7 +2459,7 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) cons_bad_cmd_usage(command); } else { int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(args[2], &intval, 0, 10, &err_msg); if (res) { prefs_set_roster_resource_indent(intval); @@ -2482,14 +2479,14 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) } return TRUE; - // presence settings + // presence settings } else if (g_strcmp0(args[0], "presence") == 0) { if (g_strcmp0(args[1], "indent") == 0) { if (!args[2]) { cons_bad_cmd_usage(command); } else { int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(args[2], &intval, -1, 10, &err_msg); if (res) { prefs_set_roster_presence_indent(intval); @@ -2505,10 +2502,10 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) } return TRUE; - // show/hide roster + // show/hide roster } else if ((g_strcmp0(args[0], "show") == 0) || (g_strcmp0(args[0], "hide") == 0)) { preference_t pref; - const char *pref_str; + const char* pref_str; if (args[1] == NULL) { pref = PREF_ROSTER; pref_str = ""; @@ -2568,7 +2565,7 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) } return TRUE; - // roster grouping + // roster grouping } else if (g_strcmp0(args[0], "by") == 0) { if (g_strcmp0(args[1], "group") == 0) { cons_show("Grouping roster by roster group"); @@ -2596,7 +2593,7 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) return TRUE; } - // roster item order + // roster item order } else if (g_strcmp0(args[0], "order") == 0) { if (g_strcmp0(args[1], "name") == 0) { cons_show("Ordering roster by name"); @@ -2885,28 +2882,28 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) return TRUE; } - // add contact + // add contact } else if (strcmp(args[0], "add") == 0) { if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); return TRUE; } - char *jid = args[1]; + char* jid = args[1]; if (jid == NULL) { cons_bad_cmd_usage(command); } else { - char *name = args[2]; + char* name = args[2]; roster_send_add_new(jid, name); } return TRUE; - // remove contact + // remove contact } else if (strcmp(args[0], "remove") == 0) { if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); return TRUE; } - char *jid = args[1]; + char* jid = args[1]; if (jid == NULL) { cons_bad_cmd_usage(command); } else { @@ -2924,8 +2921,8 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) return TRUE; } - GSList *all = roster_get_contacts(ROSTER_ORD_NAME); - GSList *curr = all; + GSList* all = roster_get_contacts(ROSTER_ORD_NAME); + GSList* curr = all; while (curr) { PContact contact = curr->data; roster_send_remove(p_contact_barejid(contact)); @@ -2935,19 +2932,19 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) g_slist_free(all); return TRUE; - // change nickname + // change nickname } else if (strcmp(args[0], "nick") == 0) { if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); return TRUE; } - char *jid = args[1]; + char* jid = args[1]; if (jid == NULL) { cons_bad_cmd_usage(command); return TRUE; } - char *name = args[2]; + char* name = args[2]; if (name == NULL) { cons_bad_cmd_usage(command); return TRUE; @@ -2960,27 +2957,26 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) return TRUE; } - const char *barejid = p_contact_barejid(contact); + const char* barejid = p_contact_barejid(contact); // TODO wait for result stanza before updating - const char *oldnick = p_contact_name(contact); + const char* oldnick = p_contact_name(contact); wins_change_nick(barejid, oldnick, name); roster_change_name(contact, name); - GSList *groups = p_contact_groups(contact); + GSList* groups = p_contact_groups(contact); roster_send_name_change(barejid, name, groups); - cons_show("Nickname for %s set to: %s.", jid, name); return TRUE; - // remove nickname + // remove nickname } else if (strcmp(args[0], "clearnick") == 0) { if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); return TRUE; } - char *jid = args[1]; + char* jid = args[1]; if (jid == NULL) { cons_bad_cmd_usage(command); return TRUE; @@ -2993,13 +2989,13 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) return TRUE; } - const char *barejid = p_contact_barejid(contact); + const char* barejid = p_contact_barejid(contact); // TODO wait for result stanza before updating - const char *oldnick = p_contact_name(contact); + const char* oldnick = p_contact_name(contact); wins_remove_nick(barejid, oldnick); roster_change_name(contact, NULL); - GSList *groups = p_contact_groups(contact); + GSList* groups = p_contact_groups(contact); roster_send_name_change(barejid, NULL, groups); cons_show("Nickname for %s removed.", jid); @@ -3012,7 +3008,7 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_blocked(ProfWin *window, const char *const command, gchar **args) +cmd_blocked(ProfWin* window, const char* const command, gchar** args) { if (connection_get_status() != JABBER_CONNECTED) { cons_show("You are not currently connected."); @@ -3025,9 +3021,9 @@ cmd_blocked(ProfWin *window, const char *const command, gchar **args) } if (g_strcmp0(args[0], "add") == 0) { - char *jid = args[1]; + char* jid = args[1]; if (jid == NULL && (window->type == WIN_CHAT)) { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; jid = chatwin->barejid; } @@ -3058,8 +3054,8 @@ cmd_blocked(ProfWin *window, const char *const command, gchar **args) return TRUE; } - GList *blocked = blocked_list(); - GList *curr = blocked; + GList* blocked = blocked_list(); + GList* curr = blocked; if (curr) { cons_show("Blocked users:"); while (curr) { @@ -3074,10 +3070,10 @@ cmd_blocked(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_resource(ProfWin *window, const char *const command, gchar **args) +cmd_resource(ProfWin* window, const char* const command, gchar** args) { - char *cmd = args[0]; - char *setting = NULL; + char* cmd = args[0]; + char* setting = NULL; if (g_strcmp0(cmd, "message") == 0) { setting = args[1]; if (!setting) { @@ -3109,10 +3105,10 @@ cmd_resource(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; if (g_strcmp0(cmd, "set") == 0) { - char *resource = args[1]; + char* resource = args[1]; if (!resource) { cons_bad_cmd_usage(command); return TRUE; @@ -3157,7 +3153,7 @@ cmd_resource(ProfWin *window, const char *const command, gchar **args) static void _cmd_status_show_status(char* usr) { - char *usr_jid = roster_barejid_from_name(usr); + char* usr_jid = roster_barejid_from_name(usr); if (usr_jid == NULL) { usr_jid = usr; } @@ -3165,9 +3161,9 @@ _cmd_status_show_status(char* usr) } gboolean -cmd_status_set(ProfWin *window, const char *const command, gchar **args) +cmd_status_set(ProfWin* window, const char* const command, gchar** args) { - char *state = args[1]; + char* state = args[1]; if (g_strcmp0(state, "online") == 0) { _update_presence(RESOURCE_ONLINE, "online", args); @@ -3187,9 +3183,9 @@ cmd_status_set(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_status_get(ProfWin *window, const char *const command, gchar **args) +cmd_status_get(ProfWin* window, const char* const command, gchar** args) { - char *usr = args[1]; + char* usr = args[1]; jabber_conn_status_t conn_status = connection_get_status(); @@ -3198,70 +3194,69 @@ cmd_status_get(ProfWin *window, const char *const command, gchar **args) return TRUE; } - switch (window->type) - { - case WIN_MUC: - if (usr) { - ProfMucWin *mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - Occupant *occupant = muc_roster_item(mucwin->roomjid, usr); - if (occupant) { - win_show_occupant(window, occupant); - } else { - win_println(window, THEME_DEFAULT, "-", "No such participant \"%s\" in room.", usr); - } - } else { - win_println(window, THEME_DEFAULT, "-", "You must specify a nickname."); - } - break; - case WIN_CHAT: - if (usr) { - _cmd_status_show_status(usr); + switch (window->type) { + case WIN_MUC: + if (usr) { + ProfMucWin* mucwin = (ProfMucWin*)window; + assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); + Occupant* occupant = muc_roster_item(mucwin->roomjid, usr); + if (occupant) { + win_show_occupant(window, occupant); } else { - ProfChatWin *chatwin = (ProfChatWin*)window; - assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - PContact pcontact = roster_get_contact(chatwin->barejid); - if (pcontact) { - win_show_contact(window, pcontact); - } else { - win_println(window, THEME_DEFAULT, "-", "Error getting contact info."); - } + win_println(window, THEME_DEFAULT, "-", "No such participant \"%s\" in room.", usr); } - break; - case WIN_PRIVATE: - if (usr) { - _cmd_status_show_status(usr); + } else { + win_println(window, THEME_DEFAULT, "-", "You must specify a nickname."); + } + break; + case WIN_CHAT: + if (usr) { + _cmd_status_show_status(usr); + } else { + ProfChatWin* chatwin = (ProfChatWin*)window; + assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); + PContact pcontact = roster_get_contact(chatwin->barejid); + if (pcontact) { + win_show_contact(window, pcontact); } else { - ProfPrivateWin *privatewin = (ProfPrivateWin*)window; - assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); - Jid *jid = jid_create(privatewin->fulljid); - Occupant *occupant = muc_roster_item(jid->barejid, jid->resourcepart); - if (occupant) { - win_show_occupant(window, occupant); - } else { - win_println(window, THEME_DEFAULT, "-", "Error getting contact info."); - } - jid_destroy(jid); + win_println(window, THEME_DEFAULT, "-", "Error getting contact info."); } - break; - case WIN_CONSOLE: - if (usr) { - _cmd_status_show_status(usr); + } + break; + case WIN_PRIVATE: + if (usr) { + _cmd_status_show_status(usr); + } else { + ProfPrivateWin* privatewin = (ProfPrivateWin*)window; + assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); + Jid* jid = jid_create(privatewin->fulljid); + Occupant* occupant = muc_roster_item(jid->barejid, jid->resourcepart); + if (occupant) { + win_show_occupant(window, occupant); } else { - cons_bad_cmd_usage(command); + win_println(window, THEME_DEFAULT, "-", "Error getting contact info."); } - break; - default: - break; + jid_destroy(jid); + } + break; + case WIN_CONSOLE: + if (usr) { + _cmd_status_show_status(usr); + } else { + cons_bad_cmd_usage(command); + } + break; + default: + break; } return TRUE; } static void -_cmd_info_show_contact(char *usr) +_cmd_info_show_contact(char* usr) { - char *usr_jid = roster_barejid_from_name(usr); + char* usr_jid = roster_barejid_from_name(usr); if (usr_jid == NULL) { usr_jid = usr; } @@ -3274,9 +3269,9 @@ _cmd_info_show_contact(char *usr) } gboolean -cmd_info(ProfWin *window, const char *const command, gchar **args) +cmd_info(ProfWin* window, const char* const command, gchar** args) { - char *usr = args[0]; + char* usr = args[0]; jabber_conn_status_t conn_status = connection_get_status(); @@ -3285,150 +3280,148 @@ cmd_info(ProfWin *window, const char *const command, gchar **args) return TRUE; } - switch (window->type) - { - case WIN_MUC: - if (usr) { - ProfMucWin *mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - Occupant *occupant = muc_roster_item(mucwin->roomjid, usr); - if (occupant) { - win_show_occupant_info(window, mucwin->roomjid, occupant); - } else { - win_println(window, THEME_DEFAULT, "-", "No such occupant \"%s\" in room.", usr); - } - } else { - ProfMucWin *mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - iq_room_info_request(mucwin->roomjid, TRUE); - mucwin_info(mucwin); - return TRUE; - } - break; - case WIN_CHAT: - if (usr) { - _cmd_info_show_contact(usr); + switch (window->type) { + case WIN_MUC: + if (usr) { + ProfMucWin* mucwin = (ProfMucWin*)window; + assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); + Occupant* occupant = muc_roster_item(mucwin->roomjid, usr); + if (occupant) { + win_show_occupant_info(window, mucwin->roomjid, occupant); } else { - ProfChatWin *chatwin = (ProfChatWin*)window; - assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - PContact pcontact = roster_get_contact(chatwin->barejid); - if (pcontact) { - win_show_info(window, pcontact); - } else { - win_println(window, THEME_DEFAULT, "-", "Error getting contact info."); - } + win_println(window, THEME_DEFAULT, "-", "No such occupant \"%s\" in room.", usr); } - break; - case WIN_PRIVATE: - if (usr) { - _cmd_info_show_contact(usr); + } else { + ProfMucWin* mucwin = (ProfMucWin*)window; + assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); + iq_room_info_request(mucwin->roomjid, TRUE); + mucwin_info(mucwin); + return TRUE; + } + break; + case WIN_CHAT: + if (usr) { + _cmd_info_show_contact(usr); + } else { + ProfChatWin* chatwin = (ProfChatWin*)window; + assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); + PContact pcontact = roster_get_contact(chatwin->barejid); + if (pcontact) { + win_show_info(window, pcontact); } else { - ProfPrivateWin *privatewin = (ProfPrivateWin*)window; - assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); - Jid *jid = jid_create(privatewin->fulljid); - Occupant *occupant = muc_roster_item(jid->barejid, jid->resourcepart); - if (occupant) { - win_show_occupant_info(window, jid->barejid, occupant); - } else { - win_println(window, THEME_DEFAULT, "-", "Error getting contact info."); - } - jid_destroy(jid); + win_println(window, THEME_DEFAULT, "-", "Error getting contact info."); } - break; - case WIN_CONSOLE: - if (usr) { - _cmd_info_show_contact(usr); + } + break; + case WIN_PRIVATE: + if (usr) { + _cmd_info_show_contact(usr); + } else { + ProfPrivateWin* privatewin = (ProfPrivateWin*)window; + assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); + Jid* jid = jid_create(privatewin->fulljid); + Occupant* occupant = muc_roster_item(jid->barejid, jid->resourcepart); + if (occupant) { + win_show_occupant_info(window, jid->barejid, occupant); } else { - cons_bad_cmd_usage(command); + win_println(window, THEME_DEFAULT, "-", "Error getting contact info."); } - break; - default: - break; + jid_destroy(jid); + } + break; + case WIN_CONSOLE: + if (usr) { + _cmd_info_show_contact(usr); + } else { + cons_bad_cmd_usage(command); + } + break; + default: + break; } return TRUE; } gboolean -cmd_caps(ProfWin *window, const char *const command, gchar **args) +cmd_caps(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); - Occupant *occupant = NULL; + Occupant* occupant = NULL; if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); return TRUE; } - switch (window->type) - { - case WIN_MUC: - if (args[0]) { - ProfMucWin *mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - occupant = muc_roster_item(mucwin->roomjid, args[0]); - if (occupant) { - Jid *jidp = jid_create_from_bare_and_resource(mucwin->roomjid, args[0]); - cons_show_caps(jidp->fulljid, occupant->presence); - jid_destroy(jidp); - } else { - cons_show("No such participant \"%s\" in room.", args[0]); - } + switch (window->type) { + case WIN_MUC: + if (args[0]) { + ProfMucWin* mucwin = (ProfMucWin*)window; + assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); + occupant = muc_roster_item(mucwin->roomjid, args[0]); + if (occupant) { + Jid* jidp = jid_create_from_bare_and_resource(mucwin->roomjid, args[0]); + cons_show_caps(jidp->fulljid, occupant->presence); + jid_destroy(jidp); } else { - cons_show("No nickname supplied to /caps in chat room."); + cons_show("No such participant \"%s\" in room.", args[0]); } - break; - case WIN_CHAT: - case WIN_CONSOLE: - if (args[0]) { - Jid *jid = jid_create(args[0]); + } else { + cons_show("No nickname supplied to /caps in chat room."); + } + break; + case WIN_CHAT: + case WIN_CONSOLE: + if (args[0]) { + Jid* jid = jid_create(args[0]); - if (jid->fulljid == NULL) { - cons_show("You must provide a full jid to the /caps command."); + if (jid->fulljid == NULL) { + cons_show("You must provide a full jid to the /caps command."); + } else { + PContact pcontact = roster_get_contact(jid->barejid); + if (pcontact == NULL) { + cons_show("Contact not found in roster: %s", jid->barejid); } else { - PContact pcontact = roster_get_contact(jid->barejid); - if (pcontact == NULL) { - cons_show("Contact not found in roster: %s", jid->barejid); + Resource* resource = p_contact_get_resource(pcontact, jid->resourcepart); + if (resource == NULL) { + cons_show("Could not find resource %s, for contact %s", jid->barejid, jid->resourcepart); } else { - Resource *resource = p_contact_get_resource(pcontact, jid->resourcepart); - if (resource == NULL) { - cons_show("Could not find resource %s, for contact %s", jid->barejid, jid->resourcepart); - } else { - cons_show_caps(jid->fulljid, resource->presence); - } + cons_show_caps(jid->fulljid, resource->presence); } } - jid_destroy(jid); - } else { - cons_show("You must provide a jid to the /caps command."); } - break; - case WIN_PRIVATE: - if (args[0]) { - cons_show("No parameter needed to /caps when in private chat."); - } else { - ProfPrivateWin *privatewin = (ProfPrivateWin*)window; - assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); - Jid *jid = jid_create(privatewin->fulljid); - if (jid) { - occupant = muc_roster_item(jid->barejid, jid->resourcepart); - cons_show_caps(jid->resourcepart, occupant->presence); - jid_destroy(jid); - } + jid_destroy(jid); + } else { + cons_show("You must provide a jid to the /caps command."); + } + break; + case WIN_PRIVATE: + if (args[0]) { + cons_show("No parameter needed to /caps when in private chat."); + } else { + ProfPrivateWin* privatewin = (ProfPrivateWin*)window; + assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); + Jid* jid = jid_create(privatewin->fulljid); + if (jid) { + occupant = muc_roster_item(jid->barejid, jid->resourcepart); + cons_show_caps(jid->resourcepart, occupant->presence); + jid_destroy(jid); } - break; - default: - break; + } + break; + default: + break; } return TRUE; } static void -_send_software_version_iq_to_fulljid(char *request) +_send_software_version_iq_to_fulljid(char* request) { - char *mybarejid = connection_get_barejid(); - Jid *jid = jid_create(request); + char* mybarejid = connection_get_barejid(); + Jid* jid = jid_create(request); if (jid == NULL || jid->fulljid == NULL) { cons_show("You must provide a full jid to the /software command."); @@ -3442,7 +3435,7 @@ _send_software_version_iq_to_fulljid(char *request) } gboolean -cmd_software(ProfWin *window, const char *const command, gchar **args) +cmd_software(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -3451,75 +3444,74 @@ cmd_software(ProfWin *window, const char *const command, gchar **args) return TRUE; } - switch (window->type) - { - case WIN_MUC: - if (args[0]) { - ProfMucWin *mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - Occupant *occupant = muc_roster_item(mucwin->roomjid, args[0]); - if (occupant) { - Jid *jid = jid_create_from_bare_and_resource(mucwin->roomjid, args[0]); - iq_send_software_version(jid->fulljid); - jid_destroy(jid); - } else { - cons_show("No such participant \"%s\" in room.", args[0]); - } + switch (window->type) { + case WIN_MUC: + if (args[0]) { + ProfMucWin* mucwin = (ProfMucWin*)window; + assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); + Occupant* occupant = muc_roster_item(mucwin->roomjid, args[0]); + if (occupant) { + Jid* jid = jid_create_from_bare_and_resource(mucwin->roomjid, args[0]); + iq_send_software_version(jid->fulljid); + jid_destroy(jid); } else { - cons_show("No nickname supplied to /software in chat room."); + cons_show("No such participant \"%s\" in room.", args[0]); } + } else { + cons_show("No nickname supplied to /software in chat room."); + } + break; + case WIN_CHAT: + if (args[0]) { + _send_software_version_iq_to_fulljid(args[0]); break; - case WIN_CHAT: - if (args[0]) { - _send_software_version_iq_to_fulljid(args[0]); - break; - } else { - ProfChatWin *chatwin = (ProfChatWin*)window; - assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - - char *resource = NULL; - ChatSession *session = chat_session_get(chatwin->barejid); - if (chatwin->resource_override) { - resource = chatwin->resource_override; - } else if (session && session->resource) { - resource = session->resource; - } + } else { + ProfChatWin* chatwin = (ProfChatWin*)window; + assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - if (resource) { - GString *fulljid = g_string_new(chatwin->barejid); - g_string_append_printf(fulljid, "/%s", resource); - iq_send_software_version(fulljid->str); - g_string_free(fulljid, TRUE); - } else { - win_println(window, THEME_DEFAULT, "-", "Unknown resource for /software command. See /help resource."); - } - break; - } - case WIN_CONSOLE: - if (args[0]) { - _send_software_version_iq_to_fulljid(args[0]); - } else { - cons_show("You must provide a jid to the /software command."); + char* resource = NULL; + ChatSession* session = chat_session_get(chatwin->barejid); + if (chatwin->resource_override) { + resource = chatwin->resource_override; + } else if (session && session->resource) { + resource = session->resource; } - break; - case WIN_PRIVATE: - if (args[0]) { - cons_show("No parameter needed to /software when in private chat."); + + if (resource) { + GString* fulljid = g_string_new(chatwin->barejid); + g_string_append_printf(fulljid, "/%s", resource); + iq_send_software_version(fulljid->str); + g_string_free(fulljid, TRUE); } else { - ProfPrivateWin *privatewin = (ProfPrivateWin*)window; - assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); - iq_send_software_version(privatewin->fulljid); + win_println(window, THEME_DEFAULT, "-", "Unknown resource for /software command. See /help resource."); } break; - default: - break; + } + case WIN_CONSOLE: + if (args[0]) { + _send_software_version_iq_to_fulljid(args[0]); + } else { + cons_show("You must provide a jid to the /software command."); + } + break; + case WIN_PRIVATE: + if (args[0]) { + cons_show("No parameter needed to /software when in private chat."); + } else { + ProfPrivateWin* privatewin = (ProfPrivateWin*)window; + assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); + iq_send_software_version(privatewin->fulljid); + } + break; + default: + break; } return TRUE; } gboolean -cmd_serversoftware(ProfWin *window, const char *const command, gchar **args) +cmd_serversoftware(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -3538,7 +3530,7 @@ cmd_serversoftware(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_join(ProfWin *window, const char *const command, gchar **args) +cmd_join(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); if (conn_status != JABBER_CONNECTED) { @@ -3547,11 +3539,11 @@ cmd_join(ProfWin *window, const char *const command, gchar **args) } if (args[0] == NULL) { - char *account_name = session_get_account_name(); - ProfAccount *account = accounts_get_account(account_name); + char* account_name = session_get_account_name(); + ProfAccount* account = accounts_get_account(account_name); if (account->muc_service) { - GString *room_str = g_string_new(""); - char *uuid = connection_create_uuid(); + GString* room_str = g_string_new(""); + char* uuid = connection_create_uuid(); g_string_append_printf(room_str, "private-chat-%s@%s", uuid, account->muc_service); connection_free_uuid(uuid); @@ -3567,43 +3559,43 @@ cmd_join(ProfWin *window, const char *const command, gchar **args) return TRUE; } - Jid *room_arg = jid_create(args[0]); + Jid* room_arg = jid_create(args[0]); if (room_arg == NULL) { cons_show_error("Specified room has incorrect format."); cons_show(""); return TRUE; } - char *room = NULL; - char *nick = NULL; - char *passwd = NULL; - char *account_name = session_get_account_name(); - ProfAccount *account = accounts_get_account(account_name); + char* room = NULL; + char* nick = NULL; + char* passwd = NULL; + char* account_name = session_get_account_name(); + ProfAccount* account = accounts_get_account(account_name); // full room jid supplied (room@server) if (room_arg->localpart) { room = g_strdup(args[0]); - // server not supplied (room), use account preference + // server not supplied (room), use account preference } else if (account->muc_service) { - GString *room_str = g_string_new(""); + GString* room_str = g_string_new(""); g_string_append(room_str, args[0]); g_string_append(room_str, "@"); g_string_append(room_str, account->muc_service); room = room_str->str; g_string_free(room_str, FALSE); - // no account preference + // no account preference } else { cons_show("Account MUC service property not found."); return TRUE; } // Additional args supplied - gchar *opt_keys[] = { "nick", "password", NULL }; + gchar* opt_keys[] = { "nick", "password", NULL }; gboolean parsed; - GHashTable *options = parse_options(&args[1], opt_keys, &parsed); + GHashTable* options = parse_options(&args[1], opt_keys, &parsed); if (!parsed) { cons_bad_cmd_usage(command); cons_show(""); @@ -3645,7 +3637,7 @@ cmd_join(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_invite(ProfWin *window, const char *const command, gchar **args) +cmd_invite(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -3655,31 +3647,31 @@ cmd_invite(ProfWin *window, const char *const command, gchar **args) } if (g_strcmp0(args[0], "send") == 0) { - char *contact = args[1]; - char *reason = args[2]; + char* contact = args[1]; + char* reason = args[2]; if (window->type != WIN_MUC) { cons_show("You must be in a chat room to send an invite."); return TRUE; } - char *usr_jid = roster_barejid_from_name(contact); + char* usr_jid = roster_barejid_from_name(contact); if (usr_jid == NULL) { usr_jid = contact; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); message_send_invite(mucwin->roomjid, usr_jid, reason); if (reason) { cons_show("Room invite sent, contact: %s, room: %s, reason: \"%s\".", - contact, mucwin->roomjid, reason); + contact, mucwin->roomjid, reason); } else { cons_show("Room invite sent, contact: %s, room: %s.", - contact, mucwin->roomjid); + contact, mucwin->roomjid); } } else if (g_strcmp0(args[0], "list") == 0) { - GList *invites = muc_invites(); + GList* invites = muc_invites(); cons_show_room_invites(invites); g_list_free_full(invites, g_free); } else if (g_strcmp0(args[0], "decline") == 0) { @@ -3695,14 +3687,14 @@ cmd_invite(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_form_field(ProfWin *window, char *tag, gchar **args) +cmd_form_field(ProfWin* window, char* tag, gchar** args) { if (window->type != WIN_CONFIG) { return TRUE; } - ProfConfWin *confwin = (ProfConfWin*)window; - DataForm *form = confwin->form; + ProfConfWin* confwin = (ProfConfWin*)window; + DataForm* form = confwin->form; if (form) { if (!form_tag_exists(form, tag)) { win_println(window, THEME_DEFAULT, "-", "Form does not contain a field with tag %s", tag); @@ -3710,8 +3702,8 @@ cmd_form_field(ProfWin *window, char *tag, gchar **args) } form_field_type_t field_type = form_get_field_type(form, tag); - char *cmd = NULL; - char *value = NULL; + char* cmd = NULL; + char* value = NULL; gboolean valid = FALSE; gboolean added = FALSE; gboolean removed = FALSE; @@ -3913,7 +3905,7 @@ cmd_form_field(ProfWin *window, char *tag, gchar **args) } gboolean -cmd_form(ProfWin *window, const char *const command, gchar **args) +cmd_form(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -3927,15 +3919,12 @@ cmd_form(ProfWin *window, const char *const command, gchar **args) return TRUE; } - if ((g_strcmp0(args[0], "submit") != 0) && - (g_strcmp0(args[0], "cancel") != 0) && - (g_strcmp0(args[0], "show") != 0) && - (g_strcmp0(args[0], "help") != 0)) { + if ((g_strcmp0(args[0], "submit") != 0) && (g_strcmp0(args[0], "cancel") != 0) && (g_strcmp0(args[0], "show") != 0) && (g_strcmp0(args[0], "help") != 0)) { cons_bad_cmd_usage(command); return TRUE; } - ProfConfWin *confwin = (ProfConfWin*)window; + ProfConfWin* confwin = (ProfConfWin*)window; assert(confwin->memcheck == PROFCONFWIN_MEMCHECK); if (g_strcmp0(args[0], "show") == 0) { @@ -3944,20 +3933,20 @@ cmd_form(ProfWin *window, const char *const command, gchar **args) } if (g_strcmp0(args[0], "help") == 0) { - char *tag = args[1]; + char* tag = args[1]; if (tag) { confwin_field_help(confwin, tag); } else { confwin_form_help(confwin); - gchar **help_text = NULL; - Command *command = cmd_get("/form"); + gchar** help_text = NULL; + Command* command = cmd_get("/form"); if (command) { help_text = command->help.synopsis; } - ui_show_lines((ProfWin*) confwin, help_text); + ui_show_lines((ProfWin*)confwin, help_text); } win_println(window, THEME_DEFAULT, "-", ""); return TRUE; @@ -3978,7 +3967,7 @@ cmd_form(ProfWin *window, const char *const command, gchar **args) int num = wins_get_num(window); - ProfWin *new_current = (ProfWin*)wins_get_muc(confwin->roomjid); + ProfWin* new_current = (ProfWin*)wins_get_muc(confwin->roomjid); if (!new_current) { new_current = wins_get_console(); } @@ -3991,7 +3980,7 @@ cmd_form(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_kick(ProfWin *window, const char *const command, gchar **args) +cmd_kick(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4005,13 +3994,13 @@ cmd_kick(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - char *nick = args[0]; + char* nick = args[0]; if (nick) { if (muc_roster_contains_nick(mucwin->roomjid, nick)) { - char *reason = args[1]; + char* reason = args[1]; iq_room_kick_occupant(mucwin->roomjid, nick, reason); } else { win_println(window, THEME_DEFAULT, "!", "Occupant does not exist: %s", nick); @@ -4024,7 +4013,7 @@ cmd_kick(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_ban(ProfWin *window, const char *const command, gchar **args) +cmd_ban(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4038,12 +4027,12 @@ cmd_ban(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - char *jid = args[0]; + char* jid = args[0]; if (jid) { - char *reason = args[1]; + char* reason = args[1]; iq_room_affiliation_set(mucwin->roomjid, jid, "outcast", reason); } else { cons_bad_cmd_usage(command); @@ -4052,7 +4041,7 @@ cmd_ban(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_subject(ProfWin *window, const char *const command, gchar **args) +cmd_subject(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4066,11 +4055,11 @@ cmd_subject(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); if (args[0] == NULL) { - char *subject = muc_subject(mucwin->roomjid); + char* subject = muc_subject(mucwin->roomjid); if (subject) { win_print(window, THEME_ROOMINFO, "!", "Room subject: "); win_appendln(window, THEME_DEFAULT, "%s", subject); @@ -4100,9 +4089,9 @@ cmd_subject(ProfWin *window, const char *const command, gchar **args) if (g_strcmp0(args[0], "prepend") == 0) { if (args[1]) { - char *old_subject = muc_subject(mucwin->roomjid); + char* old_subject = muc_subject(mucwin->roomjid); if (old_subject) { - GString *new_subject = g_string_new(args[1]); + GString* new_subject = g_string_new(args[1]); g_string_append(new_subject, old_subject); message_send_groupchat_subject(mucwin->roomjid, new_subject->str); g_string_free(new_subject, TRUE); @@ -4117,9 +4106,9 @@ cmd_subject(ProfWin *window, const char *const command, gchar **args) if (g_strcmp0(args[0], "append") == 0) { if (args[1]) { - char *old_subject = muc_subject(mucwin->roomjid); + char* old_subject = muc_subject(mucwin->roomjid); if (old_subject) { - GString *new_subject = g_string_new(old_subject); + GString* new_subject = g_string_new(old_subject); g_string_append(new_subject, args[1]); message_send_groupchat_subject(mucwin->roomjid, new_subject->str); g_string_free(new_subject, TRUE); @@ -4142,7 +4131,7 @@ cmd_subject(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_affiliation(ProfWin *window, const char *const command, gchar **args) +cmd_affiliation(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4156,24 +4145,19 @@ cmd_affiliation(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *cmd = args[0]; + char* cmd = args[0]; if (cmd == NULL) { cons_bad_cmd_usage(command); return TRUE; } - char *affiliation = args[1]; - if (affiliation && - (g_strcmp0(affiliation, "owner") != 0) && - (g_strcmp0(affiliation, "admin") != 0) && - (g_strcmp0(affiliation, "member") != 0) && - (g_strcmp0(affiliation, "none") != 0) && - (g_strcmp0(affiliation, "outcast") != 0)) { + char* affiliation = args[1]; + if (affiliation && (g_strcmp0(affiliation, "owner") != 0) && (g_strcmp0(affiliation, "admin") != 0) && (g_strcmp0(affiliation, "member") != 0) && (g_strcmp0(affiliation, "none") != 0) && (g_strcmp0(affiliation, "outcast") != 0)) { cons_bad_cmd_usage(command); return TRUE; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); if (g_strcmp0(cmd, "list") == 0) { @@ -4196,12 +4180,12 @@ cmd_affiliation(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *jid = args[2]; + char* jid = args[2]; if (jid == NULL) { cons_bad_cmd_usage(command); return TRUE; } else { - char *reason = args[3]; + char* reason = args[3]; iq_room_affiliation_set(mucwin->roomjid, jid, affiliation, reason); return TRUE; } @@ -4212,7 +4196,7 @@ cmd_affiliation(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_role(ProfWin *window, const char *const command, gchar **args) +cmd_role(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4226,23 +4210,19 @@ cmd_role(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *cmd = args[0]; + char* cmd = args[0]; if (cmd == NULL) { cons_bad_cmd_usage(command); return TRUE; } - char *role = args[1]; - if (role && - (g_strcmp0(role, "visitor") != 0) && - (g_strcmp0(role, "participant") != 0) && - (g_strcmp0(role, "moderator") != 0) && - (g_strcmp0(role, "none") != 0)) { + char* role = args[1]; + if (role && (g_strcmp0(role, "visitor") != 0) && (g_strcmp0(role, "participant") != 0) && (g_strcmp0(role, "moderator") != 0) && (g_strcmp0(role, "none") != 0)) { cons_bad_cmd_usage(command); return TRUE; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); if (g_strcmp0(cmd, "list") == 0) { @@ -4264,12 +4244,12 @@ cmd_role(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *nick = args[2]; + char* nick = args[2]; if (nick == NULL) { cons_bad_cmd_usage(command); return TRUE; } else { - char *reason = args[3]; + char* reason = args[3]; iq_room_role_set(mucwin->roomjid, nick, role, reason); return TRUE; } @@ -4280,7 +4260,7 @@ cmd_role(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_room(ProfWin *window, const char *const command, gchar **args) +cmd_room(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4294,7 +4274,7 @@ cmd_room(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); if (g_strcmp0(args[0], "accept") == 0) { @@ -4312,7 +4292,7 @@ cmd_room(ProfWin *window, const char *const command, gchar **args) iq_destroy_room(mucwin->roomjid); return TRUE; } else if (g_strcmp0(args[0], "config") == 0) { - ProfConfWin *confwin = wins_get_conf(mucwin->roomjid); + ProfConfWin* confwin = wins_get_conf(mucwin->roomjid); if (confwin) { ui_focus_win((ProfWin*)confwin); @@ -4328,7 +4308,7 @@ cmd_room(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_occupants(ProfWin *window, const char *const command, gchar **args) +cmd_occupants(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "size") == 0) { if (!args[1]) { @@ -4336,7 +4316,7 @@ cmd_occupants(ProfWin *window, const char *const command, gchar **args) return TRUE; } else { int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(args[1], &intval, 1, 99, &err_msg); if (res) { prefs_set_occupants_size(intval); @@ -4357,7 +4337,7 @@ cmd_occupants(ProfWin *window, const char *const command, gchar **args) return TRUE; } else { int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(args[1], &intval, 0, 10, &err_msg); if (res) { prefs_set_occupants_indent(intval); @@ -4378,7 +4358,7 @@ cmd_occupants(ProfWin *window, const char *const command, gchar **args) return TRUE; } else { _cmd_set_boolean_preference(args[1], command, "Occupants panel line wrap", PREF_OCCUPANTS_WRAP); - occupantswin_occupants_all(); + occupantswin_occupants_all(); return TRUE; } } @@ -4464,7 +4444,7 @@ cmd_occupants(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); if (g_strcmp0(args[0], "show") == 0) { @@ -4489,7 +4469,7 @@ cmd_occupants(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_rooms(ProfWin *window, const char *const command, gchar **args) +cmd_rooms(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4498,8 +4478,8 @@ cmd_rooms(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gchar *service = NULL; - gchar *filter = NULL; + gchar* service = NULL; + gchar* filter = NULL; if (args[0] != NULL) { if (g_strcmp0(args[0], "service") == 0) { if (args[1] == NULL) { @@ -4543,7 +4523,7 @@ cmd_rooms(ProfWin *window, const char *const command, gchar **args) return TRUE; } } - if (g_strv_length(args) >=3 ) { + if (g_strv_length(args) >= 3) { if (g_strcmp0(args[2], "service") == 0) { if (args[3] == NULL) { cons_bad_cmd_usage(command); @@ -4574,7 +4554,7 @@ cmd_rooms(ProfWin *window, const char *const command, gchar **args) } if (service == NULL) { - ProfAccount *account = accounts_get_account(session_get_account_name()); + ProfAccount* account = accounts_get_account(session_get_account_name()); if (account->muc_service) { service = g_strdup(account->muc_service); account_free(account); @@ -4602,7 +4582,7 @@ cmd_rooms(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_bookmark(ProfWin *window, const char *const command, gchar **args) +cmd_bookmark(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4613,15 +4593,15 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) } int num_args = g_strv_length(args); - gchar *cmd = args[0]; + gchar* cmd = args[0]; if (window->type == WIN_MUC - && num_args < 2 - && (cmd == NULL || g_strcmp0(cmd, "add") == 0)) { + && num_args < 2 + && (cmd == NULL || g_strcmp0(cmd, "add") == 0)) { // default to current nickname, password, and autojoin "on" - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - char *nick = muc_nick(mucwin->roomjid); - char *password = muc_password(mucwin->roomjid); + char* nick = muc_nick(mucwin->roomjid); + char* password = muc_password(mucwin->roomjid); gboolean added = bookmark_add(mucwin->roomjid, nick, password, "on", NULL); if (added) { win_println(window, THEME_DEFAULT, "!", "Bookmark added for %s.", mucwin->roomjid); @@ -4632,9 +4612,9 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) } if (window->type == WIN_MUC - && num_args < 2 - && g_strcmp0(cmd, "remove") == 0) { - ProfMucWin *mucwin = (ProfMucWin*)window; + && num_args < 2 + && g_strcmp0(cmd, "remove") == 0) { + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); gboolean removed = bookmark_remove(mucwin->roomjid); if (removed) { @@ -4667,13 +4647,13 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) } if (strcmp(cmd, "list") == 0) { - GList *bookmarks = bookmark_get_list(); + GList* bookmarks = bookmark_get_list(); cons_show_bookmarks(bookmarks); g_list_free(bookmarks); return TRUE; } - char *jid = args[1]; + char* jid = args[1]; if (jid == NULL) { cons_bad_cmd_usage(command); cons_show(""); @@ -4707,10 +4687,10 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gchar *opt_keys[] = { "autojoin", "nick", "password", "name", NULL }; + gchar* opt_keys[] = { "autojoin", "nick", "password", "name", NULL }; gboolean parsed; - GHashTable *options = parse_options(&args[2], opt_keys, &parsed); + GHashTable* options = parse_options(&args[2], opt_keys, &parsed); if (!parsed) { cons_bad_cmd_usage(command); cons_show(""); @@ -4718,7 +4698,7 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *autojoin = g_hash_table_lookup(options, "autojoin"); + char* autojoin = g_hash_table_lookup(options, "autojoin"); if (autojoin && ((strcmp(autojoin, "on") != 0) && (strcmp(autojoin, "off") != 0))) { cons_bad_cmd_usage(command); @@ -4728,9 +4708,9 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *nick = g_hash_table_lookup(options, "nick"); - char *password = g_hash_table_lookup(options, "password"); - char *name = g_hash_table_lookup(options, "name"); + char* nick = g_hash_table_lookup(options, "nick"); + char* password = g_hash_table_lookup(options, "password"); + char* name = g_hash_table_lookup(options, "name"); if (strcmp(cmd, "add") == 0) { gboolean added = bookmark_add(jid, nick, password, autojoin, name); @@ -4764,7 +4744,7 @@ cmd_bookmark(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_bookmark_ignore(ProfWin *window, const char *const command, gchar **args) +cmd_bookmark_ignore(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4777,7 +4757,7 @@ cmd_bookmark_ignore(ProfWin *window, const char *const command, gchar **args) // `/bookmark ignore` lists them if (args[1] == NULL) { gsize len = 0; - gchar **list = bookmark_ignore_list(&len); + gchar** list = bookmark_ignore_list(&len); cons_show_bookmarks_ignore(list, len); g_strfreev(list); return TRUE; @@ -4800,7 +4780,7 @@ cmd_bookmark_ignore(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_disco(ProfWin *window, const char *const command, gchar **args) +cmd_disco(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4809,11 +4789,11 @@ cmd_disco(ProfWin *window, const char *const command, gchar **args) return TRUE; } - GString *jid = g_string_new(""); + GString* jid = g_string_new(""); if (args[1]) { jid = g_string_append(jid, args[1]); } else { - Jid *jidp = jid_create(connection_get_fulljid()); + Jid* jidp = jid_create(connection_get_fulljid()); jid = g_string_append(jid, jidp->domainpart); jid_destroy(jidp); } @@ -4830,14 +4810,14 @@ cmd_disco(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_sendfile(ProfWin *window, const char *const command, gchar **args) +cmd_sendfile(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); - char *filename = args[0]; + char* filename = args[0]; // expand ~ to $HOME if (filename[0] == '~' && filename[1] == '/') { - if (asprintf(&filename, "%s/%s", getenv("HOME"), filename+2) == -1) { + if (asprintf(&filename, "%s/%s", getenv("HOME"), filename + 2) == -1) { return TRUE; } } else { @@ -4857,45 +4837,45 @@ cmd_sendfile(ProfWin *window, const char *const command, gchar **args) } switch (window->type) { - case WIN_MUC: - { - ProfMucWin *mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); + case WIN_MUC: + { + ProfMucWin* mucwin = (ProfMucWin*)window; + assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - // only omemo, no pgp/otr available in MUCs - if (mucwin->is_omemo && !prefs_get_boolean(PREF_OMEMO_SENDFILE)) { - cons_show_error("Uploading unencrypted files disabled. See /omemo sendfile, /otr sendfile, /pgp sendfile."); - win_println(window, THEME_ERROR, "-", "Sending encrypted files via http_upload is not possible yet."); - free(filename); - return TRUE; - } - break; + // only omemo, no pgp/otr available in MUCs + if (mucwin->is_omemo && !prefs_get_boolean(PREF_OMEMO_SENDFILE)) { + cons_show_error("Uploading unencrypted files disabled. See /omemo sendfile, /otr sendfile, /pgp sendfile."); + win_println(window, THEME_ERROR, "-", "Sending encrypted files via http_upload is not possible yet."); + free(filename); + return TRUE; } - case WIN_CHAT: - { - ProfChatWin *chatwin = (ProfChatWin*)window; - assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); + break; + } + case WIN_CHAT: + { + ProfChatWin* chatwin = (ProfChatWin*)window; + assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - if ((chatwin->is_omemo && !prefs_get_boolean(PREF_OMEMO_SENDFILE)) - || (chatwin->pgp_send && !prefs_get_boolean(PREF_PGP_SENDFILE)) - || (chatwin->is_otr && !prefs_get_boolean(PREF_OTR_SENDFILE))) { - cons_show_error("Uploading unencrypted files disabled. See /omemo sendfile, /otr sendfile, /pgp sendfile."); - win_println(window, THEME_ERROR, "-", "Sending encrypted files via http_upload is not possible yet."); - free(filename); - return TRUE; - } - break; - } - case WIN_PRIVATE: - { - //we don't support encryption in private muc windows - break; - } - default: - cons_show_error("Unsupported window for file transmission."); - free(filename); - return TRUE; + if ((chatwin->is_omemo && !prefs_get_boolean(PREF_OMEMO_SENDFILE)) + || (chatwin->pgp_send && !prefs_get_boolean(PREF_PGP_SENDFILE)) + || (chatwin->is_otr && !prefs_get_boolean(PREF_OTR_SENDFILE))) { + cons_show_error("Uploading unencrypted files disabled. See /omemo sendfile, /otr sendfile, /pgp sendfile."); + win_println(window, THEME_ERROR, "-", "Sending encrypted files via http_upload is not possible yet."); + free(filename); + return TRUE; } + break; + } + case WIN_PRIVATE: + { + //we don't support encryption in private muc windows + break; + } + default: + cons_show_error("Unsupported window for file transmission."); + free(filename); + return TRUE; + } if (access(filename, R_OK) != 0) { cons_show_error("Uploading '%s' failed: File not found!", filename); @@ -4909,7 +4889,7 @@ cmd_sendfile(ProfWin *window, const char *const command, gchar **args) return TRUE; } - HTTPUpload *upload = malloc(sizeof(HTTPUpload)); + HTTPUpload* upload = malloc(sizeof(HTTPUpload)); upload->window = window; upload->filename = filename; @@ -4922,7 +4902,7 @@ cmd_sendfile(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_lastactivity(ProfWin *window, const char *const command, gchar **args) +cmd_lastactivity(ProfWin* window, const char* const command, gchar** args) { if ((g_strcmp0(args[0], "on") == 0) || (g_strcmp0(args[0], "off") == 0)) { _cmd_set_boolean_preference(args[0], command, "Last activity", PREF_LASTACTIVITY); @@ -4943,8 +4923,8 @@ cmd_lastactivity(ProfWin *window, const char *const command, gchar **args) } if (args[0] == NULL) { - Jid *jidp = jid_create(connection_get_fulljid()); - GString *jid = g_string_new(jidp->domainpart); + Jid* jidp = jid_create(connection_get_fulljid()); + GString* jid = g_string_new(jidp->domainpart); iq_last_activity_request(jid->str); @@ -4959,7 +4939,7 @@ cmd_lastactivity(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_nick(ProfWin *window, const char *const command, gchar **args) +cmd_nick(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -4972,27 +4952,27 @@ cmd_nick(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - char *nick = args[0]; + char* nick = args[0]; presence_change_room_nick(mucwin->roomjid, nick); return TRUE; } gboolean -cmd_alias(ProfWin *window, const char *const command, gchar **args) +cmd_alias(ProfWin* window, const char* const command, gchar** args) { - char *subcmd = args[0]; + char* subcmd = args[0]; if (strcmp(subcmd, "add") == 0) { - char *alias = args[1]; + char* alias = args[1]; if (alias == NULL) { cons_bad_cmd_usage(command); return TRUE; } else { - char *alias_p = alias; - GString *ac_value = g_string_new(""); + char* alias_p = alias; + GString* ac_value = g_string_new(""); if (alias[0] == '/') { g_string_append(ac_value, alias); alias_p = &alias[1]; @@ -5001,7 +4981,7 @@ cmd_alias(ProfWin *window, const char *const command, gchar **args) g_string_append(ac_value, alias); } - char *value = args[2]; + char* value = args[2]; if (value == NULL) { cons_bad_cmd_usage(command); g_string_free(ac_value, TRUE); @@ -5020,7 +5000,7 @@ cmd_alias(ProfWin *window, const char *const command, gchar **args) } } } else if (strcmp(subcmd, "remove") == 0) { - char *alias = args[1]; + char* alias = args[1]; if (alias == NULL) { cons_bad_cmd_usage(command); return TRUE; @@ -5032,7 +5012,7 @@ cmd_alias(ProfWin *window, const char *const command, gchar **args) if (!removed) { cons_show("No such command alias /%s", alias); } else { - GString *ac_value = g_string_new("/"); + GString* ac_value = g_string_new("/"); g_string_append(ac_value, alias); cmd_ac_remove(ac_value->str); cmd_ac_remove_alias_value(alias); @@ -5042,7 +5022,7 @@ cmd_alias(ProfWin *window, const char *const command, gchar **args) return TRUE; } } else if (strcmp(subcmd, "list") == 0) { - GList *aliases = prefs_get_aliases(); + GList* aliases = prefs_get_aliases(); cons_show_aliases(aliases); prefs_free_aliases(aliases); return TRUE; @@ -5053,9 +5033,9 @@ cmd_alias(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_tiny(ProfWin *window, const char *const command, gchar **args) +cmd_tiny(ProfWin* window, const char* const command, gchar** args) { - char *url = args[0]; + char* url = args[0]; if (window->type != WIN_CHAT && window->type != WIN_MUC && window->type != WIN_PRIVATE) { cons_show("/tiny can only be used in chat windows"); @@ -5067,30 +5047,30 @@ cmd_tiny(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *tiny = tinyurl_get(url); + char* tiny = tinyurl_get(url); if (!tiny) { win_println(window, THEME_ERROR, "-", "Couldn't create tinyurl."); return TRUE; } - switch (window->type){ + switch (window->type) { case WIN_CHAT: { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); cl_ev_send_msg(chatwin, tiny, NULL); break; } case WIN_PRIVATE: { - ProfPrivateWin *privatewin = (ProfPrivateWin*)window; + ProfPrivateWin* privatewin = (ProfPrivateWin*)window; assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); cl_ev_send_priv_msg(privatewin, tiny, NULL); break; } case WIN_MUC: { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); cl_ev_send_muc_msg(mucwin, tiny, NULL); break; @@ -5105,13 +5085,13 @@ cmd_tiny(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_clear(ProfWin *window, const char *const command, gchar **args) +cmd_clear(ProfWin* window, const char* const command, gchar** args) { if (args[0] == NULL) { win_clear(window); return TRUE; } else { - if ((g_strcmp0(args[0], "persist_history") == 0) ) { + if ((g_strcmp0(args[0], "persist_history") == 0)) { if (args[1] != NULL) { if ((g_strcmp0(args[1], "on") == 0) || (g_strcmp0(args[1], "off") == 0)) { @@ -5134,7 +5114,7 @@ cmd_clear(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_privileges(ProfWin *window, const char *const command, gchar **args) +cmd_privileges(ProfWin* window, const char* const command, gchar** args) { _cmd_set_boolean_preference(args[0], command, "MUC privileges", PREF_MUC_PRIVILEGES); @@ -5144,10 +5124,10 @@ cmd_privileges(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_charset(ProfWin *window, const char *const command, gchar **args) +cmd_charset(ProfWin* window, const char* const command, gchar** args) { - char *codeset = nl_langinfo(CODESET); - char *lang = getenv("LANG"); + char* codeset = nl_langinfo(CODESET); + char* lang = getenv("LANG"); cons_show("Charset information:"); @@ -5157,28 +5137,28 @@ cmd_charset(ProfWin *window, const char *const command, gchar **args) if (codeset) { cons_show(" CODESET: %s", codeset); } - cons_show(" MB_CUR_MAX: %d", MB_CUR_MAX); - cons_show(" MB_LEN_MAX: %d", MB_LEN_MAX); + cons_show(" MB_CUR_MAX: %d", MB_CUR_MAX); + cons_show(" MB_LEN_MAX: %d", MB_LEN_MAX); return TRUE; } gboolean -cmd_beep(ProfWin *window, const char *const command, gchar **args) +cmd_beep(ProfWin* window, const char* const command, gchar** args) { _cmd_set_boolean_preference(args[0], command, "Sound", PREF_BEEP); return TRUE; } gboolean -cmd_console(ProfWin *window, const char *const command, gchar **args) +cmd_console(ProfWin* window, const char* const command, gchar** args) { if ((g_strcmp0(args[0], "chat") != 0) && (g_strcmp0(args[0], "muc") != 0) && (g_strcmp0(args[0], "private") != 0)) { cons_bad_cmd_usage(command); return TRUE; } - char *setting = args[1]; + char* setting = args[1]; if ((g_strcmp0(setting, "all") != 0) && (g_strcmp0(setting, "first") != 0) && (g_strcmp0(setting, "none") != 0)) { cons_bad_cmd_usage(command); return TRUE; @@ -5206,12 +5186,9 @@ cmd_console(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_presence(ProfWin *window, const char *const command, gchar **args) +cmd_presence(ProfWin* window, const char* const command, gchar** args) { - if (strcmp(args[0], "console") != 0 && - strcmp(args[0], "chat") != 0 && - strcmp(args[0], "room") != 0 && - strcmp(args[0], "titlebar") != 0) { + if (strcmp(args[0], "console") != 0 && strcmp(args[0], "chat") != 0 && strcmp(args[0], "room") != 0 && strcmp(args[0], "titlebar") != 0) { cons_bad_cmd_usage(command); return TRUE; } @@ -5221,9 +5198,7 @@ cmd_presence(ProfWin *window, const char *const command, gchar **args) return TRUE; } - if (strcmp(args[1], "all") != 0 && - strcmp(args[1], "online") != 0 && - strcmp(args[1], "none") != 0) { + if (strcmp(args[1], "all") != 0 && strcmp(args[1], "online") != 0 && strcmp(args[1], "none") != 0) { cons_bad_cmd_usage(command); return TRUE; } @@ -5265,7 +5240,7 @@ cmd_presence(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_wrap(ProfWin *window, const char *const command, gchar **args) +cmd_wrap(ProfWin* window, const char* const command, gchar** args) { _cmd_set_boolean_preference(args[0], command, "Word wrap", PREF_WRAP); @@ -5275,11 +5250,11 @@ cmd_wrap(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_time(ProfWin *window, const char *const command, gchar **args) +cmd_time(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "lastactivity") == 0) { if (args[1] == NULL) { - char *format = prefs_get_string(PREF_TIME_LASTACTIVITY); + char* format = prefs_get_string(PREF_TIME_LASTACTIVITY); cons_show("Last activity time format: '%s'.", format); g_free(format); return TRUE; @@ -5298,7 +5273,7 @@ cmd_time(ProfWin *window, const char *const command, gchar **args) } } else if (g_strcmp0(args[0], "statusbar") == 0) { if (args[1] == NULL) { - char *format = prefs_get_string(PREF_TIME_STATUSBAR); + char* format = prefs_get_string(PREF_TIME_STATUSBAR); cons_show("Status bar time format: '%s'.", format); g_free(format); return TRUE; @@ -5318,7 +5293,7 @@ cmd_time(ProfWin *window, const char *const command, gchar **args) } } else if (g_strcmp0(args[0], "console") == 0) { if (args[1] == NULL) { - char *format = prefs_get_string(PREF_TIME_CONSOLE); + char* format = prefs_get_string(PREF_TIME_CONSOLE); cons_show("Console time format: '%s'.", format); g_free(format); return TRUE; @@ -5338,7 +5313,7 @@ cmd_time(ProfWin *window, const char *const command, gchar **args) } } else if (g_strcmp0(args[0], "chat") == 0) { if (args[1] == NULL) { - char *format = prefs_get_string(PREF_TIME_CHAT); + char* format = prefs_get_string(PREF_TIME_CHAT); cons_show("Chat time format: '%s'.", format); g_free(format); return TRUE; @@ -5358,7 +5333,7 @@ cmd_time(ProfWin *window, const char *const command, gchar **args) } } else if (g_strcmp0(args[0], "muc") == 0) { if (args[1] == NULL) { - char *format = prefs_get_string(PREF_TIME_MUC); + char* format = prefs_get_string(PREF_TIME_MUC); cons_show("MUC time format: '%s'.", format); g_free(format); return TRUE; @@ -5378,7 +5353,7 @@ cmd_time(ProfWin *window, const char *const command, gchar **args) } } else if (g_strcmp0(args[0], "config") == 0) { if (args[1] == NULL) { - char *format = prefs_get_string(PREF_TIME_CONFIG); + char* format = prefs_get_string(PREF_TIME_CONFIG); cons_show("config time format: '%s'.", format); g_free(format); return TRUE; @@ -5398,7 +5373,7 @@ cmd_time(ProfWin *window, const char *const command, gchar **args) } } else if (g_strcmp0(args[0], "private") == 0) { if (args[1] == NULL) { - char *format = prefs_get_string(PREF_TIME_PRIVATE); + char* format = prefs_get_string(PREF_TIME_PRIVATE); cons_show("Private chat time format: '%s'.", format); g_free(format); return TRUE; @@ -5418,7 +5393,7 @@ cmd_time(ProfWin *window, const char *const command, gchar **args) } } else if (g_strcmp0(args[0], "xml") == 0) { if (args[1] == NULL) { - char *format = prefs_get_string(PREF_TIME_XMLCONSOLE); + char* format = prefs_get_string(PREF_TIME_XMLCONSOLE); cons_show("XML Console time format: '%s'.", format); g_free(format); return TRUE; @@ -5481,7 +5456,7 @@ cmd_time(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_states(ProfWin *window, const char *const command, gchar **args) +cmd_states(ProfWin* window, const char* const command, gchar** args) { if (args[0] == NULL) { return FALSE; @@ -5499,7 +5474,7 @@ cmd_states(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_wintitle(ProfWin *window, const char *const command, gchar **args) +cmd_wintitle(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "show") != 0 && g_strcmp0(args[0], "goodbye") != 0) { cons_bad_cmd_usage(command); @@ -5518,7 +5493,7 @@ cmd_wintitle(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_outtype(ProfWin *window, const char *const command, gchar **args) +cmd_outtype(ProfWin* window, const char* const command, gchar** args) { if (args[0] == NULL) { return FALSE; @@ -5535,9 +5510,9 @@ cmd_outtype(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_gone(ProfWin *window, const char *const command, gchar **args) +cmd_gone(ProfWin* window, const char* const command, gchar** args) { - char *value = args[0]; + char* value = args[0]; gint period = atoi(value); prefs_set_gone(period); @@ -5557,15 +5532,14 @@ cmd_gone(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gboolean -cmd_notify(ProfWin *window, const char *const command, gchar **args) +cmd_notify(ProfWin* window, const char* const command, gchar** args) { if (!args[0]) { - ProfWin *current = wins_get_current(); + ProfWin* current = wins_get_current(); if (current->type == WIN_MUC) { win_println(current, THEME_DEFAULT, "-", ""); - ProfMucWin *mucwin = (ProfMucWin *)current; + ProfMucWin* mucwin = (ProfMucWin*)current; win_println(window, THEME_DEFAULT, "!", "Notification settings for %s:", mucwin->roomjid); if (prefs_has_room_notify(mucwin->roomjid)) { @@ -5612,7 +5586,6 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) cons_show(""); cons_notify_setting(); cons_bad_cmd_usage(command); - } return TRUE; } @@ -5647,7 +5620,7 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) } } - // chat room settings + // chat room settings } else if (g_strcmp0(args[0], "room") == 0) { if (g_strcmp0(args[1], "on") == 0) { cons_show("Room notifications enabled."); @@ -5721,8 +5694,8 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) } } } else if (g_strcmp0(args[2], "list") == 0) { - GList *triggers = prefs_get_room_notify_triggers(); - GList *curr = triggers; + GList* triggers = prefs_get_room_notify_triggers(); + GList* curr = triggers; if (curr) { cons_show("Room notification triggers:"); } else { @@ -5746,7 +5719,7 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) cons_show("Usage: /notify room on|off|mention"); } - // typing settings + // typing settings } else if (g_strcmp0(args[0], "typing") == 0) { if (g_strcmp0(args[1], "on") == 0) { cons_show("Typing notifications enabled."); @@ -5768,7 +5741,7 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) cons_show("Usage: /notify typing on|off"); } - // invite settings + // invite settings } else if (g_strcmp0(args[0], "invite") == 0) { if (g_strcmp0(args[1], "on") == 0) { cons_show("Chat room invite notifications enabled."); @@ -5780,7 +5753,7 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) cons_show("Usage: /notify invite on|off"); } - // subscription settings + // subscription settings } else if (g_strcmp0(args[0], "sub") == 0) { if (g_strcmp0(args[1], "on") == 0) { cons_show("Subscription notifications enabled."); @@ -5792,7 +5765,7 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) cons_show("Usage: /notify sub on|off"); } - // remind settings + // remind settings } else if (g_strcmp0(args[0], "remind") == 0) { if (!args[1]) { cons_bad_cmd_usage(command); @@ -5808,18 +5781,18 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) } } - // current chat room settings + // current chat room settings } else if (g_strcmp0(args[0], "on") == 0) { jabber_conn_status_t conn_status = connection_get_status(); if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); } else { - ProfWin *window = wins_get_current(); + ProfWin* window = wins_get_current(); if (window->type != WIN_MUC) { cons_show("You must be in a chat room."); } else { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; prefs_set_room_notify(mucwin->roomjid, TRUE); win_println(window, THEME_DEFAULT, "!", "Notifications enabled for %s", mucwin->roomjid); } @@ -5830,11 +5803,11 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); } else { - ProfWin *window = wins_get_current(); + ProfWin* window = wins_get_current(); if (window->type != WIN_MUC) { cons_show("You must be in a chat room."); } else { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; prefs_set_room_notify(mucwin->roomjid, FALSE); win_println(window, THEME_DEFAULT, "!", "Notifications disabled for %s", mucwin->roomjid); } @@ -5846,20 +5819,20 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) cons_show("You are not currently connected."); } else { if (g_strcmp0(args[1], "on") == 0) { - ProfWin *window = wins_get_current(); + ProfWin* window = wins_get_current(); if (window->type != WIN_MUC) { cons_show("You must be in a chat room."); } else { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; prefs_set_room_notify_mention(mucwin->roomjid, TRUE); win_println(window, THEME_DEFAULT, "!", "Mention notifications enabled for %s", mucwin->roomjid); } } else if (g_strcmp0(args[1], "off") == 0) { - ProfWin *window = wins_get_current(); + ProfWin* window = wins_get_current(); if (window->type != WIN_MUC) { cons_show("You must be in a chat rooms."); } else { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; prefs_set_room_notify_mention(mucwin->roomjid, FALSE); win_println(window, THEME_DEFAULT, "!", "Mention notifications disabled for %s", mucwin->roomjid); } @@ -5874,20 +5847,20 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) cons_show("You are not currently connected."); } else { if (g_strcmp0(args[1], "on") == 0) { - ProfWin *window = wins_get_current(); + ProfWin* window = wins_get_current(); if (window->type != WIN_MUC) { cons_show("You must be in a chat room."); } else { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; prefs_set_room_notify_trigger(mucwin->roomjid, TRUE); win_println(window, THEME_DEFAULT, "!", "Custom trigger notifications enabled for %s", mucwin->roomjid); } } else if (g_strcmp0(args[1], "off") == 0) { - ProfWin *window = wins_get_current(); + ProfWin* window = wins_get_current(); if (window->type != WIN_MUC) { cons_show("You must be in a chat rooms."); } else { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; prefs_set_room_notify_trigger(mucwin->roomjid, FALSE); win_println(window, THEME_DEFAULT, "!", "Custom trigger notifications disabled for %s", mucwin->roomjid); } @@ -5901,11 +5874,11 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); } else { - ProfWin *window = wins_get_current(); + ProfWin* window = wins_get_current(); if (window->type != WIN_MUC) { cons_show("You must be in a chat room."); } else { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; gboolean res = prefs_reset_room_notify(mucwin->roomjid); if (res) { win_println(window, THEME_DEFAULT, "!", "Notification settings set to global defaults for %s", mucwin->roomjid); @@ -5922,10 +5895,10 @@ cmd_notify(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_inpblock(ProfWin *window, const char *const command, gchar **args) +cmd_inpblock(ProfWin* window, const char* const command, gchar** args) { - char *subcmd = args[0]; - char *value = args[1]; + char* subcmd = args[0]; + char* value = args[1]; if (g_strcmp0(subcmd, "timeout") == 0) { if (value == NULL) { @@ -5934,7 +5907,7 @@ cmd_inpblock(ProfWin *window, const char *const command, gchar **args) } int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(value, &intval, 1, 1000, &err_msg); if (res) { cons_show("Input blocking set to %d milliseconds.", intval); @@ -5969,7 +5942,7 @@ cmd_inpblock(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_titlebar(ProfWin *window, const char *const command, gchar **args) +cmd_titlebar(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "up") == 0) { gboolean result = prefs_titlebar_pos_up(); @@ -6000,7 +5973,7 @@ cmd_titlebar(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_titlebar_show_hide(ProfWin *window, const char *const command, gchar **args) +cmd_titlebar_show_hide(ProfWin* window, const char* const command, gchar** args) { if (args[1] != NULL) { if (g_strcmp0(args[0], "show") == 0) { @@ -6013,10 +5986,10 @@ cmd_titlebar_show_hide(ProfWin *window, const char *const command, gchar **args) prefs_set_boolean(PREF_ENC_WARN, TRUE); } else if (g_strcmp0(args[1], "resource") == 0) { cons_show("Showing resource in titlebar enabled."); - prefs_set_boolean(PREF_RESOURCE_TITLE , TRUE); + prefs_set_boolean(PREF_RESOURCE_TITLE, TRUE); } else if (g_strcmp0(args[1], "presence") == 0) { cons_show("Showing contact presence in titlebar enabled."); - prefs_set_boolean(PREF_PRESENCE , TRUE); + prefs_set_boolean(PREF_PRESENCE, TRUE); } else if (g_strcmp0(args[1], "jid") == 0) { cons_show("Showing MUC JID in titlebar as title enabled."); prefs_set_boolean(PREF_TITLEBAR_MUC_TITLE_JID, TRUE); @@ -6036,10 +6009,10 @@ cmd_titlebar_show_hide(ProfWin *window, const char *const command, gchar **args) prefs_set_boolean(PREF_ENC_WARN, FALSE); } else if (g_strcmp0(args[1], "resource") == 0) { cons_show("Showing resource in titlebar disabled."); - prefs_set_boolean(PREF_RESOURCE_TITLE , FALSE); + prefs_set_boolean(PREF_RESOURCE_TITLE, FALSE); } else if (g_strcmp0(args[1], "presence") == 0) { cons_show("Showing contact presence in titlebar disabled."); - prefs_set_boolean(PREF_PRESENCE , FALSE); + prefs_set_boolean(PREF_PRESENCE, FALSE); } else if (g_strcmp0(args[1], "jid") == 0) { cons_show("Showing MUC JID in titlebar as title disabled."); prefs_set_boolean(PREF_TITLEBAR_MUC_TITLE_JID, FALSE); @@ -6058,7 +6031,7 @@ cmd_titlebar_show_hide(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_mainwin(ProfWin *window, const char *const command, gchar **args) +cmd_mainwin(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "up") == 0) { gboolean result = prefs_mainwin_pos_up(); @@ -6089,7 +6062,7 @@ cmd_mainwin(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_statusbar(ProfWin *window, const char *const command, gchar **args) +cmd_statusbar(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "show") == 0) { if (g_strcmp0(args[1], "name") == 0) { @@ -6153,9 +6126,9 @@ cmd_statusbar(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *value = args[1]; + char* value = args[1]; int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(value, &intval, 0, INT_MAX, &err_msg); if (res) { if (intval < 0 || intval > 10) { @@ -6185,9 +6158,9 @@ cmd_statusbar(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *value = args[1]; + char* value = args[1]; int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(value, &intval, 0, INT_MAX, &err_msg); if (res) { if (intval < 0) { @@ -6303,7 +6276,7 @@ cmd_statusbar(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_inputwin(ProfWin *window, const char *const command, gchar **args) +cmd_inputwin(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "up") == 0) { gboolean result = prefs_inputwin_pos_up(); @@ -6334,10 +6307,10 @@ cmd_inputwin(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_log(ProfWin *window, const char *const command, gchar **args) +cmd_log(ProfWin* window, const char* const command, gchar** args) { - char *subcmd = args[0]; - char *value = args[1]; + char* subcmd = args[0]; + char* value = args[1]; if (strcmp(subcmd, "maxsize") == 0) { if (value == NULL) { @@ -6346,7 +6319,7 @@ cmd_log(ProfWin *window, const char *const command, gchar **args) } int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(value, &intval, PREFS_MIN_LOG_SIZE, INT_MAX, &err_msg); if (res) { prefs_set_max_log_size(intval); @@ -6390,12 +6363,12 @@ cmd_log(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_reconnect(ProfWin *window, const char *const command, gchar **args) +cmd_reconnect(ProfWin* window, const char* const command, gchar** args) { - char *value = args[0]; + char* value = args[0]; int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(value, &intval, 0, INT_MAX, &err_msg); if (res) { prefs_set_reconnect(intval); @@ -6414,14 +6387,14 @@ cmd_reconnect(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_autoping(ProfWin *window, const char *const command, gchar **args) +cmd_autoping(ProfWin* window, const char* const command, gchar** args) { - char *cmd = args[0]; - char *value = args[1]; + char* cmd = args[0]; + char* value = args[1]; if (g_strcmp0(cmd, "set") == 0) { int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(value, &intval, 0, INT_MAX, &err_msg); if (res) { prefs_set_autoping(intval); @@ -6439,7 +6412,7 @@ cmd_autoping(ProfWin *window, const char *const command, gchar **args) } else if (g_strcmp0(cmd, "timeout") == 0) { int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(value, &intval, 0, INT_MAX, &err_msg); if (res) { prefs_set_autoping_timeout(intval); @@ -6462,7 +6435,7 @@ cmd_autoping(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_ping(ProfWin *window, const char *const command, gchar **args) +cmd_ping(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -6492,17 +6465,15 @@ cmd_ping(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_autoaway(ProfWin *window, const char *const command, gchar **args) +cmd_autoaway(ProfWin* window, const char* const command, gchar** args) { - if ((strcmp(args[0], "mode") != 0) && (strcmp(args[0], "time") != 0) && - (strcmp(args[0], "message") != 0) && (strcmp(args[0], "check") != 0)) { + if ((strcmp(args[0], "mode") != 0) && (strcmp(args[0], "time") != 0) && (strcmp(args[0], "message") != 0) && (strcmp(args[0], "check") != 0)) { cons_show("Setting must be one of 'mode', 'time', 'message' or 'check'"); return TRUE; } if (strcmp(args[0], "mode") == 0) { - if ((strcmp(args[1], "idle") != 0) && (strcmp(args[1], "away") != 0) && - (strcmp(args[1], "off") != 0)) { + if ((strcmp(args[1], "idle") != 0) && (strcmp(args[1], "away") != 0) && (strcmp(args[1], "off") != 0)) { cons_show("Mode must be one of 'idle', 'away' or 'off'"); } else { prefs_set_string(PREF_AUTOAWAY_MODE, args[1]); @@ -6515,7 +6486,7 @@ cmd_autoaway(ProfWin *window, const char *const command, gchar **args) if (strcmp(args[0], "time") == 0) { if (g_strcmp0(args[1], "away") == 0) { int minutesval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(args[2], &minutesval, 1, INT_MAX, &err_msg); if (res) { prefs_set_autoaway_time(minutesval); @@ -6532,7 +6503,7 @@ cmd_autoaway(ProfWin *window, const char *const command, gchar **args) return TRUE; } else if (g_strcmp0(args[1], "xa") == 0) { int minutesval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(args[2], &minutesval, 0, INT_MAX, &err_msg); if (res) { int away_time = prefs_get_autoaway_time(); @@ -6596,7 +6567,7 @@ cmd_autoaway(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_priority(ProfWin *window, const char *const command, gchar **args) +cmd_priority(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -6605,10 +6576,10 @@ cmd_priority(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *value = args[0]; + char* value = args[0]; int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(value, &intval, -128, 127, &err_msg); if (res) { accounts_set_priority_all(session_get_account_name(), intval); @@ -6624,7 +6595,7 @@ cmd_priority(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_vercheck(ProfWin *window, const char *const command, gchar **args) +cmd_vercheck(ProfWin* window, const char* const command, gchar** args) { int num_args = g_strv_length(args); @@ -6638,13 +6609,13 @@ cmd_vercheck(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_xmlconsole(ProfWin *window, const char *const command, gchar **args) +cmd_xmlconsole(ProfWin* window, const char* const command, gchar** args) { - ProfXMLWin *xmlwin = wins_get_xmlconsole(); + ProfXMLWin* xmlwin = wins_get_xmlconsole(); if (xmlwin) { ui_focus_win((ProfWin*)xmlwin); } else { - ProfWin *window = wins_new_xmlconsole(); + ProfWin* window = wins_new_xmlconsole(); ui_focus_win(window); } @@ -6652,14 +6623,14 @@ cmd_xmlconsole(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_flash(ProfWin *window, const char *const command, gchar **args) +cmd_flash(ProfWin* window, const char* const command, gchar** args) { _cmd_set_boolean_preference(args[0], command, "Screen flash", PREF_FLASH); return TRUE; } gboolean -cmd_tray(ProfWin *window, const char *const command, gchar **args) +cmd_tray(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_GTK if (g_strcmp0(args[0], "timer") == 0) { @@ -6674,7 +6645,7 @@ cmd_tray(ProfWin *window, const char *const command, gchar **args) } int intval = 0; - char *err_msg = NULL; + char* err_msg = NULL; gboolean res = strtoi_range(args[1], &intval, 1, 10, &err_msg); if (res) { if (intval == 1) { @@ -6727,21 +6698,21 @@ cmd_tray(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_intype(ProfWin *window, const char *const command, gchar **args) +cmd_intype(ProfWin* window, const char* const command, gchar** args) { _cmd_set_boolean_preference(args[0], command, "Show contact typing", PREF_INTYPE); return TRUE; } gboolean -cmd_splash(ProfWin *window, const char *const command, gchar **args) +cmd_splash(ProfWin* window, const char* const command, gchar** args) { _cmd_set_boolean_preference(args[0], command, "Splash screen", PREF_SPLASH); return TRUE; } gboolean -cmd_autoconnect(ProfWin *window, const char *const command, gchar **args) +cmd_autoconnect(ProfWin* window, const char* const command, gchar** args) { if (strcmp(args[0], "off") == 0) { prefs_set_string(PREF_CONNECT_ACCOUNT, NULL); @@ -6764,14 +6735,13 @@ cmd_autoconnect(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_logging(ProfWin *window, const char *const command, gchar **args) +cmd_logging(ProfWin* window, const char* const command, gchar** args) { if (args[0] == NULL) { cons_logging_setting(); return TRUE; } - if (strcmp(args[0], "chat") == 0 && args[1] != NULL) { _cmd_set_boolean_preference(args[1], command, "Chat logging", PREF_CHLOG); @@ -6793,7 +6763,7 @@ cmd_logging(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_history(ProfWin *window, const char *const command, gchar **args) +cmd_history(ProfWin* window, const char* const command, gchar** args) { if (args[0] == NULL) { return FALSE; @@ -6810,7 +6780,7 @@ cmd_history(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_carbons(ProfWin *window, const char *const command, gchar **args) +cmd_carbons(ProfWin* window, const char* const command, gchar** args) { if (args[0] == NULL) { return FALSE; @@ -6824,8 +6794,7 @@ cmd_carbons(ProfWin *window, const char *const command, gchar **args) // enable carbons if (strcmp(args[0], "on") == 0) { iq_enable_carbons(); - } - else if (strcmp(args[0], "off") == 0){ + } else if (strcmp(args[0], "off") == 0) { iq_disable_carbons(); } } @@ -6834,7 +6803,7 @@ cmd_carbons(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_receipts(ProfWin *window, const char *const command, gchar **args) +cmd_receipts(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "send") == 0) { _cmd_set_boolean_preference(args[1], command, "Send delivery receipts", PREF_RECEIPTS_SEND); @@ -6854,10 +6823,10 @@ cmd_receipts(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_plugins_sourcepath(ProfWin *window, const char *const command, gchar **args) +cmd_plugins_sourcepath(ProfWin* window, const char* const command, gchar** args) { if (args[1] == NULL) { - char *sourcepath = prefs_get_string(PREF_PLUGINS_SOURCEPATH); + char* sourcepath = prefs_get_string(PREF_PLUGINS_SOURCEPATH); if (sourcepath) { cons_show("Current plugins sourcepath: %s", sourcepath); g_free(sourcepath); @@ -6874,7 +6843,7 @@ cmd_plugins_sourcepath(ProfWin *window, const char *const command, gchar **args) } if (g_strcmp0(args[1], "set") == 0) { - char *path = args[2]; + char* path = args[2]; if (path == NULL) { cons_bad_cmd_usage(command); return TRUE; @@ -6882,7 +6851,7 @@ cmd_plugins_sourcepath(ProfWin *window, const char *const command, gchar **args) // expand ~ to $HOME if (path[0] == '~' && path[1] == '/') { - if (asprintf(&path, "%s/%s", getenv("HOME"), path+2) == -1) { + if (asprintf(&path, "%s/%s", getenv("HOME"), path + 2) == -1) { return TRUE; } } else { @@ -6906,9 +6875,9 @@ cmd_plugins_sourcepath(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_plugins_install(ProfWin *window, const char *const command, gchar **args) +cmd_plugins_install(ProfWin* window, const char* const command, gchar** args) { - char *path = args[1]; + char* path = args[1]; if (path == NULL) { char* sourcepath = prefs_get_string(PREF_PLUGINS_SOURCEPATH); if (sourcepath) { @@ -6919,7 +6888,7 @@ cmd_plugins_install(ProfWin *window, const char *const command, gchar **args) return TRUE; } } else if (path[0] == '~' && path[1] == '/') { - if (asprintf(&path, "%s/%s", getenv("HOME"), path+2) == -1) { + if (asprintf(&path, "%s/%s", getenv("HOME"), path + 2) == -1) { return TRUE; } } else { @@ -6934,7 +6903,7 @@ cmd_plugins_install(ProfWin *window, const char *const command, gchar **args) } GString* error_message = g_string_new(NULL); - gchar *plugin_name = g_path_get_basename(path); + gchar* plugin_name = g_path_get_basename(path); gboolean result = plugins_install(plugin_name, path, error_message); if (result) { cons_show("Plugin installed: %s", plugin_name); @@ -6951,7 +6920,7 @@ cmd_plugins_install(ProfWin *window, const char *const command, gchar **args) if (result->installed) { cons_show(""); cons_show("Installed plugins:"); - GSList *curr = result->installed; + GSList* curr = result->installed; while (curr) { cons_show(" %s", curr->data); curr = g_slist_next(curr); @@ -6960,7 +6929,7 @@ cmd_plugins_install(ProfWin *window, const char *const command, gchar **args) if (result->failed) { cons_show(""); cons_show("Failed installs:"); - GSList *curr = result->failed; + GSList* curr = result->failed; while (curr) { cons_show(" %s", curr->data); curr = g_slist_next(curr); @@ -6981,9 +6950,9 @@ cmd_plugins_install(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_plugins_update(ProfWin *window, const char *const command, gchar **args) +cmd_plugins_update(ProfWin* window, const char* const command, gchar** args) { - char *path = args[1]; + char* path = args[1]; if (path == NULL) { char* sourcepath = prefs_get_string(PREF_PLUGINS_SOURCEPATH); if (sourcepath) { @@ -6994,7 +6963,7 @@ cmd_plugins_update(ProfWin *window, const char *const command, gchar **args) return TRUE; } } else if (path[0] == '~' && path[1] == '/') { - if (asprintf(&path, "%s/%s", getenv("HOME"), path+2) == -1) { + if (asprintf(&path, "%s/%s", getenv("HOME"), path + 2) == -1) { return TRUE; } } else { @@ -7015,7 +6984,7 @@ cmd_plugins_update(ProfWin *window, const char *const command, gchar **args) } GString* error_message = g_string_new(NULL); - gchar *plugin_name = g_path_get_basename(path); + gchar* plugin_name = g_path_get_basename(path); if (plugins_unload(plugin_name)) { if (plugins_uninstall(plugin_name)) { if (plugins_install(plugin_name, path, error_message)) { @@ -7046,7 +7015,7 @@ cmd_plugins_update(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_plugins_uninstall(ProfWin *window, const char *const command, gchar **args) +cmd_plugins_uninstall(ProfWin* window, const char* const command, gchar** args) { if (args[1] == NULL) { return FALSE; @@ -7063,13 +7032,13 @@ cmd_plugins_uninstall(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_plugins_load(ProfWin *window, const char *const command, gchar **args) +cmd_plugins_load(ProfWin* window, const char* const command, gchar** args) { if (args[1] == NULL) { - GSList *loaded = plugins_load_all(); + GSList* loaded = plugins_load_all(); if (loaded) { cons_show("Loaded plugins:"); - GSList *curr = loaded; + GSList* curr = loaded; while (curr) { cons_show(" %s", curr->data); curr = g_slist_next(curr); @@ -7094,7 +7063,7 @@ cmd_plugins_load(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_plugins_unload(ProfWin *window, const char *const command, gchar **args) +cmd_plugins_unload(ProfWin* window, const char* const command, gchar** args) { if (args[1] == NULL) { gboolean res = plugins_unload_all(); @@ -7117,7 +7086,7 @@ cmd_plugins_unload(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_plugins_reload(ProfWin *window, const char *const command, gchar **args) +cmd_plugins_reload(ProfWin* window, const char* const command, gchar** args) { if (args[1] == NULL) { plugins_reload_all(); @@ -7138,10 +7107,10 @@ cmd_plugins_reload(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_plugins_python_version(ProfWin *window, const char *const command, gchar **args) +cmd_plugins_python_version(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_PYTHON - const char *version = python_get_version_string(); + const char* version = python_get_version_string(); cons_show("Python version:"); cons_show("%s", version); #else @@ -7151,15 +7120,15 @@ cmd_plugins_python_version(ProfWin *window, const char *const command, gchar **a } gboolean -cmd_plugins(ProfWin *window, const char *const command, gchar **args) +cmd_plugins(ProfWin* window, const char* const command, gchar** args) { - GList *plugins = plugins_loaded_list(); + GList* plugins = plugins_loaded_list(); if (plugins == NULL) { cons_show("No plugins installed."); return TRUE; } - GList *curr = plugins; + GList* curr = plugins; cons_show("Installed plugins:"); while (curr) { cons_show(" %s", curr->data); @@ -7171,7 +7140,7 @@ cmd_plugins(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_pgp(ProfWin *window, const char *const command, gchar **args) +cmd_pgp(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBGPGME if (args[0] == NULL) { @@ -7194,7 +7163,7 @@ cmd_pgp(ProfWin *window, const char *const command, gchar **args) cons_bad_cmd_usage(command); return TRUE; } else if (g_strcmp0(args[0], "log") == 0) { - char *choice = args[1]; + char* choice = args[1]; if (g_strcmp0(choice, "on") == 0) { prefs_set_string(PREF_PGP_LOG, "on"); cons_show("PGP messages will be logged as plaintext."); @@ -7217,20 +7186,20 @@ cmd_pgp(ProfWin *window, const char *const command, gchar **args) } if (g_strcmp0(args[0], "keys") == 0) { - GHashTable *keys = p_gpg_list_keys(); + GHashTable* keys = p_gpg_list_keys(); if (!keys || g_hash_table_size(keys) == 0) { cons_show("No keys found"); return TRUE; } cons_show("PGP keys:"); - GList *keylist = g_hash_table_get_keys(keys); - GList *curr = keylist; + GList* keylist = g_hash_table_get_keys(keys); + GList* curr = keylist; while (curr) { - ProfPGPKey *key = g_hash_table_lookup(keys, curr->data); + ProfPGPKey* key = g_hash_table_lookup(keys, curr->data); cons_show(" %s", key->name); cons_show(" ID : %s", key->id); - char *format_fp = p_gpg_format_fp_str(key->fp); + char* format_fp = p_gpg_format_fp_str(key->fp); cons_show(" Fingerprint : %s", format_fp); free(format_fp); if (key->secret) { @@ -7252,13 +7221,13 @@ cmd_pgp(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *jid = args[1]; + char* jid = args[1]; if (!args[1]) { cons_bad_cmd_usage(command); return TRUE; } - char *keyid = args[2]; + char* keyid = args[2]; if (!args[2]) { cons_bad_cmd_usage(command); return TRUE; @@ -7280,18 +7249,18 @@ cmd_pgp(ProfWin *window, const char *const command, gchar **args) cons_show("You are not currently connected."); return TRUE; } - GHashTable *pubkeys = p_gpg_pubkeys(); - GList *jids = g_hash_table_get_keys(pubkeys); + GHashTable* pubkeys = p_gpg_pubkeys(); + GList* jids = g_hash_table_get_keys(pubkeys); if (!jids) { cons_show("No contacts found with PGP public keys assigned."); return TRUE; } cons_show("Assigned PGP public keys:"); - GList *curr = jids; + GList* curr = jids; while (curr) { - char *jid = curr->data; - ProfPGPPubKeyId *pubkeyid = g_hash_table_lookup(pubkeys, jid); + char* jid = curr->data; + ProfPGPPubKeyId* pubkeyid = g_hash_table_lookup(pubkeys, jid); if (pubkeyid->received) { cons_show(" %s: %s (received)", jid, pubkeyid->id); } else { @@ -7304,13 +7273,13 @@ cmd_pgp(ProfWin *window, const char *const command, gchar **args) } if (g_strcmp0(args[0], "libver") == 0) { - const char *libver = p_gpg_libver(); + const char* libver = p_gpg_libver(); if (!libver) { cons_show("Could not get libgpgme version"); return TRUE; } - GString *fullstr = g_string_new("Using libgpgme version "); + GString* fullstr = g_string_new("Using libgpgme version "); g_string_append(fullstr, libver); cons_show("%s", fullstr->str); g_string_free(fullstr, TRUE); @@ -7330,11 +7299,11 @@ cmd_pgp(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = NULL; + ProfChatWin* chatwin = NULL; if (args[1]) { - char *contact = args[1]; - char *barejid = roster_barejid_from_name(contact); + char* contact = args[1]; + char* barejid = roster_barejid_from_name(contact); if (barejid == NULL) { barejid = contact; } @@ -7364,8 +7333,8 @@ cmd_pgp(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfAccount *account = accounts_get_account(session_get_account_name()); - char *err_str = NULL; + ProfAccount* account = accounts_get_account(session_get_account_name()); + char* err_str = NULL; if (!p_gpg_valid_key(account->pgp_keyid, &err_str)) { win_println(window, THEME_DEFAULT, "!", "Invalid PGP key ID %s: %s, cannot start PGP encryption.", account->pgp_keyid, err_str); free(err_str); @@ -7397,7 +7366,7 @@ cmd_pgp(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; if (chatwin->pgp_send == FALSE) { win_println(window, THEME_DEFAULT, "!", "PGP encryption is not currently enabled."); return TRUE; @@ -7429,7 +7398,7 @@ cmd_pgp(ProfWin *window, const char *const command, gchar **args) */ gboolean -cmd_ox(ProfWin *window, const char *const command, gchar **args) +cmd_ox(ProfWin* window, const char* const command, gchar** args) { if (args[0] == NULL) { cons_bad_cmd_usage(command); @@ -7440,20 +7409,20 @@ cmd_ox(ProfWin *window, const char *const command, gchar **args) // Should we move this to a common command // e.g. '/openpgp keys'?. else if (g_strcmp0(args[0], "keys") == 0) { - GHashTable *keys = p_gpg_list_keys(); + GHashTable* keys = p_gpg_list_keys(); if (!keys || g_hash_table_size(keys) == 0) { cons_show("No keys found"); return TRUE; } cons_show("OpenPGP keys:"); - GList *keylist = g_hash_table_get_keys(keys); - GList *curr = keylist; + GList* keylist = g_hash_table_get_keys(keys); + GList* curr = keylist; while (curr) { - ProfPGPKey *key = g_hash_table_lookup(keys, curr->data); + ProfPGPKey* key = g_hash_table_lookup(keys, curr->data); cons_show(" %s", key->name); cons_show(" ID : %s", key->id); - char *format_fp = p_gpg_format_fp_str(key->fp); + char* format_fp = p_gpg_format_fp_str(key->fp); cons_show(" Fingerprint : %s", format_fp); free(format_fp); if (key->secret) { @@ -7469,13 +7438,12 @@ cmd_ox(ProfWin *window, const char *const command, gchar **args) } else if (g_strcmp0(args[0], "contacts") == 0) { - GHashTable *keys = ox_gpg_public_keys(); + GHashTable* keys = ox_gpg_public_keys(); cons_show("OpenPGP keys:"); - GList *keylist = g_hash_table_get_keys(keys); - GList *curr = keylist; - + GList* keylist = g_hash_table_get_keys(keys); + GList* curr = keylist; - GSList *roster_list = NULL; + GSList* roster_list = NULL; jabber_conn_status_t conn_status = connection_get_status(); if (conn_status != JABBER_CONNECTED) { cons_show("You are not currently connected."); @@ -7484,23 +7452,23 @@ cmd_ox(ProfWin *window, const char *const command, gchar **args) } while (curr) { - ProfPGPKey *key = g_hash_table_lookup(keys, curr->data); + ProfPGPKey* key = g_hash_table_lookup(keys, curr->data); PContact contact = NULL; if (roster_list) { - GSList *curr_c = roster_list; - while ( !contact && curr_c){ + GSList* curr_c = roster_list; + while (!contact && curr_c) { contact = curr_c->data; - const char *jid = p_contact_barejid(contact); + const char* jid = p_contact_barejid(contact); GString* xmppuri = g_string_new("xmpp:"); g_string_append(xmppuri, jid); - if( g_strcmp0(key->name, xmppuri->str)) { + if (g_strcmp0(key->name, xmppuri->str)) { contact = NULL; } curr_c = g_slist_next(curr_c); } } - if(contact) { + if (contact) { cons_show("%s - %s", key->fp, key->name); } else { cons_show("%s - %s (not in roster)", key->fp, key->name); @@ -7520,11 +7488,11 @@ cmd_ox(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = NULL; + ProfChatWin* chatwin = NULL; if (args[1]) { - char *contact = args[1]; - char *barejid = roster_barejid_from_name(contact); + char* contact = args[1]; + char* barejid = roster_barejid_from_name(contact); if (barejid == NULL) { barejid = contact; } @@ -7554,9 +7522,9 @@ cmd_ox(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfAccount *account = accounts_get_account(session_get_account_name()); + ProfAccount* account = accounts_get_account(session_get_account_name()); - if ( !ox_is_private_key_available(account->jid) ) { + if (!ox_is_private_key_available(account->jid)) { win_println(window, THEME_DEFAULT, "!", "No private OpenPGP found, cannot start OX encryption."); account_free(account); return TRUE; @@ -7572,8 +7540,8 @@ cmd_ox(ProfWin *window, const char *const command, gchar **args) win_println(window, THEME_DEFAULT, "!", "OX encryption enabled."); return TRUE; } else if (g_strcmp0(args[0], "announce") == 0) { - if( args[1] ) { - ox_announce_public_key( args[1] ); + if (args[1]) { + ox_announce_public_key(args[1]); } else { cons_show("Filename is required"); } @@ -7585,7 +7553,7 @@ cmd_ox(ProfWin *window, const char *const command, gchar **args) #endif // HAVE_LIBGPGME gboolean -cmd_otr_char(ProfWin *window, const char *const command, gchar **args) +cmd_otr_char(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (args[1] == NULL) { @@ -7607,10 +7575,10 @@ cmd_otr_char(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_log(ProfWin *window, const char *const command, gchar **args) +cmd_otr_log(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR - char *choice = args[1]; + char* choice = args[1]; if (g_strcmp0(choice, "on") == 0) { prefs_set_string(PREF_OTR_LOG, "on"); cons_show("OTR messages will be logged as plaintext."); @@ -7637,10 +7605,10 @@ cmd_otr_log(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_libver(ProfWin *window, const char *const command, gchar **args) +cmd_otr_libver(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR - char *version = otr_libotr_version(); + char* version = otr_libotr_version(); cons_show("Using libotr version %s", version); return TRUE; #else @@ -7650,25 +7618,23 @@ cmd_otr_libver(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_policy(ProfWin *window, const char *const command, gchar **args) +cmd_otr_policy(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (args[1] == NULL) { - char *policy = prefs_get_string(PREF_OTR_POLICY); + char* policy = prefs_get_string(PREF_OTR_POLICY); cons_show("OTR policy is now set to: %s", policy); g_free(policy); return TRUE; } - char *choice = args[1]; - if ((g_strcmp0(choice, "manual") != 0) && - (g_strcmp0(choice, "opportunistic") != 0) && - (g_strcmp0(choice, "always") != 0)) { + char* choice = args[1]; + if ((g_strcmp0(choice, "manual") != 0) && (g_strcmp0(choice, "opportunistic") != 0) && (g_strcmp0(choice, "always") != 0)) { cons_show("OTR policy can be set to: manual, opportunistic or always."); return TRUE; } - char *contact = args[2]; + char* contact = args[2]; if (contact == NULL) { prefs_set_string(PREF_OTR_POLICY, choice); cons_show("OTR policy is now set to: %s", choice); @@ -7680,7 +7646,7 @@ cmd_otr_policy(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *contact_jid = roster_barejid_from_name(contact); + char* contact_jid = roster_barejid_from_name(contact); if (contact_jid == NULL) { contact_jid = contact; } @@ -7694,7 +7660,7 @@ cmd_otr_policy(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_gen(ProfWin *window, const char *const command, gchar **args) +cmd_otr_gen(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (connection_get_status() != JABBER_CONNECTED) { @@ -7702,7 +7668,7 @@ cmd_otr_gen(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfAccount *account = accounts_get_account(session_get_account_name()); + ProfAccount* account = accounts_get_account(session_get_account_name()); otr_keygen(account); account_free(account); return TRUE; @@ -7713,7 +7679,7 @@ cmd_otr_gen(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_myfp(ProfWin *window, const char *const command, gchar **args) +cmd_otr_myfp(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (connection_get_status() != JABBER_CONNECTED) { @@ -7726,7 +7692,7 @@ cmd_otr_myfp(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *fingerprint = otr_get_my_fingerprint(); + char* fingerprint = otr_get_my_fingerprint(); win_println(window, THEME_DEFAULT, "!", "Your OTR fingerprint: %s", fingerprint); free(fingerprint); return TRUE; @@ -7737,7 +7703,7 @@ cmd_otr_myfp(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_theirfp(ProfWin *window, const char *const command, gchar **args) +cmd_otr_theirfp(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (connection_get_status() != JABBER_CONNECTED) { @@ -7750,14 +7716,14 @@ cmd_otr_theirfp(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); if (chatwin->is_otr == FALSE) { win_println(window, THEME_DEFAULT, "!", "You are not currently in an OTR session."); return TRUE; } - char *fingerprint = otr_get_their_fingerprint(chatwin->barejid); + char* fingerprint = otr_get_their_fingerprint(chatwin->barejid); win_println(window, THEME_DEFAULT, "!", "%s's OTR fingerprint: %s", chatwin->barejid, fingerprint); free(fingerprint); return TRUE; @@ -7768,7 +7734,7 @@ cmd_otr_theirfp(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_start(ProfWin *window, const char *const command, gchar **args) +cmd_otr_start(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (connection_get_status() != JABBER_CONNECTED) { @@ -7778,13 +7744,13 @@ cmd_otr_start(ProfWin *window, const char *const command, gchar **args) // recipient supplied if (args[1]) { - char *contact = args[1]; - char *barejid = roster_barejid_from_name(contact); + char* contact = args[1]; + char* barejid = roster_barejid_from_name(contact); if (barejid == NULL) { barejid = contact; } - ProfChatWin *chatwin = wins_get_chat(barejid); + ProfChatWin* chatwin = wins_get_chat(barejid); if (!chatwin) { chatwin = chatwin_new(barejid); } @@ -7811,8 +7777,8 @@ cmd_otr_start(ProfWin *window, const char *const command, gchar **args) } if (!otr_is_secure(barejid)) { - char *otr_query_message = otr_start_query(); - char *id = message_send_chat_otr(barejid, otr_query_message, FALSE, NULL); + char* otr_query_message = otr_start_query(); + char* id = message_send_chat_otr(barejid, otr_query_message, FALSE, NULL); free(id); return TRUE; } @@ -7820,14 +7786,14 @@ cmd_otr_start(ProfWin *window, const char *const command, gchar **args) chatwin_otr_secured(chatwin, otr_is_trusted(barejid)); return TRUE; - // no recipient, use current chat + // no recipient, use current chat } else { if (window->type != WIN_CHAT) { win_println(window, THEME_DEFAULT, "-", "You must be in a regular chat window to start an OTR session."); return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); if (chatwin->pgp_send) { win_println(window, THEME_DEFAULT, "!", "You must disable PGP encryption before starting an OTR session."); @@ -7844,8 +7810,8 @@ cmd_otr_start(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *otr_query_message = otr_start_query(); - char *id = message_send_chat_otr(chatwin->barejid, otr_query_message, FALSE, NULL); + char* otr_query_message = otr_start_query(); + char* id = message_send_chat_otr(chatwin->barejid, otr_query_message, FALSE, NULL); free(id); return TRUE; @@ -7857,7 +7823,7 @@ cmd_otr_start(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_end(ProfWin *window, const char *const command, gchar **args) +cmd_otr_end(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (connection_get_status() != JABBER_CONNECTED) { @@ -7870,7 +7836,7 @@ cmd_otr_end(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); if (chatwin->is_otr == FALSE) { win_println(window, THEME_DEFAULT, "!", "You are not currently in an OTR session."); @@ -7887,7 +7853,7 @@ cmd_otr_end(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_trust(ProfWin *window, const char *const command, gchar **args) +cmd_otr_trust(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (connection_get_status() != JABBER_CONNECTED) { @@ -7900,7 +7866,7 @@ cmd_otr_trust(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); if (chatwin->is_otr == FALSE) { win_println(window, THEME_DEFAULT, "!", "You are not currently in an OTR session."); @@ -7917,7 +7883,7 @@ cmd_otr_trust(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_untrust(ProfWin *window, const char *const command, gchar **args) +cmd_otr_untrust(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (connection_get_status() != JABBER_CONNECTED) { @@ -7930,7 +7896,7 @@ cmd_otr_untrust(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); if (chatwin->is_otr == FALSE) { win_println(window, THEME_DEFAULT, "!", "You are not currently in an OTR session."); @@ -7947,7 +7913,7 @@ cmd_otr_untrust(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_secret(ProfWin *window, const char *const command, gchar **args) +cmd_otr_secret(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (connection_get_status() != JABBER_CONNECTED) { @@ -7960,14 +7926,14 @@ cmd_otr_secret(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); if (chatwin->is_otr == FALSE) { win_println(window, THEME_DEFAULT, "!", "You are not currently in an OTR session."); return TRUE; } - char *secret = args[1]; + char* secret = args[1]; if (secret == NULL) { cons_bad_cmd_usage(command); return TRUE; @@ -7982,7 +7948,7 @@ cmd_otr_secret(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_question(ProfWin *window, const char *const command, gchar **args) +cmd_otr_question(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (connection_get_status() != JABBER_CONNECTED) { @@ -7990,8 +7956,8 @@ cmd_otr_question(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *question = args[1]; - char *answer = args[2]; + char* question = args[1]; + char* answer = args[2]; if (question == NULL || answer == NULL) { cons_bad_cmd_usage(command); return TRUE; @@ -8002,7 +7968,7 @@ cmd_otr_question(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); if (chatwin->is_otr == FALSE) { win_println(window, THEME_DEFAULT, "!", "You are not currently in an OTR session."); @@ -8018,7 +7984,7 @@ cmd_otr_question(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_answer(ProfWin *window, const char *const command, gchar **args) +cmd_otr_answer(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR if (connection_get_status() != JABBER_CONNECTED) { @@ -8031,14 +7997,14 @@ cmd_otr_answer(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); if (chatwin->is_otr == FALSE) { win_println(window, THEME_DEFAULT, "!", "You are not currently in an OTR session."); return TRUE; } - char *answer = args[1]; + char* answer = args[1]; if (answer == NULL) { cons_bad_cmd_usage(command); return TRUE; @@ -8053,7 +8019,7 @@ cmd_otr_answer(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_otr_sendfile(ProfWin *window, const char *const command, gchar **args) +cmd_otr_sendfile(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_LIBOTR _cmd_set_boolean_preference(args[1], command, "Sending unencrypted files in an OTR session via /sendfile", PREF_OTR_SENDFILE); @@ -8066,7 +8032,7 @@ cmd_otr_sendfile(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_command_list(ProfWin *window, const char *const command, gchar **args) +cmd_command_list(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -8080,26 +8046,26 @@ cmd_command_list(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *jid = args[1]; + char* jid = args[1]; if (jid == NULL) { switch (window->type) { case WIN_MUC: { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); jid = mucwin->roomjid; break; } case WIN_CHAT: { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); jid = chatwin->barejid; break; } case WIN_PRIVATE: { - ProfPrivateWin *privatewin = (ProfPrivateWin*)window; + ProfPrivateWin* privatewin = (ProfPrivateWin*)window; assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); jid = privatewin->fulljid; break; @@ -8122,7 +8088,7 @@ cmd_command_list(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_command_exec(ProfWin *window, const char *const command, gchar **args) +cmd_command_exec(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -8141,26 +8107,26 @@ cmd_command_exec(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *jid = args[2]; + char* jid = args[2]; if (jid == NULL) { switch (window->type) { case WIN_MUC: { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); jid = mucwin->roomjid; break; } case WIN_CHAT: { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); jid = chatwin->barejid; break; } case WIN_PRIVATE: { - ProfPrivateWin *privatewin = (ProfPrivateWin*)window; + ProfPrivateWin* privatewin = (ProfPrivateWin*)window; assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); jid = privatewin->fulljid; break; @@ -8183,17 +8149,17 @@ cmd_command_exec(ProfWin *window, const char *const command, gchar **args) } static gboolean -_cmd_execute(ProfWin *window, const char *const command, const char *const inp) +_cmd_execute(ProfWin* window, const char* const command, const char* const inp) { if (g_str_has_prefix(command, "/field") && window->type == WIN_CONFIG) { gboolean result = FALSE; - gchar **args = parse_args_with_freetext(inp, 1, 2, &result); + gchar** args = parse_args_with_freetext(inp, 1, 2, &result); if (!result) { win_println(window, THEME_DEFAULT, "!", "Invalid command, see /form help"); result = TRUE; } else { - gchar **tokens = g_strsplit(inp, " ", 2); - char *field = tokens[0] + 1; + gchar** tokens = g_strsplit(inp, " ", 2); + char* field = tokens[0] + 1; result = cmd_form_field(window, field, args); g_strfreev(tokens); } @@ -8202,11 +8168,11 @@ _cmd_execute(ProfWin *window, const char *const command, const char *const inp) return result; } - Command *cmd = cmd_get(command); + Command* cmd = cmd_get(command); gboolean result = FALSE; if (cmd) { - gchar **args = cmd->parser(inp, cmd->min_args, cmd->max_args, &result); + gchar** args = cmd->parser(inp, cmd->min_args, cmd->max_args, &result); if (result == FALSE) { ui_invalid_command_usage(cmd->cmd, cmd->setting_func); return TRUE; @@ -8215,7 +8181,7 @@ _cmd_execute(ProfWin *window, const char *const command, const char *const inp) int i = 0; while (cmd->sub_funcs[i][0]) { if (g_strcmp0(args[0], (char*)cmd->sub_funcs[i][0]) == 0) { - gboolean (*func)(ProfWin *window, const char *const command, gchar **args) = cmd->sub_funcs[i][1]; + gboolean (*func)(ProfWin * window, const char* const command, gchar** args) = cmd->sub_funcs[i][1]; gboolean result = func(window, command, args); g_strfreev(args); return result; @@ -8244,13 +8210,13 @@ _cmd_execute(ProfWin *window, const char *const command, const char *const inp) } static gboolean -_cmd_execute_default(ProfWin *window, const char *inp) +_cmd_execute_default(ProfWin* window, const char* inp) { // handle escaped commands - treat as normal message if (g_str_has_prefix(inp, "//")) { inp++; - // handle unknown commands + // handle unknown commands } else if ((inp[0] == '/') && (!g_str_has_prefix(inp, "/me "))) { cons_show("Unknown command: %s", inp); cons_alert(); @@ -8265,7 +8231,7 @@ _cmd_execute_default(ProfWin *window, const char *inp) // handle plugin window if (window->type == WIN_PLUGIN) { - ProfPluginWin *pluginwin = (ProfPluginWin*)window; + ProfPluginWin* pluginwin = (ProfPluginWin*)window; plugins_win_process_line(pluginwin->tag, inp); return TRUE; } @@ -8279,21 +8245,21 @@ _cmd_execute_default(ProfWin *window, const char *inp) switch (window->type) { case WIN_CHAT: { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); cl_ev_send_msg(chatwin, inp, NULL); break; } case WIN_PRIVATE: { - ProfPrivateWin *privatewin = (ProfPrivateWin*)window; + ProfPrivateWin* privatewin = (ProfPrivateWin*)window; assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); cl_ev_send_priv_msg(privatewin, inp, NULL); break; } case WIN_MUC: { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); cl_ev_send_muc_msg(mucwin, inp, NULL); break; @@ -8311,15 +8277,15 @@ _cmd_execute_default(ProfWin *window, const char *inp) } static gboolean -_cmd_execute_alias(ProfWin *window, const char *const inp, gboolean *ran) +_cmd_execute_alias(ProfWin* window, const char* const inp, gboolean* ran) { if (inp[0] != '/') { *ran = FALSE; return TRUE; } - char *alias = strdup(inp+1); - char *value = prefs_get_alias(alias); + char* alias = strdup(inp + 1); + char* value = prefs_get_alias(alias); free(alias); if (value) { *ran = TRUE; @@ -8335,9 +8301,9 @@ _cmd_execute_alias(ProfWin *window, const char *const inp, gboolean *ran) // helper function for status change commands static void _update_presence(const resource_presence_t resource_presence, - const char *const show, gchar **args) + const char* const show, gchar** args) { - char *msg = NULL; + char* msg = NULL; int num_args = g_strv_length(args); // if no message, use status as message @@ -8360,13 +8326,13 @@ _update_presence(const resource_presence_t resource_presence, // helper function for boolean preference commands static void -_cmd_set_boolean_preference(gchar *arg, const char *const command, - const char *const display, preference_t pref) +_cmd_set_boolean_preference(gchar* arg, const char* const command, + const char* const display, preference_t pref) { if (arg == NULL) { cons_bad_cmd_usage(command); } else if (strcmp(arg, "on") == 0) { - GString *enabled = g_string_new(display); + GString* enabled = g_string_new(display); g_string_append(enabled, " enabled."); cons_show(enabled->str); @@ -8374,7 +8340,7 @@ _cmd_set_boolean_preference(gchar *arg, const char *const command, g_string_free(enabled, TRUE); } else if (strcmp(arg, "off") == 0) { - GString *disabled = g_string_new(display); + GString* disabled = g_string_new(display); g_string_append(disabled, " disabled."); cons_show(disabled->str); @@ -8387,7 +8353,7 @@ _cmd_set_boolean_preference(gchar *arg, const char *const command, } gboolean -cmd_omemo_gen(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_gen(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO if (connection_get_status() != JABBER_CONNECTED) { @@ -8402,7 +8368,7 @@ cmd_omemo_gen(ProfWin *window, const char *const command, gchar **args) cons_show("Generating OMEMO crytographic materials, it may take a while..."); ui_update(); - ProfAccount *account = accounts_get_account(session_get_account_name()); + ProfAccount* account = accounts_get_account(session_get_account_name()); omemo_generate_crypto_materials(account); cons_show("OMEMO crytographic materials generated."); return TRUE; @@ -8413,7 +8379,7 @@ cmd_omemo_gen(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_omemo_start(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_start(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO if (connection_get_status() != JABBER_CONNECTED) { @@ -8426,12 +8392,12 @@ cmd_omemo_start(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = NULL; + ProfChatWin* chatwin = NULL; // recipient supplied if (args[1]) { - char *contact = args[1]; - char *barejid = roster_barejid_from_name(contact); + char* contact = args[1]; + char* barejid = roster_barejid_from_name(contact); if (barejid == NULL) { barejid = contact; } @@ -8442,10 +8408,10 @@ cmd_omemo_start(ProfWin *window, const char *const command, gchar **args) } ui_focus_win((ProfWin*)chatwin); } else { - if (window->type == WIN_CHAT) { - chatwin = (ProfChatWin*)window; - assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - } + if (window->type == WIN_CHAT) { + chatwin = (ProfChatWin*)window; + assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); + } } if (chatwin) { @@ -8468,11 +8434,11 @@ cmd_omemo_start(ProfWin *window, const char *const command, gchar **args) omemo_start_session(chatwin->barejid); chatwin->is_omemo = TRUE; } else if (window->type == WIN_MUC) { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); if (muc_anonymity_type(mucwin->roomjid) == MUC_ANONYMITY_TYPE_NONANONYMOUS - && muc_member_type(mucwin->roomjid) == MUC_MEMBER_TYPE_MEMBERS_ONLY) { + && muc_member_type(mucwin->roomjid) == MUC_MEMBER_TYPE_MEMBERS_ONLY) { accounts_add_omemo_state(session_get_account_name(), mucwin->roomjid, TRUE); omemo_start_muc_sessions(mucwin->roomjid); mucwin->is_omemo = TRUE; @@ -8491,7 +8457,7 @@ cmd_omemo_start(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_omemo_char(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_char(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO if (args[1] == NULL) { @@ -8513,10 +8479,10 @@ cmd_omemo_char(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_omemo_log(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_log(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO - char *choice = args[1]; + char* choice = args[1]; if (g_strcmp0(choice, "on") == 0) { prefs_set_string(PREF_OMEMO_LOG, "on"); cons_show("OMEMO messages will be logged as plaintext."); @@ -8543,7 +8509,7 @@ cmd_omemo_log(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_omemo_end(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_end(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO if (connection_get_status() != JABBER_CONNECTED) { @@ -8552,7 +8518,7 @@ cmd_omemo_end(ProfWin *window, const char *const command, gchar **args) } if (window->type == WIN_CHAT) { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); if (!chatwin->is_omemo) { @@ -8563,7 +8529,7 @@ cmd_omemo_end(ProfWin *window, const char *const command, gchar **args) chatwin->is_omemo = FALSE; accounts_add_omemo_state(session_get_account_name(), chatwin->barejid, FALSE); } else if (window->type == WIN_MUC) { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); if (!mucwin->is_omemo) { @@ -8586,7 +8552,7 @@ cmd_omemo_end(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_omemo_fingerprint(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_fingerprint(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO if (connection_get_status() != JABBER_CONNECTED) { @@ -8599,22 +8565,22 @@ cmd_omemo_fingerprint(ProfWin *window, const char *const command, gchar **args) return TRUE; } - Jid *jid; + Jid* jid; if (!args[1]) { if (window->type == WIN_CONSOLE) { - char *fingerprint = omemo_own_fingerprint(TRUE); + char* fingerprint = omemo_own_fingerprint(TRUE); cons_show("Your OMEMO fingerprint: %s", fingerprint); free(fingerprint); jid = jid_create(connection_get_fulljid()); } else if (window->type == WIN_CHAT) { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; jid = jid_create(chatwin->barejid); } else { win_println(window, THEME_DEFAULT, "-", "You must be in a regular chat window to print fingerprint without providing the contact."); return TRUE; } } else { - char *barejid = roster_barejid_from_name(args[1]); + char* barejid = roster_barejid_from_name(args[1]); if (barejid) { jid = jid_create(barejid); } else { @@ -8626,8 +8592,8 @@ cmd_omemo_fingerprint(ProfWin *window, const char *const command, gchar **args) } } - GList *fingerprints = omemo_known_device_identities(jid->barejid); - GList *fingerprint; + GList* fingerprints = omemo_known_device_identities(jid->barejid); + GList* fingerprint; if (!fingerprints) { win_println(window, THEME_DEFAULT, "-", "There is no known fingerprints for %s", jid->barejid); @@ -8635,7 +8601,7 @@ cmd_omemo_fingerprint(ProfWin *window, const char *const command, gchar **args) } for (fingerprint = fingerprints; fingerprint != NULL; fingerprint = fingerprint->next) { - char *formatted_fingerprint = omemo_format_fingerprint(fingerprint->data); + char* formatted_fingerprint = omemo_format_fingerprint(fingerprint->data); gboolean trusted = omemo_is_trusted_identity(jid->barejid, fingerprint->data); win_println(window, THEME_DEFAULT, "-", "%s's OMEMO fingerprint: %s%s", jid->barejid, formatted_fingerprint, trusted ? " (trusted)" : ""); @@ -8656,7 +8622,7 @@ cmd_omemo_fingerprint(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_omemo_trust(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_trust(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO if (connection_get_status() != JABBER_CONNECTED) { @@ -8674,8 +8640,8 @@ cmd_omemo_trust(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *fingerprint; - char *barejid; + char* fingerprint; + char* barejid; /* Contact not provided */ if (!args[2]) { @@ -8686,12 +8652,12 @@ cmd_omemo_trust(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); barejid = chatwin->barejid; } else { fingerprint = args[2]; - char *contact = args[1]; + char* contact = args[1]; barejid = roster_barejid_from_name(contact); if (barejid == NULL) { barejid = contact; @@ -8700,7 +8666,7 @@ cmd_omemo_trust(ProfWin *window, const char *const command, gchar **args) omemo_trust(barejid, fingerprint); - char *unformatted_fingerprint = malloc(strlen(fingerprint)); + char* unformatted_fingerprint = malloc(strlen(fingerprint)); int i; int j; for (i = 0, j = 0; fingerprint[i] != '\0'; i++) { @@ -8725,7 +8691,7 @@ cmd_omemo_trust(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_omemo_untrust(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_untrust(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO if (connection_get_status() != JABBER_CONNECTED) { @@ -8743,8 +8709,8 @@ cmd_omemo_untrust(ProfWin *window, const char *const command, gchar **args) return TRUE; } - char *fingerprint; - char *barejid; + char* fingerprint; + char* barejid; /* Contact not provided */ if (!args[2]) { @@ -8755,12 +8721,12 @@ cmd_omemo_untrust(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); barejid = chatwin->barejid; } else { fingerprint = args[2]; - char *contact = args[1]; + char* contact = args[1]; barejid = roster_barejid_from_name(contact); if (barejid == NULL) { barejid = contact; @@ -8769,7 +8735,7 @@ cmd_omemo_untrust(ProfWin *window, const char *const command, gchar **args) omemo_untrust(barejid, fingerprint); - char *unformatted_fingerprint = malloc(strlen(fingerprint)); + char* unformatted_fingerprint = malloc(strlen(fingerprint)); int i; int j; for (i = 0, j = 0; fingerprint[i] != '\0'; i++) { @@ -8794,7 +8760,7 @@ cmd_omemo_untrust(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_omemo_clear_device_list(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_clear_device_list(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO if (connection_get_status() != JABBER_CONNECTED) { @@ -8812,20 +8778,18 @@ cmd_omemo_clear_device_list(ProfWin *window, const char *const command, gchar ** } gboolean -cmd_omemo_policy(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_policy(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO if (args[1] == NULL) { - char *policy = prefs_get_string(PREF_OMEMO_POLICY); + char* policy = prefs_get_string(PREF_OMEMO_POLICY); cons_show("OMEMO policy is now set to: %s", policy); g_free(policy); return TRUE; } - char *choice = args[1]; - if ((g_strcmp0(choice, "manual") != 0) && - (g_strcmp0(choice, "automatic") != 0) && - (g_strcmp0(choice, "always") != 0)) { + char* choice = args[1]; + if ((g_strcmp0(choice, "manual") != 0) && (g_strcmp0(choice, "automatic") != 0) && (g_strcmp0(choice, "always") != 0)) { cons_show("OMEMO policy can be set to: manual, automatic or always."); return TRUE; } @@ -8840,7 +8804,7 @@ cmd_omemo_policy(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_omemo_sendfile(ProfWin *window, const char *const command, gchar **args) +cmd_omemo_sendfile(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO _cmd_set_boolean_preference(args[1], command, "Sending unencrypted files in an OMEMO session via /sendfile", PREF_OMEMO_SENDFILE); @@ -8853,7 +8817,7 @@ cmd_omemo_sendfile(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_save(ProfWin *window, const char *const command, gchar **args) +cmd_save(ProfWin* window, const char* const command, gchar** args) { log_info("Saving preferences to configuration file"); cons_show("Saving preferences."); @@ -8862,7 +8826,7 @@ cmd_save(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_reload(ProfWin *window, const char *const command, gchar **args) +cmd_reload(ProfWin* window, const char* const command, gchar** args) { log_info("Reloading preferences"); cons_show("Reloading preferences."); @@ -8871,39 +8835,39 @@ cmd_reload(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_paste(ProfWin *window, const char *const command, gchar **args) +cmd_paste(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_GTK - char *clipboard_buffer = clipboard_get(); + char* clipboard_buffer = clipboard_get(); if (clipboard_buffer) { switch (window->type) { - case WIN_MUC: - { - ProfMucWin *mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - cl_ev_send_muc_msg(mucwin, clipboard_buffer, NULL); - break; - } - case WIN_CHAT: - { - ProfChatWin *chatwin = (ProfChatWin*)window; - assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - cl_ev_send_msg(chatwin, clipboard_buffer, NULL); - break; - } - case WIN_PRIVATE: - { - ProfPrivateWin *privatewin = (ProfPrivateWin*)window; - assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); - cl_ev_send_priv_msg(privatewin, clipboard_buffer, NULL); - break; - } - case WIN_CONSOLE: - case WIN_XML: - default: - cons_bad_cmd_usage(command); - break; + case WIN_MUC: + { + ProfMucWin* mucwin = (ProfMucWin*)window; + assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); + cl_ev_send_muc_msg(mucwin, clipboard_buffer, NULL); + break; + } + case WIN_CHAT: + { + ProfChatWin* chatwin = (ProfChatWin*)window; + assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); + cl_ev_send_msg(chatwin, clipboard_buffer, NULL); + break; + } + case WIN_PRIVATE: + { + ProfPrivateWin* privatewin = (ProfPrivateWin*)window; + assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); + cl_ev_send_priv_msg(privatewin, clipboard_buffer, NULL); + break; + } + case WIN_CONSOLE: + case WIN_XML: + default: + cons_bad_cmd_usage(command); + break; } free(clipboard_buffer); @@ -8916,16 +8880,16 @@ cmd_paste(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_color(ProfWin *window, const char *const command, gchar **args) +cmd_color(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "on") == 0) { - prefs_set_string(PREF_COLOR_NICK, "true"); + prefs_set_string(PREF_COLOR_NICK, "true"); } else if (g_strcmp0(args[0], "off") == 0) { - prefs_set_string(PREF_COLOR_NICK, "false"); + prefs_set_string(PREF_COLOR_NICK, "false"); } else if (g_strcmp0(args[0], "redgreen") == 0) { - prefs_set_string(PREF_COLOR_NICK, "redgreen"); + prefs_set_string(PREF_COLOR_NICK, "redgreen"); } else if (g_strcmp0(args[0], "blue") == 0) { - prefs_set_string(PREF_COLOR_NICK, "blue"); + prefs_set_string(PREF_COLOR_NICK, "blue"); } else if (g_strcmp0(args[0], "own") == 0) { if (g_strcmp0(args[1], "on") == 0) { _cmd_set_boolean_preference(args[1], command, "Color generation for own nick", PREF_COLOR_NICK_OWN); @@ -8937,7 +8901,7 @@ cmd_color(ProfWin *window, const char *const command, gchar **args) cons_show("Consistent color generation for nicks set to: %s", args[0]); - char *theme = prefs_get_string(PREF_THEME); + char* theme = prefs_get_string(PREF_THEME); if (theme) { gboolean res = theme_load(theme, false); @@ -8954,7 +8918,7 @@ cmd_color(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_avatar(ProfWin *window, const char *const command, gchar **args) +cmd_avatar(ProfWin* window, const char* const command, gchar** args) { if (args[1] == NULL) { cons_bad_cmd_usage(command); @@ -8974,7 +8938,7 @@ cmd_avatar(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_os(ProfWin *window, const char *const command, gchar **args) +cmd_os(ProfWin* window, const char* const command, gchar** args) { _cmd_set_boolean_preference(args[0], command, "Revealing OS name", PREF_REVEAL_OS); @@ -8982,7 +8946,7 @@ cmd_os(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_correction(ProfWin *window, const char *const command, gchar **args) +cmd_correction(ProfWin* window, const char* const command, gchar** args) { // enable/disable if (g_strcmp0(args[0], "on") == 0) { @@ -9011,7 +8975,7 @@ cmd_correction(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_correct(ProfWin *window, const char *const command, gchar **args) +cmd_correct(ProfWin* window, const char* const command, gchar** args) { jabber_conn_status_t conn_status = connection_get_status(); if (conn_status != JABBER_CONNECTED) { @@ -9025,7 +8989,7 @@ cmd_correct(ProfWin *window, const char *const command, gchar **args) } if (window->type == WIN_CHAT) { - ProfChatWin *chatwin = (ProfChatWin*)window; + ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); if (chatwin->last_msg_id == NULL || chatwin->last_message == NULL) { @@ -9034,13 +8998,13 @@ cmd_correct(ProfWin *window, const char *const command, gchar **args) } // send message again, with replace flag - gchar *message = g_strjoinv(" ", args); + gchar* message = g_strjoinv(" ", args); cl_ev_send_msg_correct(chatwin, message, FALSE, TRUE); free(message); return TRUE; } else if (window->type == WIN_MUC) { - ProfMucWin *mucwin = (ProfMucWin*)window; + ProfMucWin* mucwin = (ProfMucWin*)window; assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); if (mucwin->last_msg_id == NULL || mucwin->last_message == NULL) { @@ -9049,7 +9013,7 @@ cmd_correct(ProfWin *window, const char *const command, gchar **args) } // send message again, with replace flag - gchar *message = g_strjoinv(" ", args); + gchar* message = g_strjoinv(" ", args); cl_ev_send_muc_msg_corrected(mucwin, message, FALSE, TRUE); free(message); @@ -9061,7 +9025,7 @@ cmd_correct(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_slashguard(ProfWin *window, const char *const command, gchar **args) +cmd_slashguard(ProfWin* window, const char* const command, gchar** args) { if (args[0] == NULL) { return FALSE; @@ -9073,11 +9037,9 @@ cmd_slashguard(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_url_open(ProfWin *window, const char *const command, gchar **args) +cmd_url_open(ProfWin* window, const char* const command, gchar** args) { - if (window->type != WIN_CHAT && - window->type != WIN_MUC && - window->type != WIN_PRIVATE) { + if (window->type != WIN_CHAT && window->type != WIN_MUC && window->type != WIN_PRIVATE) { cons_show("url open not supported in this window"); return TRUE; } @@ -9089,37 +9051,35 @@ cmd_url_open(ProfWin *window, const char *const command, gchar **args) gboolean require_save = false; - gchar *fileStart = g_strrstr(args[1], "/"); + gchar* fileStart = g_strrstr(args[1], "/"); if (fileStart == NULL) { cons_show("URL '%s' is not valid.", args[1]); return TRUE; } fileStart++; - if (((char*)(fileStart - 2))[0] == '/' && - ((char*)(fileStart - 3))[0] == ':' - ){ - // If the '/' is last character of the '://' string, there will be no suffix - // Therefore, it is considered that there is no file name in the URL and - // fileStart is set to the end of the URL. - fileStart = args[1] + strlen(args[1]); + if (((char*)(fileStart - 2))[0] == '/' && ((char*)(fileStart - 3))[0] == ':') { + // If the '/' is last character of the '://' string, there will be no suffix + // Therefore, it is considered that there is no file name in the URL and + // fileStart is set to the end of the URL. + fileStart = args[1] + strlen(args[1]); } - gchar *suffix = NULL; - gchar *suffixStart = g_strrstr(fileStart, "."); + gchar* suffix = NULL; + gchar* suffixStart = g_strrstr(fileStart, "."); if (suffixStart != NULL) { suffixStart++; - gchar *suffixEnd = g_strrstr(suffixStart, "#"); - if(suffixEnd == NULL) { + gchar* suffixEnd = g_strrstr(suffixStart, "#"); + if (suffixEnd == NULL) { suffix = g_strdup(suffixStart); } else { suffix = g_strndup(suffixStart, suffixEnd - suffixStart); } } - gchar **suffix_cmd_pref = prefs_get_string_list_with_option(PREF_URL_OPEN_CMD, NULL); + gchar** suffix_cmd_pref = prefs_get_string_list_with_option(PREF_URL_OPEN_CMD, NULL); if (suffix != NULL) { - gchar *lowercase_suffix = g_ascii_strdown(suffix, -1); + gchar* lowercase_suffix = g_ascii_strdown(suffix, -1); g_strfreev(suffix_cmd_pref); suffix_cmd_pref = prefs_get_string_list_with_option(PREF_URL_OPEN_CMD, lowercase_suffix); g_free(lowercase_suffix); @@ -9130,21 +9090,21 @@ cmd_url_open(ProfWin *window, const char *const command, gchar **args) require_save = true; } - gchar *suffix_cmd = g_strdup(suffix_cmd_pref[1]); + gchar* suffix_cmd = g_strdup(suffix_cmd_pref[1]); g_strfreev(suffix_cmd_pref); - gchar *scheme = g_uri_parse_scheme(args[1]); - if( 0 == g_strcmp0(scheme, "aesgcm")) { + gchar* scheme = g_uri_parse_scheme(args[1]); + if (0 == g_strcmp0(scheme, "aesgcm")) { require_save = true; } g_free(scheme); if (require_save) { - gchar *save_args[] = { "open", args[1], "/tmp/profanity.tmp", NULL}; + gchar* save_args[] = { "open", args[1], "/tmp/profanity.tmp", NULL }; cmd_url_save(window, command, save_args); } - gchar **argv = g_strsplit(suffix_cmd, " ", 0); + gchar** argv = g_strsplit(suffix_cmd, " ", 0); guint num_args = 0; while (argv[num_args]) { if (0 == g_strcmp0(argv[num_args], "%u")) { @@ -9174,11 +9134,9 @@ cmd_url_open(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_url_save(ProfWin *window, const char *const command, gchar **args) +cmd_url_save(ProfWin* window, const char* const command, gchar** args) { - if (window->type != WIN_CHAT && - window->type != WIN_MUC && - window->type != WIN_PRIVATE) { + if (window->type != WIN_CHAT && window->type != WIN_MUC && window->type != WIN_PRIVATE) { cons_show("url save not supported in this window"); return TRUE; } @@ -9188,27 +9146,25 @@ cmd_url_save(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gchar *uri = args[1]; - gchar *target_path = g_strdup(args[2]); + gchar* uri = args[1]; + gchar* target_path = g_strdup(args[2]); - GFile *file = g_file_new_for_uri(uri); + GFile* file = g_file_new_for_uri(uri); - gchar *target_dir = NULL; - gchar *base_name = NULL; + gchar* target_dir = NULL; + gchar* base_name = NULL; if (target_path == NULL) { target_dir = g_strdup("./"); base_name = g_file_get_basename(file); if (0 == g_strcmp0(base_name, ".")) { - g_free(base_name); - base_name = g_strdup("saved_url_content.html"); + g_free(base_name); + base_name = g_strdup("saved_url_content.html"); } target_path = g_strconcat(target_dir, base_name, NULL); } - if (g_file_test(target_path, G_FILE_TEST_EXISTS) && - g_file_test(target_path, G_FILE_TEST_IS_DIR) - ) { + if (g_file_test(target_path, G_FILE_TEST_EXISTS) && g_file_test(target_path, G_FILE_TEST_IS_DIR)) { target_dir = g_strdup(target_path); base_name = g_file_get_basename(file); g_free(target_path); @@ -9223,8 +9179,7 @@ cmd_url_save(ProfWin *window, const char *const command, gchar **args) target_dir = g_path_get_dirname(target_path); } - if (!g_file_test(target_dir, G_FILE_TEST_EXISTS) || - !g_file_test(target_dir, G_FILE_TEST_IS_DIR)) { + if (!g_file_test(target_dir, G_FILE_TEST_EXISTS) || !g_file_test(target_dir, G_FILE_TEST_IS_DIR)) { cons_show("%s does not exist or is not a directory.", target_dir); g_free(target_path); g_free(target_dir); @@ -9232,7 +9187,7 @@ cmd_url_save(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gchar *scheme = g_uri_parse_scheme(uri); + gchar* scheme = g_uri_parse_scheme(uri); if (scheme == NULL) { cons_show("URL '%s' is not valid.", uri); g_free(target_path); @@ -9241,18 +9196,17 @@ cmd_url_save(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gchar *scheme_cmd = NULL; + gchar* scheme_cmd = NULL; if (0 == g_strcmp0(scheme, "http") || 0 == g_strcmp0(scheme, "https") - || 0 == g_strcmp0(scheme, "aesgcm") - ) { + || 0 == g_strcmp0(scheme, "aesgcm")) { scheme_cmd = prefs_get_string_with_option(PREF_URL_SAVE_CMD, scheme); } g_free(scheme); - gchar **argv = g_strsplit(scheme_cmd, " ", 0); + gchar** argv = g_strsplit(scheme_cmd, " ", 0); g_free(scheme_cmd); guint num_args = 0; @@ -9281,7 +9235,7 @@ cmd_url_save(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_executable(ProfWin *window, const char *const command, gchar **args) +cmd_executable(ProfWin* window, const char* const command, gchar** args) { if (g_strcmp0(args[0], "avatar") == 0) { prefs_set_string(PREF_AVATAR_CMD, args[1]); @@ -9292,8 +9246,8 @@ cmd_executable(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gchar *str = g_strjoinv(" ", &args[3]); - const gchar* const list[] = {args[2], str, NULL}; + gchar* str = g_strjoinv(" ", &args[3]); + const gchar* const list[] = { args[2], str, NULL }; prefs_set_string_list_with_option(PREF_URL_OPEN_CMD, args[1], list); cons_show("`url open` command set to: %s for %s files", str, args[1]); g_free(str); @@ -9303,7 +9257,7 @@ cmd_executable(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gchar *str = g_strjoinv(" ", &args[2]); + gchar* str = g_strjoinv(" ", &args[2]); prefs_set_string_with_option(PREF_URL_SAVE_CMD, args[1], str); cons_show("`url save` command set to: %s for scheme %s", str, args[1]); g_free(str); diff --git a/src/command/cmd_funcs.h b/src/command/cmd_funcs.h index 955a2e39..30059fc2 100644 --- a/src/command/cmd_funcs.h +++ b/src/command/cmd_funcs.h @@ -40,12 +40,13 @@ #include "ui/win_types.h" // Command help strings -typedef struct cmd_help_t { - gchar *tags[20]; - gchar *synopsis[50]; - gchar *desc; - gchar *args[128][2]; - gchar *examples[20]; +typedef struct cmd_help_t +{ + gchar* tags[20]; + gchar* synopsis[50]; + gchar* desc; + gchar* args[128][2]; + gchar* examples[20]; } CommandHelp; /* @@ -60,184 +61,184 @@ typedef struct cmd_help_t { * func - Main function to call when no arguments, or sub_funcs not implemented * help - A help struct containing usage info etc */ -typedef struct cmd_t { - gchar *cmd; - gchar** (*parser)(const char *const inp, int min, int max, gboolean *result); +typedef struct cmd_t +{ + gchar* cmd; + gchar** (*parser)(const char* const inp, int min, int max, gboolean* result); int min_args; int max_args; void (*setting_func)(void); - void *sub_funcs[50][2]; - gboolean (*func)(ProfWin *window, const char *const command, gchar **args); + void* sub_funcs[50][2]; + gboolean (*func)(ProfWin* window, const char* const command, gchar** args); CommandHelp help; } Command; - -gboolean cmd_process_input(ProfWin *window, char *inp); -void cmd_execute_connect(ProfWin *window, const char *const account); - -gboolean cmd_about(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_autoaway(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_autoconnect(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_autoping(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_beep(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_caps(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_logging(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_clear(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_close(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_connect(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_disco(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_sendfile(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_lastactivity(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_disconnect(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_flash(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_tray(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_gone(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_group(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_help(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_history(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_carbons(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_receipts(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_info(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_intype(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_invite(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_join(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_leave(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_log(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_msg(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_nick(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_notify(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_pgp(ProfWin *window, const char *const command, gchar **args); +gboolean cmd_process_input(ProfWin* window, char* inp); +void cmd_execute_connect(ProfWin* window, const char* const account); + +gboolean cmd_about(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_autoaway(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_autoconnect(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_autoping(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_beep(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_caps(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_logging(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_clear(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_close(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_connect(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_disco(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_sendfile(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_lastactivity(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_disconnect(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_flash(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_tray(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_gone(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_group(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_help(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_history(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_carbons(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_receipts(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_info(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_intype(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_invite(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_join(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_leave(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_log(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_msg(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_nick(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_notify(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_pgp(ProfWin* window, const char* const command, gchar** args); #ifdef HAVE_LIBGPGME -gboolean cmd_ox(ProfWin *window, const char *const command, gchar **args); +gboolean cmd_ox(ProfWin* window, const char* const command, gchar** args); #endif // HAVE_LIBGPGME -gboolean cmd_outtype(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_prefs(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_priority(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_quit(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_reconnect(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_room(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_rooms(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_bookmark(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_bookmark_ignore(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_roster(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_software(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_splash(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_states(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_status_get(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_status_set(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_sub(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_theme(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_tiny(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_wintitle(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_vercheck(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_who(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_win(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_alias(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_xmlconsole(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_ping(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_form(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_occupants(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_kick(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_ban(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_subject(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_affiliation(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_role(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_privileges(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_presence(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_wrap(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_time(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_resource(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_inpblock(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_titlebar(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_titlebar_show_hide(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_mainwin(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_statusbar(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_inputwin(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_script(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_export(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_charset(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_console(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_command_list(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_command_exec(ProfWin *window, const char *const command, gchar **args); - -gboolean cmd_plugins(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_plugins_sourcepath(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_plugins_install(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_plugins_update(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_plugins_uninstall(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_plugins_load(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_plugins_unload(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_plugins_reload(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_plugins_python_version(ProfWin *window, const char *const command, gchar **args); - -gboolean cmd_blocked(ProfWin *window, const char *const command, gchar **args); - -gboolean cmd_account(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_account_list(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_account_show(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_account_add(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_account_remove(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_account_enable(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_account_disable(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_account_rename(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_account_default(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_account_set(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_account_clear(ProfWin *window, const char *const command, gchar **args); - -gboolean cmd_tls_certpath(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_tls_trust(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_tls_trusted(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_tls_revoke(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_tls_cert(ProfWin *window, const char *const command, gchar **args); - -gboolean cmd_otr_char(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_log(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_libver(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_policy(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_gen(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_myfp(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_theirfp(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_start(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_end(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_trust(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_untrust(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_secret(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_question(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_answer(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_otr_sendfile(ProfWin *window, const char *const command, gchar **args); - -gboolean cmd_wins(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_wins_unread(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_wins_prune(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_wins_swap(ProfWin *window, const char *const command, gchar **args); - -gboolean cmd_form_field(ProfWin *window, char *tag, gchar **args); - -gboolean cmd_omemo_gen(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_omemo_char(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_omemo_log(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_omemo_start(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_omemo_end(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_omemo_fingerprint(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_omemo_trust(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_omemo_untrust(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_omemo_policy(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_omemo_clear_device_list(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_omemo_sendfile(ProfWin *window, const char *const command, gchar **args); - -gboolean cmd_save(ProfWin *window, const char *const command, gchar **args); -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); -gboolean cmd_correction(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_correct(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_slashguard(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_serversoftware(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_url_open(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_url_save(ProfWin *window, const char *const command, gchar **args); -gboolean cmd_executable(ProfWin *window, const char *const command, gchar **args); +gboolean cmd_outtype(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_prefs(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_priority(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_quit(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_reconnect(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_room(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_rooms(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_bookmark(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_bookmark_ignore(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_roster(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_software(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_splash(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_states(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_status_get(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_status_set(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_sub(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_theme(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_tiny(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_wintitle(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_vercheck(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_who(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_win(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_alias(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_xmlconsole(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_ping(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_form(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_occupants(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_kick(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_ban(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_subject(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_affiliation(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_role(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_privileges(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_presence(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_wrap(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_time(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_resource(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_inpblock(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_titlebar(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_titlebar_show_hide(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_mainwin(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_statusbar(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_inputwin(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_script(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_export(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_charset(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_console(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_command_list(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_command_exec(ProfWin* window, const char* const command, gchar** args); + +gboolean cmd_plugins(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_plugins_sourcepath(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_plugins_install(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_plugins_update(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_plugins_uninstall(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_plugins_load(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_plugins_unload(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_plugins_reload(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_plugins_python_version(ProfWin* window, const char* const command, gchar** args); + +gboolean cmd_blocked(ProfWin* window, const char* const command, gchar** args); + +gboolean cmd_account(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_account_list(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_account_show(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_account_add(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_account_remove(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_account_enable(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_account_disable(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_account_rename(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_account_default(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_account_set(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_account_clear(ProfWin* window, const char* const command, gchar** args); + +gboolean cmd_tls_certpath(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_tls_trust(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_tls_trusted(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_tls_revoke(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_tls_cert(ProfWin* window, const char* const command, gchar** args); + +gboolean cmd_otr_char(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_log(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_libver(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_policy(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_gen(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_myfp(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_theirfp(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_start(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_end(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_trust(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_untrust(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_secret(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_question(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_answer(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_otr_sendfile(ProfWin* window, const char* const command, gchar** args); + +gboolean cmd_wins(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_wins_unread(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_wins_prune(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_wins_swap(ProfWin* window, const char* const command, gchar** args); + +gboolean cmd_form_field(ProfWin* window, char* tag, gchar** args); + +gboolean cmd_omemo_gen(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_omemo_char(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_omemo_log(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_omemo_start(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_omemo_end(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_omemo_fingerprint(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_omemo_trust(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_omemo_untrust(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_omemo_policy(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_omemo_clear_device_list(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_omemo_sendfile(ProfWin* window, const char* const command, gchar** args); + +gboolean cmd_save(ProfWin* window, const char* const command, gchar** args); +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); +gboolean cmd_correction(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_correct(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_slashguard(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_serversoftware(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_url_open(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_url_save(ProfWin* window, const char* const command, gchar** args); +gboolean cmd_executable(ProfWin* window, const char* const command, gchar** args); #endif |