diff options
author | Indent <please@skip.me> | 2015-02-19 02:47:20 -0300 |
---|---|---|
committer | dequis <dx@dxzone.com.ar> | 2015-02-20 19:50:54 -0300 |
commit | 5ebff60479fc7a9f7f50ac03b124c91d4e6ebe11 (patch) | |
tree | 9fc0d50cb1f4bc9768d9f00de94eafd876bb55b0 /root_commands.c | |
parent | af359b4316f9d392c6b752495a1b2ed631576ed8 (diff) |
Reindent everything to K&R style with tabs
Used uncrustify, with the configuration file in ./doc/uncrustify.cfg
Commit author set to "Indent <please@skip.me>" so that it's easier to
skip while doing git blame.
Diffstat (limited to 'root_commands.c')
-rw-r--r-- | root_commands.c | 1806 |
1 files changed, 841 insertions, 965 deletions
diff --git a/root_commands.c b/root_commands.c index 1fa2d0ad..7e1dc2a7 100644 --- a/root_commands.c +++ b/root_commands.c @@ -1,4 +1,4 @@ - /********************************************************************\ +/********************************************************************\ * BitlBee -- An IRC to other IM-networks gateway * * * * Copyright 2002-2013 Wilmer van der Gaast and others * @@ -29,994 +29,891 @@ #include "help.h" #include "ipc.h" -void root_command_string( irc_t *irc, char *command ) +void root_command_string(irc_t *irc, char *command) { - root_command( irc, split_command_parts( command, 0 ) ); + root_command(irc, split_command_parts(command, 0)); } -#define MIN_ARGS( x, y... ) \ +#define MIN_ARGS(x, y ...) \ do \ { \ int blaat; \ - for( blaat = 0; blaat <= x; blaat ++ ) \ - if( cmd[blaat] == NULL ) \ + for (blaat = 0; blaat <= x; blaat++) { \ + if (cmd[blaat] == NULL) \ { \ - irc_rootmsg( irc, "Not enough parameters given (need %d).", x ); \ + irc_rootmsg(irc, "Not enough parameters given (need %d).", x); \ return y; \ - } \ - } while( 0 ) + } } \ + } while (0) -void root_command( irc_t *irc, char *cmd[] ) -{ +void root_command(irc_t *irc, char *cmd[]) +{ int i, len; - - if( !cmd[0] ) + + if (!cmd[0]) { return; - - len = strlen( cmd[0] ); - for( i = 0; root_commands[i].command; i++ ) - if( g_strncasecmp( root_commands[i].command, cmd[0], len ) == 0 ) - { - if( root_commands[i+1].command && - g_strncasecmp( root_commands[i+1].command, cmd[0], len ) == 0 ) - /* Only match on the first letters if the match is unique. */ - break; - - MIN_ARGS( root_commands[i].required_parameters ); - - root_commands[i].execute( irc, cmd ); + } + + len = strlen(cmd[0]); + for (i = 0; root_commands[i].command; i++) { + if (g_strncasecmp(root_commands[i].command, cmd[0], len) == 0) { + if (root_commands[i + 1].command && + g_strncasecmp(root_commands[i + 1].command, cmd[0], len) == 0) { + /* Only match on the first letters if the match is unique. */ + break; + } + + MIN_ARGS(root_commands[i].required_parameters); + + root_commands[i].execute(irc, cmd); return; } - - irc_rootmsg( irc, "Unknown command: %s. Please use \x02help commands\x02 to get a list of available commands.", cmd[0] ); + } + + irc_rootmsg(irc, "Unknown command: %s. Please use \x02help commands\x02 to get a list of available commands.", + cmd[0]); } -static void cmd_help( irc_t *irc, char **cmd ) +static void cmd_help(irc_t *irc, char **cmd) { char param[80]; int i; char *s; - - memset( param, 0, sizeof(param) ); - for ( i = 1; (cmd[i] != NULL && ( strlen(param) < (sizeof(param)-1) ) ); i++ ) { - if ( i != 1 ) // prepend space except for the first parameter + + memset(param, 0, sizeof(param)); + for (i = 1; (cmd[i] != NULL && (strlen(param) < (sizeof(param) - 1))); i++) { + if (i != 1) { // prepend space except for the first parameter strcat(param, " "); - strncat( param, cmd[i], sizeof(param) - strlen(param) - 1 ); + } + strncat(param, cmd[i], sizeof(param) - strlen(param) - 1); } - s = help_get( &(global.help), param ); - if( !s ) s = help_get( &(global.help), "" ); - - if( s ) - { - irc_rootmsg( irc, "%s", s ); - g_free( s ); + s = help_get(&(global.help), param); + if (!s) { + s = help_get(&(global.help), ""); } - else - { - irc_rootmsg( irc, "Error opening helpfile." ); + + if (s) { + irc_rootmsg(irc, "%s", s); + g_free(s); + } else { + irc_rootmsg(irc, "Error opening helpfile."); } } -static void cmd_account( irc_t *irc, char **cmd ); -static void bitlbee_whatsnew( irc_t *irc ); +static void cmd_account(irc_t *irc, char **cmd); +static void bitlbee_whatsnew(irc_t *irc); -static void cmd_identify( irc_t *irc, char **cmd ) +static void cmd_identify(irc_t *irc, char **cmd) { storage_status_t status; gboolean load = TRUE; char *password = cmd[1]; - - if( irc->status & USTATUS_IDENTIFIED ) - { - irc_rootmsg( irc, "You're already logged in." ); + + if (irc->status & USTATUS_IDENTIFIED) { + irc_rootmsg(irc, "You're already logged in."); return; } - - if( cmd[1] == NULL ) - { - } - else if( strncmp( cmd[1], "-no", 3 ) == 0 ) - { + + if (cmd[1] == NULL) { + } else if (strncmp(cmd[1], "-no", 3) == 0) { load = FALSE; password = cmd[2]; - if( password == NULL ) + if (password == NULL) { irc->status |= OPER_HACK_IDENTIFY_NOLOAD; - } - else if( strncmp( cmd[1], "-force", 6 ) == 0 ) - { + } + } else if (strncmp(cmd[1], "-force", 6) == 0) { password = cmd[2]; - if( password == NULL ) + if (password == NULL) { irc->status |= OPER_HACK_IDENTIFY_FORCE; - } - else if( irc->b->accounts != NULL ) - { - irc_rootmsg( irc, - "You're trying to identify yourself, but already have " - "at least one IM account set up. " - "Use \x02identify -noload\x02 or \x02identify -force\x02 " - "instead (see \x02help identify\x02)." ); + } + } else if (irc->b->accounts != NULL) { + irc_rootmsg(irc, + "You're trying to identify yourself, but already have " + "at least one IM account set up. " + "Use \x02identify -noload\x02 or \x02identify -force\x02 " + "instead (see \x02help identify\x02)."); return; } - - if( password == NULL ) - { - irc_rootmsg( irc, "About to identify, use /OPER to enter the password" ); + + if (password == NULL) { + irc_rootmsg(irc, "About to identify, use /OPER to enter the password"); irc->status |= OPER_HACK_IDENTIFY; return; } - - if( load ) - status = storage_load( irc, password ); - else - status = storage_check_pass( irc->user->nick, password ); - + + if (load) { + status = storage_load(irc, password); + } else { + status = storage_check_pass(irc->user->nick, password); + } + switch (status) { case STORAGE_INVALID_PASSWORD: - irc_rootmsg( irc, "Incorrect password" ); + irc_rootmsg(irc, "Incorrect password"); break; case STORAGE_NO_SUCH_USER: - irc_rootmsg( irc, "The nick is (probably) not registered" ); + irc_rootmsg(irc, "The nick is (probably) not registered"); break; case STORAGE_OK: - irc_rootmsg( irc, "Password accepted%s", - load ? ", settings and accounts loaded" : "" ); - irc_setpass( irc, password ); + irc_rootmsg(irc, "Password accepted%s", + load ? ", settings and accounts loaded" : ""); + irc_setpass(irc, password); irc->status |= USTATUS_IDENTIFIED; - irc_umode_set( irc, "+R", 1 ); - - bitlbee_whatsnew( irc ); - + irc_umode_set(irc, "+R", 1); + + bitlbee_whatsnew(irc); + /* The following code is a bit hairy now. With takeover support, we shouldn't immediately auto_connect in case we're going to offer taking over an existing session. Do it in 200ms since that should give the parent process enough time to come back to us. */ - if( load ) - { - irc_channel_auto_joins( irc, NULL ); - if( !set_getbool( &irc->default_channel->set, "auto_join" ) ) - irc_channel_del_user( irc->default_channel, irc->user, - IRC_CDU_PART, "auto_join disabled " - "for this channel." ); - if( set_getbool( &irc->b->set, "auto_connect" ) ) - irc->login_source_id = b_timeout_add( 200, - cmd_identify_finish, irc ); + if (load) { + irc_channel_auto_joins(irc, NULL); + if (!set_getbool(&irc->default_channel->set, "auto_join")) { + irc_channel_del_user(irc->default_channel, irc->user, + IRC_CDU_PART, "auto_join disabled " + "for this channel."); + } + if (set_getbool(&irc->b->set, "auto_connect")) { + irc->login_source_id = b_timeout_add(200, + cmd_identify_finish, irc); + } } - + /* If ipc_child_identify() returns FALSE, it means we're already sure that there's no takeover target (only possible in 1-process daemon mode). Start auto_connect immediately. */ - if( !ipc_child_identify( irc ) && load ) - cmd_identify_finish( irc, 0, 0 ); - + if (!ipc_child_identify(irc) && load) { + cmd_identify_finish(irc, 0, 0); + } + break; case STORAGE_OTHER_ERROR: default: - irc_rootmsg( irc, "Unknown error while loading configuration" ); + irc_rootmsg(irc, "Unknown error while loading configuration"); break; } } -gboolean cmd_identify_finish( gpointer data, gint fd, b_input_condition cond ) +gboolean cmd_identify_finish(gpointer data, gint fd, b_input_condition cond) { char *account_on[] = { "account", "on", NULL }; irc_t *irc = data; - - if( set_getbool( &irc->b->set, "auto_connect" ) ) - cmd_account( irc, account_on ); - - b_event_remove( irc->login_source_id ); + + if (set_getbool(&irc->b->set, "auto_connect")) { + cmd_account(irc, account_on); + } + + b_event_remove(irc->login_source_id); irc->login_source_id = -1; return FALSE; } -static void cmd_register( irc_t *irc, char **cmd ) +static void cmd_register(irc_t *irc, char **cmd) { char s[16]; - - if( global.conf->authmode == AUTHMODE_REGISTERED ) - { - irc_rootmsg( irc, "This server does not allow registering new accounts" ); + + if (global.conf->authmode == AUTHMODE_REGISTERED) { + irc_rootmsg(irc, "This server does not allow registering new accounts"); return; } - - if( cmd[1] == NULL ) - { - irc_rootmsg( irc, "About to register, use /OPER to enter the password" ); + + if (cmd[1] == NULL) { + irc_rootmsg(irc, "About to register, use /OPER to enter the password"); irc->status |= OPER_HACK_REGISTER; return; } - switch( storage_save( irc, cmd[1], FALSE ) ) { - case STORAGE_ALREADY_EXISTS: - irc_rootmsg( irc, "Nick is already registered" ); - break; - - case STORAGE_OK: - irc_rootmsg( irc, "Account successfully created" ); - irc_setpass( irc, cmd[1] ); - irc->status |= USTATUS_IDENTIFIED; - irc_umode_set( irc, "+R", 1 ); - - /* Set this var now, or anyone who logs in to his/her - newly created account for the first time gets the - whatsnew story. */ - g_snprintf( s, sizeof( s ), "%d", BITLBEE_VERSION_CODE ); - set_setstr( &irc->b->set, "last_version", s ); - break; + switch (storage_save(irc, cmd[1], FALSE)) { + case STORAGE_ALREADY_EXISTS: + irc_rootmsg(irc, "Nick is already registered"); + break; - default: - irc_rootmsg( irc, "Error registering" ); - break; + case STORAGE_OK: + irc_rootmsg(irc, "Account successfully created"); + irc_setpass(irc, cmd[1]); + irc->status |= USTATUS_IDENTIFIED; + irc_umode_set(irc, "+R", 1); + + /* Set this var now, or anyone who logs in to his/her + newly created account for the first time gets the + whatsnew story. */ + g_snprintf(s, sizeof(s), "%d", BITLBEE_VERSION_CODE); + set_setstr(&irc->b->set, "last_version", s); + break; + + default: + irc_rootmsg(irc, "Error registering"); + break; } } -static void cmd_drop( irc_t *irc, char **cmd ) +static void cmd_drop(irc_t *irc, char **cmd) { storage_status_t status; - - status = storage_remove (irc->user->nick, cmd[1]); + + status = storage_remove(irc->user->nick, cmd[1]); switch (status) { case STORAGE_NO_SUCH_USER: - irc_rootmsg( irc, "That account does not exist" ); + irc_rootmsg(irc, "That account does not exist"); break; case STORAGE_INVALID_PASSWORD: - irc_rootmsg( irc, "Password invalid" ); + irc_rootmsg(irc, "Password invalid"); break; case STORAGE_OK: - irc_setpass( irc, NULL ); + irc_setpass(irc, NULL); irc->status &= ~USTATUS_IDENTIFIED; - irc_umode_set( irc, "-R", 1 ); - irc_rootmsg( irc, "Account `%s' removed", irc->user->nick ); + irc_umode_set(irc, "-R", 1); + irc_rootmsg(irc, "Account `%s' removed", irc->user->nick); break; default: - irc_rootmsg( irc, "Error: `%d'", status ); + irc_rootmsg(irc, "Error: `%d'", status); break; } } -static void cmd_save( irc_t *irc, char **cmd ) +static void cmd_save(irc_t *irc, char **cmd) { - if( ( irc->status & USTATUS_IDENTIFIED ) == 0 ) - irc_rootmsg( irc, "Please create an account first (see \x02help register\x02)" ); - else if( storage_save( irc, NULL, TRUE ) == STORAGE_OK ) - irc_rootmsg( irc, "Configuration saved" ); - else - irc_rootmsg( irc, "Configuration could not be saved!" ); + if ((irc->status & USTATUS_IDENTIFIED) == 0) { + irc_rootmsg(irc, "Please create an account first (see \x02help register\x02)"); + } else if (storage_save(irc, NULL, TRUE) == STORAGE_OK) { + irc_rootmsg(irc, "Configuration saved"); + } else { + irc_rootmsg(irc, "Configuration could not be saved!"); + } } -static void cmd_showset( irc_t *irc, set_t **head, char *key ) +static void cmd_showset(irc_t *irc, set_t **head, char *key) { set_t *set; char *val; - - if( ( val = set_getstr( head, key ) ) ) - irc_rootmsg( irc, "%s = `%s'", key, val ); - else if( !( set = set_find( head, key ) ) ) - { - irc_rootmsg( irc, "Setting `%s' does not exist.", key ); - if( *head == irc->b->set ) - irc_rootmsg( irc, "It might be an account or channel setting. " - "See \x02help account set\x02 and \x02help channel set\x02." ); + + if ((val = set_getstr(head, key))) { + irc_rootmsg(irc, "%s = `%s'", key, val); + } else if (!(set = set_find(head, key))) { + irc_rootmsg(irc, "Setting `%s' does not exist.", key); + if (*head == irc->b->set) { + irc_rootmsg(irc, "It might be an account or channel setting. " + "See \x02help account set\x02 and \x02help channel set\x02."); + } + } else if (set->flags & SET_PASSWORD) { + irc_rootmsg(irc, "%s = `********' (hidden)", key); + } else { + irc_rootmsg(irc, "%s is empty", key); } - else if( set->flags & SET_PASSWORD ) - irc_rootmsg( irc, "%s = `********' (hidden)", key ); - else - irc_rootmsg( irc, "%s is empty", key ); } -typedef set_t** (*cmd_set_findhead)( irc_t*, char* ); -typedef int (*cmd_set_checkflags)( irc_t*, set_t *set ); +typedef set_t** (*cmd_set_findhead)(irc_t*, char*); +typedef int (*cmd_set_checkflags)(irc_t*, set_t *set); -static int cmd_set_real( irc_t *irc, char **cmd, set_t **head, cmd_set_checkflags checkflags ) +static int cmd_set_real(irc_t *irc, char **cmd, set_t **head, cmd_set_checkflags checkflags) { char *set_name = NULL, *value = NULL; gboolean del = FALSE; - - if( cmd[1] && g_strncasecmp( cmd[1], "-del", 4 ) == 0 ) - { - MIN_ARGS( 2, 0 ); + + if (cmd[1] && g_strncasecmp(cmd[1], "-del", 4) == 0) { + MIN_ARGS(2, 0); set_name = cmd[2]; del = TRUE; - } - else - { + } else { set_name = cmd[1]; value = cmd[2]; } - - if( set_name && ( value || del ) ) - { - set_t *s = set_find( head, set_name ); + + if (set_name && (value || del)) { + set_t *s = set_find(head, set_name); int st; - - if( s && checkflags && checkflags( irc, s ) == 0 ) + + if (s && checkflags && checkflags(irc, s) == 0) { return 0; - - if( del ) - st = set_reset( head, set_name ); - else - st = set_setstr( head, set_name, value ); - - if( set_getstr( head, set_name ) == NULL && - set_find( head, set_name ) ) - { + } + + if (del) { + st = set_reset(head, set_name); + } else { + st = set_setstr(head, set_name, value); + } + + if (set_getstr(head, set_name) == NULL && + set_find(head, set_name)) { /* This happens when changing the passwd, for example. Showing these msgs instead gives slightly clearer feedback. */ - if( st ) - irc_rootmsg( irc, "Setting changed successfully" ); - else - irc_rootmsg( irc, "Failed to change setting" ); - } - else - { - cmd_showset( irc, head, set_name ); + if (st) { + irc_rootmsg(irc, "Setting changed successfully"); + } else { + irc_rootmsg(irc, "Failed to change setting"); + } + } else { + cmd_showset(irc, head, set_name); } - } - else if( set_name ) - { - cmd_showset( irc, head, set_name ); - } - else - { + } else if (set_name) { + cmd_showset(irc, head, set_name); + } else { set_t *s = *head; - while( s ) - { - if( set_isvisible( s ) ) - cmd_showset( irc, &s, s->key ); + while (s) { + if (set_isvisible(s)) { + cmd_showset(irc, &s, s->key); + } s = s->next; } } - + return 1; } -static int cmd_account_set_checkflags( irc_t *irc, set_t *s ) +static int cmd_account_set_checkflags(irc_t *irc, set_t *s) { account_t *a = s->data; - - if( a->ic && s && s->flags & ACC_SET_OFFLINE_ONLY ) - { - irc_rootmsg( irc, "This setting can only be changed when the account is %s-line", "off" ); + + if (a->ic && s && s->flags & ACC_SET_OFFLINE_ONLY) { + irc_rootmsg(irc, "This setting can only be changed when the account is %s-line", "off"); return 0; - } - else if( !a->ic && s && s->flags & ACC_SET_ONLINE_ONLY ) - { - irc_rootmsg( irc, "This setting can only be changed when the account is %s-line", "on" ); + } else if (!a->ic && s && s->flags & ACC_SET_ONLINE_ONLY) { + irc_rootmsg(irc, "This setting can only be changed when the account is %s-line", "on"); return 0; } - + return 1; } -static void cmd_account( irc_t *irc, char **cmd ) +static void cmd_account(irc_t *irc, char **cmd) { account_t *a; int len; - - if( global.conf->authmode == AUTHMODE_REGISTERED && !( irc->status & USTATUS_IDENTIFIED ) ) - { - irc_rootmsg( irc, "This server only accepts registered users" ); + + if (global.conf->authmode == AUTHMODE_REGISTERED && !(irc->status & USTATUS_IDENTIFIED)) { + irc_rootmsg(irc, "This server only accepts registered users"); return; } - - len = strlen( cmd[1] ); - - if( len >= 1 && g_strncasecmp( cmd[1], "add", len ) == 0 ) - { + + len = strlen(cmd[1]); + + if (len >= 1 && g_strncasecmp(cmd[1], "add", len) == 0) { struct prpl *prpl; - - MIN_ARGS( 3 ); - - if( cmd[4] == NULL ) - { - for( a = irc->b->accounts; a; a = a->next ) - if( strcmp( a->pass, PASSWORD_PENDING ) == 0 ) - { - irc_rootmsg( irc, "Enter password for account %s " - "first (use /OPER)", a->tag ); + + MIN_ARGS(3); + + if (cmd[4] == NULL) { + for (a = irc->b->accounts; a; a = a->next) { + if (strcmp(a->pass, PASSWORD_PENDING) == 0) { + irc_rootmsg(irc, "Enter password for account %s " + "first (use /OPER)", a->tag); return; } - + } + irc->status |= OPER_HACK_ACCOUNT_PASSWORD; } - - prpl = find_protocol( cmd[2] ); - - if( prpl == NULL ) - { - irc_rootmsg( irc, "Unknown protocol" ); + + prpl = find_protocol(cmd[2]); + + if (prpl == NULL) { + irc_rootmsg(irc, "Unknown protocol"); return; } - - for( a = irc->b->accounts; a; a = a->next ) - if( a->prpl == prpl && prpl->handle_cmp( a->user, cmd[3] ) == 0 ) - irc_rootmsg( irc, "Warning: You already have an account with " - "protocol `%s' and username `%s'. Are you accidentally " - "trying to add it twice?", prpl->name, cmd[3] ); - - a = account_add( irc->b, prpl, cmd[3], cmd[4] ? cmd[4] : PASSWORD_PENDING ); - if( cmd[5] ) - { - irc_rootmsg( irc, "Warning: Passing a servername/other flags to `account add' " - "is now deprecated. Use `account set' instead." ); - set_setstr( &a->set, "server", cmd[5] ); + + for (a = irc->b->accounts; a; a = a->next) { + if (a->prpl == prpl && prpl->handle_cmp(a->user, cmd[3]) == 0) { + irc_rootmsg(irc, "Warning: You already have an account with " + "protocol `%s' and username `%s'. Are you accidentally " + "trying to add it twice?", prpl->name, cmd[3]); + } + } + + a = account_add(irc->b, prpl, cmd[3], cmd[4] ? cmd[4] : PASSWORD_PENDING); + if (cmd[5]) { + irc_rootmsg(irc, "Warning: Passing a servername/other flags to `account add' " + "is now deprecated. Use `account set' instead."); + set_setstr(&a->set, "server", cmd[5]); } - - irc_rootmsg( irc, "Account successfully added with tag %s", a->tag ); - - if( cmd[4] == NULL ) - { - set_t *oauth = set_find( &a->set, "oauth" ); - if( oauth && bool2int( set_value( oauth ) ) ) - { + + irc_rootmsg(irc, "Account successfully added with tag %s", a->tag); + + if (cmd[4] == NULL) { + set_t *oauth = set_find(&a->set, "oauth"); + if (oauth && bool2int(set_value(oauth))) { *a->pass = '\0'; - irc_rootmsg( irc, "No need to enter a password for this " - "account since it's using OAuth" ); - } - else - { - irc_rootmsg( irc, "You can now use the /OPER command to " - "enter the password" ); - if( oauth ) - irc_rootmsg( irc, "Alternatively, enable OAuth if " - "the account supports it: account %s " - "set oauth on", a->tag ); + irc_rootmsg(irc, "No need to enter a password for this " + "account since it's using OAuth"); + } else { + irc_rootmsg(irc, "You can now use the /OPER command to " + "enter the password"); + if (oauth) { + irc_rootmsg(irc, "Alternatively, enable OAuth if " + "the account supports it: account %s " + "set oauth on", a->tag); + } } } - + return; - } - else if( len >= 1 && g_strncasecmp( cmd[1], "list", len ) == 0 ) - { + } else if (len >= 1 && g_strncasecmp(cmd[1], "list", len) == 0) { int i = 0; - - if( strchr( irc->umode, 'b' ) ) - irc_rootmsg( irc, "Account list:" ); - - for( a = irc->b->accounts; a; a = a->next ) - { + + if (strchr(irc->umode, 'b')) { + irc_rootmsg(irc, "Account list:"); + } + + for (a = irc->b->accounts; a; a = a->next) { char *con; - - if( a->ic && ( a->ic->flags & OPT_LOGGED_IN ) ) + + if (a->ic && (a->ic->flags & OPT_LOGGED_IN)) { con = " (connected)"; - else if( a->ic ) + } else if (a->ic) { con = " (connecting)"; - else if( a->reconnect ) + } else if (a->reconnect) { con = " (awaiting reconnect)"; - else + } else { con = ""; - - irc_rootmsg( irc, "%2d (%s): %s, %s%s", i, a->tag, a->prpl->name, a->user, con ); - - i ++; + } + + irc_rootmsg(irc, "%2d (%s): %s, %s%s", i, a->tag, a->prpl->name, a->user, con); + + i++; } - irc_rootmsg( irc, "End of account list" ); - + irc_rootmsg(irc, "End of account list"); + return; - } - else if( cmd[2] ) - { + } else if (cmd[2]) { /* Try the following two only if cmd[2] == NULL */ - } - else if( len >= 2 && g_strncasecmp( cmd[1], "on", len ) == 0 ) - { - if ( irc->b->accounts ) - { - irc_rootmsg( irc, "Trying to get all accounts connected..." ); - - for( a = irc->b->accounts; a; a = a->next ) - if( !a->ic && a->auto_connect ) - { - if( strcmp( a->pass, PASSWORD_PENDING ) == 0 ) - irc_rootmsg( irc, "Enter password for account %s " - "first (use /OPER)", a->tag ); - else - account_on( irc->b, a ); + } else if (len >= 2 && g_strncasecmp(cmd[1], "on", len) == 0) { + if (irc->b->accounts) { + irc_rootmsg(irc, "Trying to get all accounts connected..."); + + for (a = irc->b->accounts; a; a = a->next) { + if (!a->ic && a->auto_connect) { + if (strcmp(a->pass, PASSWORD_PENDING) == 0) { + irc_rootmsg(irc, "Enter password for account %s " + "first (use /OPER)", a->tag); + } else { + account_on(irc->b, a); + } } - } - else - { - irc_rootmsg( irc, "No accounts known. Use `account add' to add one." ); + } + } else { + irc_rootmsg(irc, "No accounts known. Use `account add' to add one."); } - + return; - } - else if( len >= 2 && g_strncasecmp( cmd[1], "off", len ) == 0 ) - { - irc_rootmsg( irc, "Deactivating all active (re)connections..." ); - - for( a = irc->b->accounts; a; a = a->next ) - { - if( a->ic ) - account_off( irc->b, a ); - else if( a->reconnect ) - cancel_auto_reconnect( a ); + } else if (len >= 2 && g_strncasecmp(cmd[1], "off", len) == 0) { + irc_rootmsg(irc, "Deactivating all active (re)connections..."); + + for (a = irc->b->accounts; a; a = a->next) { + if (a->ic) { + account_off(irc->b, a); + } else if (a->reconnect) { + cancel_auto_reconnect(a); + } } - + return; } - - MIN_ARGS( 2 ); - len = strlen( cmd[2] ); - + + MIN_ARGS(2); + len = strlen(cmd[2]); + /* At least right now, don't accept on/off/set/del as account IDs even if they're a proper match, since people not familiar with the new syntax yet may get a confusing/nasty surprise. */ - if( g_strcasecmp( cmd[1], "on" ) == 0 || - g_strcasecmp( cmd[1], "off" ) == 0 || - g_strcasecmp( cmd[1], "set" ) == 0 || - g_strcasecmp( cmd[1], "del" ) == 0 || - ( a = account_get( irc->b, cmd[1] ) ) == NULL ) - { - irc_rootmsg( irc, "Could not find account `%s'.", cmd[1] ); - + if (g_strcasecmp(cmd[1], "on") == 0 || + g_strcasecmp(cmd[1], "off") == 0 || + g_strcasecmp(cmd[1], "set") == 0 || + g_strcasecmp(cmd[1], "del") == 0 || + (a = account_get(irc->b, cmd[1])) == NULL) { + irc_rootmsg(irc, "Could not find account `%s'.", cmd[1]); + return; } - - if( len >= 1 && g_strncasecmp( cmd[2], "del", len ) == 0 ) - { - if( a->ic ) - { - irc_rootmsg( irc, "Account is still logged in, can't delete" ); - } - else - { - account_del( irc->b, a ); - irc_rootmsg( irc, "Account deleted" ); - } - } - else if( len >= 2 && g_strncasecmp( cmd[2], "on", len ) == 0 ) - { - if( a->ic ) - irc_rootmsg( irc, "Account already online" ); - else if( strcmp( a->pass, PASSWORD_PENDING ) == 0 ) - irc_rootmsg( irc, "Enter password for account %s " - "first (use /OPER)", a->tag ); - else - account_on( irc->b, a ); - } - else if( len >= 2 && g_strncasecmp( cmd[2], "off", len ) == 0 ) - { - if( a->ic ) - { - account_off( irc->b, a ); + + if (len >= 1 && g_strncasecmp(cmd[2], "del", len) == 0) { + if (a->ic) { + irc_rootmsg(irc, "Account is still logged in, can't delete"); + } else { + account_del(irc->b, a); + irc_rootmsg(irc, "Account deleted"); } - else if( a->reconnect ) - { - cancel_auto_reconnect( a ); - irc_rootmsg( irc, "Reconnect cancelled" ); + } else if (len >= 2 && g_strncasecmp(cmd[2], "on", len) == 0) { + if (a->ic) { + irc_rootmsg(irc, "Account already online"); + } else if (strcmp(a->pass, PASSWORD_PENDING) == 0) { + irc_rootmsg(irc, "Enter password for account %s " + "first (use /OPER)", a->tag); + } else { + account_on(irc->b, a); } - else - { - irc_rootmsg( irc, "Account already offline" ); + } else if (len >= 2 && g_strncasecmp(cmd[2], "off", len) == 0) { + if (a->ic) { + account_off(irc->b, a); + } else if (a->reconnect) { + cancel_auto_reconnect(a); + irc_rootmsg(irc, "Reconnect cancelled"); + } else { + irc_rootmsg(irc, "Account already offline"); } - } - else if( len >= 1 && g_strncasecmp( cmd[2], "set", len ) == 0 ) - { - cmd_set_real( irc, cmd + 2, &a->set, cmd_account_set_checkflags ); - } - else - { - irc_rootmsg( irc, "Unknown command: %s [...] %s. Please use \x02help commands\x02 to get a list of available commands.", "account", cmd[2] ); + } else if (len >= 1 && g_strncasecmp(cmd[2], "set", len) == 0) { + cmd_set_real(irc, cmd + 2, &a->set, cmd_account_set_checkflags); + } else { + irc_rootmsg(irc, + "Unknown command: %s [...] %s. Please use \x02help commands\x02 to get a list of available commands.", "account", + cmd[2]); } } -static void cmd_channel( irc_t *irc, char **cmd ) +static void cmd_channel(irc_t *irc, char **cmd) { irc_channel_t *ic; int len; - - len = strlen( cmd[1] ); - - if( len >= 1 && g_strncasecmp( cmd[1], "list", len ) == 0 ) - { + + len = strlen(cmd[1]); + + if (len >= 1 && g_strncasecmp(cmd[1], "list", len) == 0) { GSList *l; int i = 0; - - if( strchr( irc->umode, 'b' ) ) - irc_rootmsg( irc, "Channel list:" ); - - for( l = irc->channels; l; l = l->next ) - { + + if (strchr(irc->umode, 'b')) { + irc_rootmsg(irc, "Channel list:"); + } + + for (l = irc->channels; l; l = l->next) { irc_channel_t *ic = l->data; - - irc_rootmsg( irc, "%2d. %s, %s channel%s", i, ic->name, - set_getstr( &ic->set, "type" ), - ic->flags & IRC_CHANNEL_JOINED ? " (joined)" : "" ); - - i ++; + + irc_rootmsg(irc, "%2d. %s, %s channel%s", i, ic->name, + set_getstr(&ic->set, "type"), + ic->flags & IRC_CHANNEL_JOINED ? " (joined)" : ""); + + i++; } - irc_rootmsg( irc, "End of channel list" ); - + irc_rootmsg(irc, "End of channel list"); + return; } - - if( ( ic = irc_channel_get( irc, cmd[1] ) ) == NULL ) - { + + if ((ic = irc_channel_get(irc, cmd[1])) == NULL) { /* If this doesn't match any channel, maybe this is the short syntax (only works when used inside a channel). */ - if( ( ic = irc->root->last_channel ) && - ( len = strlen( cmd[1] ) ) && - g_strncasecmp( cmd[1], "set", len ) == 0 ) - cmd_set_real( irc, cmd + 1, &ic->set, NULL ); - else - irc_rootmsg( irc, "Could not find channel `%s'", cmd[1] ); - + if ((ic = irc->root->last_channel) && + (len = strlen(cmd[1])) && + g_strncasecmp(cmd[1], "set", len) == 0) { + cmd_set_real(irc, cmd + 1, &ic->set, NULL); + } else { + irc_rootmsg(irc, "Could not find channel `%s'", cmd[1]); + } + return; } - - MIN_ARGS( 2 ); - len = strlen( cmd[2] ); - - if( len >= 1 && g_strncasecmp( cmd[2], "set", len ) == 0 ) - { - cmd_set_real( irc, cmd + 2, &ic->set, NULL ); - } - else if( len >= 1 && g_strncasecmp( cmd[2], "del", len ) == 0 ) - { - if( !( ic->flags & IRC_CHANNEL_JOINED ) && - ic != ic->irc->default_channel ) - { - irc_rootmsg( irc, "Channel %s deleted.", ic->name ); - irc_channel_free( ic ); + + MIN_ARGS(2); + len = strlen(cmd[2]); + + if (len >= 1 && g_strncasecmp(cmd[2], "set", len) == 0) { + cmd_set_real(irc, cmd + 2, &ic->set, NULL); + } else if (len >= 1 && g_strncasecmp(cmd[2], "del", len) == 0) { + if (!(ic->flags & IRC_CHANNEL_JOINED) && + ic != ic->irc->default_channel) { + irc_rootmsg(irc, "Channel %s deleted.", ic->name); + irc_channel_free(ic); + } else { + irc_rootmsg(irc, "Couldn't remove channel (main channel %s or " + "channels you're still in cannot be deleted).", + irc->default_channel->name); } - else - irc_rootmsg( irc, "Couldn't remove channel (main channel %s or " - "channels you're still in cannot be deleted).", - irc->default_channel->name ); - } - else - { - irc_rootmsg( irc, "Unknown command: %s [...] %s. Please use \x02help commands\x02 to get a list of available commands.", "channel", cmd[1] ); + } else { + irc_rootmsg(irc, + "Unknown command: %s [...] %s. Please use \x02help commands\x02 to get a list of available commands.", "channel", + cmd[1]); } } -static void cmd_add( irc_t *irc, char **cmd ) +static void cmd_add(irc_t *irc, char **cmd) { account_t *a; int add_on_server = 1; char *handle = NULL, *s; - - if( g_strcasecmp( cmd[1], "-tmp" ) == 0 ) - { - MIN_ARGS( 3 ); + + if (g_strcasecmp(cmd[1], "-tmp") == 0) { + MIN_ARGS(3); add_on_server = 0; - cmd ++; + cmd++; } - - if( !( a = account_get( irc->b, cmd[1] ) ) ) - { - irc_rootmsg( irc, "Invalid account" ); + + if (!(a = account_get(irc->b, cmd[1]))) { + irc_rootmsg(irc, "Invalid account"); return; - } - else if( !( a->ic && ( a->ic->flags & OPT_LOGGED_IN ) ) ) - { - irc_rootmsg( irc, "That account is not on-line" ); + } else if (!(a->ic && (a->ic->flags & OPT_LOGGED_IN))) { + irc_rootmsg(irc, "That account is not on-line"); return; } - - if( cmd[3] ) - { - if( !nick_ok( irc, cmd[3] ) ) - { - irc_rootmsg( irc, "The requested nick `%s' is invalid", cmd[3] ); + + if (cmd[3]) { + if (!nick_ok(irc, cmd[3])) { + irc_rootmsg(irc, "The requested nick `%s' is invalid", cmd[3]); return; - } - else if( irc_user_by_name( irc, cmd[3] ) ) - { - irc_rootmsg( irc, "The requested nick `%s' already exists", cmd[3] ); + } else if (irc_user_by_name(irc, cmd[3])) { + irc_rootmsg(irc, "The requested nick `%s' already exists", cmd[3]); return; - } - else - { - nick_set_raw( a, cmd[2], cmd[3] ); + } else { + nick_set_raw(a, cmd[2], cmd[3]); } } - - if( ( a->flags & ACC_FLAG_HANDLE_DOMAINS ) && cmd[2][0] != '_' && - ( !( s = strchr( cmd[2], '@' ) ) || s[1] == '\0' ) ) - { + + if ((a->flags & ACC_FLAG_HANDLE_DOMAINS) && cmd[2][0] != '_' && + (!(s = strchr(cmd[2], '@')) || s[1] == '\0')) { /* If there's no @ or it's the last char, append the user's domain name now. Exclude handles starting with a _ so adding _xmlconsole will keep working. */ - if( s ) + if (s) { *s = '\0'; - if( ( s = strchr( a->user, '@' ) ) ) - cmd[2] = handle = g_strconcat( cmd[2], s, NULL ); + } + if ((s = strchr(a->user, '@'))) { + cmd[2] = handle = g_strconcat(cmd[2], s, NULL); + } } - - if( add_on_server ) - { + + if (add_on_server) { irc_channel_t *ic; char *s, *group = NULL;; - - if( ( ic = irc->root->last_channel ) && - ( s = set_getstr( &ic->set, "fill_by" ) ) && - strcmp( s, "group" ) == 0 && - ( group = set_getstr( &ic->set, "group" ) ) ) - irc_rootmsg( irc, "Adding `%s' to contact list (group %s)", - cmd[2], group ); - else - irc_rootmsg( irc, "Adding `%s' to contact list", cmd[2] ); - - a->prpl->add_buddy( a->ic, cmd[2], group ); - } - else - { + + if ((ic = irc->root->last_channel) && + (s = set_getstr(&ic->set, "fill_by")) && + strcmp(s, "group") == 0 && + (group = set_getstr(&ic->set, "group"))) { + irc_rootmsg(irc, "Adding `%s' to contact list (group %s)", + cmd[2], group); + } else { + irc_rootmsg(irc, "Adding `%s' to contact list", cmd[2]); + } + + a->prpl->add_buddy(a->ic, cmd[2], group); + } else { bee_user_t *bu; irc_user_t *iu; - + /* Only for add -tmp. For regular adds, this callback will be called once the IM server confirms. */ - if( ( bu = bee_user_new( irc->b, a->ic, cmd[2], BEE_USER_LOCAL ) ) && - ( iu = bu->ui_data ) ) - irc_rootmsg( irc, "Temporarily assigned nickname `%s' " - "to contact `%s'", iu->nick, cmd[2] ); + if ((bu = bee_user_new(irc->b, a->ic, cmd[2], BEE_USER_LOCAL)) && + (iu = bu->ui_data)) { + irc_rootmsg(irc, "Temporarily assigned nickname `%s' " + "to contact `%s'", iu->nick, cmd[2]); + } } - - g_free( handle ); + + g_free(handle); } -static void cmd_remove( irc_t *irc, char **cmd ) +static void cmd_remove(irc_t *irc, char **cmd) { irc_user_t *iu; bee_user_t *bu; char *s; - - if( !( iu = irc_user_by_name( irc, cmd[1] ) ) || !( bu = iu->bu ) ) - { - irc_rootmsg( irc, "Buddy `%s' not found", cmd[1] ); + + if (!(iu = irc_user_by_name(irc, cmd[1])) || !(bu = iu->bu)) { + irc_rootmsg(irc, "Buddy `%s' not found", cmd[1]); return; } - s = g_strdup( bu->handle ); - - bu->ic->acc->prpl->remove_buddy( bu->ic, bu->handle, NULL ); - nick_del( bu ); - if( g_slist_find( irc->users, iu ) ) - bee_user_free( irc->b, bu ); - - irc_rootmsg( irc, "Buddy `%s' (nick %s) removed from contact list", s, cmd[1] ); - g_free( s ); - + s = g_strdup(bu->handle); + + bu->ic->acc->prpl->remove_buddy(bu->ic, bu->handle, NULL); + nick_del(bu); + if (g_slist_find(irc->users, iu)) { + bee_user_free(irc->b, bu); + } + + irc_rootmsg(irc, "Buddy `%s' (nick %s) removed from contact list", s, cmd[1]); + g_free(s); + return; } -static void cmd_info( irc_t *irc, char **cmd ) +static void cmd_info(irc_t *irc, char **cmd) { struct im_connection *ic; account_t *a; - - if( !cmd[2] ) - { - irc_user_t *iu = irc_user_by_name( irc, cmd[1] ); - if( !iu || !iu->bu ) - { - irc_rootmsg( irc, "Nick `%s' does not exist", cmd[1] ); + + if (!cmd[2]) { + irc_user_t *iu = irc_user_by_name(irc, cmd[1]); + if (!iu || !iu->bu) { + irc_rootmsg(irc, "Nick `%s' does not exist", cmd[1]); return; } ic = iu->bu->ic; cmd[2] = iu->bu->handle; - } - else if( !( a = account_get( irc->b, cmd[1] ) ) ) - { - irc_rootmsg( irc, "Invalid account" ); + } else if (!(a = account_get(irc->b, cmd[1]))) { + irc_rootmsg(irc, "Invalid account"); return; - } - else if( !( ( ic = a->ic ) && ( a->ic->flags & OPT_LOGGED_IN ) ) ) - { - irc_rootmsg( irc, "That account is not on-line" ); + } else if (!((ic = a->ic) && (a->ic->flags & OPT_LOGGED_IN))) { + irc_rootmsg(irc, "That account is not on-line"); return; } - - if( !ic->acc->prpl->get_info ) - { - irc_rootmsg( irc, "Command `%s' not supported by this protocol", cmd[0] ); - } - else - { - ic->acc->prpl->get_info( ic, cmd[2] ); + + if (!ic->acc->prpl->get_info) { + irc_rootmsg(irc, "Command `%s' not supported by this protocol", cmd[0]); + } else { + ic->acc->prpl->get_info(ic, cmd[2]); } } -static void cmd_rename( irc_t *irc, char **cmd ) +static void cmd_rename(irc_t *irc, char **cmd) { irc_user_t *iu, *old; - gboolean del = g_strcasecmp( cmd[1], "-del" ) == 0; - - iu = irc_user_by_name( irc, cmd[del ? 2 : 1] ); - - if( iu == NULL ) - { - irc_rootmsg( irc, "Nick `%s' does not exist", cmd[1] ); - } - else if( del ) - { - if( iu->bu ) - bee_irc_user_nick_reset( iu ); - irc_rootmsg( irc, "Nickname reset to `%s'", iu->nick ); - } - else if( iu == irc->user ) - { - irc_rootmsg( irc, "Use /nick to change your own nickname" ); - } - else if( !nick_ok( irc, cmd[2] ) ) - { - irc_rootmsg( irc, "Nick `%s' is invalid", cmd[2] ); - } - else if( ( old = irc_user_by_name( irc, cmd[2] ) ) && old != iu ) - { - irc_rootmsg( irc, "Nick `%s' already exists", cmd[2] ); - } - else - { - if( !irc_user_set_nick( iu, cmd[2] ) ) - { - irc_rootmsg( irc, "Error while changing nick" ); + gboolean del = g_strcasecmp(cmd[1], "-del") == 0; + + iu = irc_user_by_name(irc, cmd[del ? 2 : 1]); + + if (iu == NULL) { + irc_rootmsg(irc, "Nick `%s' does not exist", cmd[1]); + } else if (del) { + if (iu->bu) { + bee_irc_user_nick_reset(iu); + } + irc_rootmsg(irc, "Nickname reset to `%s'", iu->nick); + } else if (iu == irc->user) { + irc_rootmsg(irc, "Use /nick to change your own nickname"); + } else if (!nick_ok(irc, cmd[2])) { + irc_rootmsg(irc, "Nick `%s' is invalid", cmd[2]); + } else if ((old = irc_user_by_name(irc, cmd[2])) && old != iu) { + irc_rootmsg(irc, "Nick `%s' already exists", cmd[2]); + } else { + if (!irc_user_set_nick(iu, cmd[2])) { + irc_rootmsg(irc, "Error while changing nick"); return; } - - if( iu == irc->root ) - { + + if (iu == irc->root) { /* If we're called internally (user did "set root_nick"), let's not go O(INF). :-) */ - if( strcmp( cmd[0], "set_rename" ) != 0 ) - set_setstr( &irc->b->set, "root_nick", cmd[2] ); - } - else if( iu->bu ) - { - nick_set( iu->bu, cmd[2] ); + if (strcmp(cmd[0], "set_rename") != 0) { + set_setstr(&irc->b->set, "root_nick", cmd[2]); + } + } else if (iu->bu) { + nick_set(iu->bu, cmd[2]); } - - irc_rootmsg( irc, "Nick successfully changed" ); + + irc_rootmsg(irc, "Nick successfully changed"); } } -char *set_eval_root_nick( set_t *set, char *new_nick ) +char *set_eval_root_nick(set_t *set, char *new_nick) { irc_t *irc = set->data; - - if( strcmp( irc->root->nick, new_nick ) != 0 ) - { + + if (strcmp(irc->root->nick, new_nick) != 0) { char *cmd[] = { "set_rename", irc->root->nick, new_nick, NULL }; - - cmd_rename( irc, cmd ); + + cmd_rename(irc, cmd); } - - return strcmp( irc->root->nick, new_nick ) == 0 ? new_nick : SET_INVALID; + + return strcmp(irc->root->nick, new_nick) == 0 ? new_nick : SET_INVALID; } -static void cmd_block( irc_t *irc, char **cmd ) +static void cmd_block(irc_t *irc, char **cmd) { struct im_connection *ic; account_t *a; - - if( !cmd[2] && ( a = account_get( irc->b, cmd[1] ) ) && a->ic ) - { + + if (!cmd[2] && (a = account_get(irc->b, cmd[1])) && a->ic) { char *format; GSList *l; - - if( strchr( irc->umode, 'b' ) != NULL ) + + if (strchr(irc->umode, 'b') != NULL) { format = "%s\t%s"; - else + } else { format = "%-32.32s %-16.16s"; - - irc_rootmsg( irc, format, "Handle", "Nickname" ); - for( l = a->ic->deny; l; l = l->next ) - { - bee_user_t *bu = bee_user_by_handle( irc->b, a->ic, l->data ); + } + + irc_rootmsg(irc, format, "Handle", "Nickname"); + for (l = a->ic->deny; l; l = l->next) { + bee_user_t *bu = bee_user_by_handle(irc->b, a->ic, l->data); irc_user_t *iu = bu ? bu->ui_data : NULL; - irc_rootmsg( irc, format, l->data, iu ? iu->nick : "(none)" ); + irc_rootmsg(irc, format, l->data, iu ? iu->nick : "(none)"); } - irc_rootmsg( irc, "End of list." ); - + irc_rootmsg(irc, "End of list."); + return; - } - else if( !cmd[2] ) - { - irc_user_t *iu = irc_user_by_name( irc, cmd[1] ); - if( !iu || !iu->bu ) - { - irc_rootmsg( irc, "Nick `%s' does not exist", cmd[1] ); + } else if (!cmd[2]) { + irc_user_t *iu = irc_user_by_name(irc, cmd[1]); + if (!iu || !iu->bu) { + irc_rootmsg(irc, "Nick `%s' does not exist", cmd[1]); return; } ic = iu->bu->ic; cmd[2] = iu->bu->handle; - } - else if( !( a = account_get( irc->b, cmd[1] ) ) ) - { - irc_rootmsg( irc, "Invalid account" ); + } else if (!(a = account_get(irc->b, cmd[1]))) { + irc_rootmsg(irc, "Invalid account"); return; - } - else if( !( ( ic = a->ic ) && ( a->ic->flags & OPT_LOGGED_IN ) ) ) - { - irc_rootmsg( irc, "That account is not on-line" ); + } else if (!((ic = a->ic) && (a->ic->flags & OPT_LOGGED_IN))) { + irc_rootmsg(irc, "That account is not on-line"); return; } - - if( !ic->acc->prpl->add_deny || !ic->acc->prpl->rem_permit ) - { - irc_rootmsg( irc, "Command `%s' not supported by this protocol", cmd[0] ); - } - else - { - imc_rem_allow( ic, cmd[2] ); - imc_add_block( ic, cmd[2] ); - irc_rootmsg( irc, "Buddy `%s' moved from allow- to block-list", cmd[2] ); + + if (!ic->acc->prpl->add_deny || !ic->acc->prpl->rem_permit) { + irc_rootmsg(irc, "Command `%s' not supported by this protocol", cmd[0]); + } else { + imc_rem_allow(ic, cmd[2]); + imc_add_block(ic, cmd[2]); + irc_rootmsg(irc, "Buddy `%s' moved from allow- to block-list", cmd[2]); } } -static void cmd_allow( irc_t *irc, char **cmd ) +static void cmd_allow(irc_t *irc, char **cmd) { struct im_connection *ic; account_t *a; - - if( !cmd[2] && ( a = account_get( irc->b, cmd[1] ) ) && a->ic ) - { + + if (!cmd[2] && (a = account_get(irc->b, cmd[1])) && a->ic) { char *format; GSList *l; - - if( strchr( irc->umode, 'b' ) != NULL ) + + if (strchr(irc->umode, 'b') != NULL) { format = "%s\t%s"; - else + } else { format = "%-32.32s %-16.16s"; - - irc_rootmsg( irc, format, "Handle", "Nickname" ); - for( l = a->ic->permit; l; l = l->next ) - { - bee_user_t *bu = bee_user_by_handle( irc->b, a->ic, l->data ); + } + + irc_rootmsg(irc, format, "Handle", "Nickname"); + for (l = a->ic->permit; l; l = l->next) { + bee_user_t *bu = bee_user_by_handle(irc->b, a->ic, l->data); irc_user_t *iu = bu ? bu->ui_data : NULL; - irc_rootmsg( irc, format, l->data, iu ? iu->nick : "(none)" ); + irc_rootmsg(irc, format, l->data, iu ? iu->nick : "(none)"); } - irc_rootmsg( irc, "End of list." ); - + irc_rootmsg(irc, "End of list."); + return; - } - else if( !cmd[2] ) - { - irc_user_t *iu = irc_user_by_name( irc, cmd[1] ); - if( !iu || !iu->bu ) - { - irc_rootmsg( irc, "Nick `%s' does not exist", cmd[1] ); + } else if (!cmd[2]) { + irc_user_t *iu = irc_user_by_name(irc, cmd[1]); + if (!iu || !iu->bu) { + irc_rootmsg(irc, "Nick `%s' does not exist", cmd[1]); return; } ic = iu->bu->ic; cmd[2] = iu->bu->handle; - } - else if( !( a = account_get( irc->b, cmd[1] ) ) ) - { - irc_rootmsg( irc, "Invalid account" ); + } else if (!(a = account_get(irc->b, cmd[1]))) { + irc_rootmsg(irc, "Invalid account"); return; - } - else if( !( ( ic = a->ic ) && ( a->ic->flags & OPT_LOGGED_IN ) ) ) - { - irc_rootmsg( irc, "That account is not on-line" ); + } else if (!((ic = a->ic) && (a->ic->flags & OPT_LOGGED_IN))) { + irc_rootmsg(irc, "That account is not on-line"); return; } - - if( !ic->acc->prpl->rem_deny || !ic->acc->prpl->add_permit ) - { - irc_rootmsg( irc, "Command `%s' not supported by this protocol", cmd[0] ); - } - else - { - imc_rem_block( ic, cmd[2] ); - imc_add_allow( ic, cmd[2] ); - - irc_rootmsg( irc, "Buddy `%s' moved from block- to allow-list", cmd[2] ); + + if (!ic->acc->prpl->rem_deny || !ic->acc->prpl->add_permit) { + irc_rootmsg(irc, "Command `%s' not supported by this protocol", cmd[0]); + } else { + imc_rem_block(ic, cmd[2]); + imc_add_allow(ic, cmd[2]); + + irc_rootmsg(irc, "Buddy `%s' moved from block- to allow-list", cmd[2]); } } -static void cmd_yesno( irc_t *irc, char **cmd ) +static void cmd_yesno(irc_t *irc, char **cmd) { query_t *q = NULL; int numq = 0; - - if( irc->queries == NULL ) - { + + if (irc->queries == NULL) { /* Alright, alright, let's add a tiny easter egg here. */ static irc_t *last_irc = NULL; static time_t last_time = 0; @@ -1028,61 +925,57 @@ static void cmd_yesno( irc_t *irc, char **cmd ) "Yes?", "No?", }; - - if( last_irc == irc && time( NULL ) - last_time < 15 ) - { - if( ( ++times >= 3 ) ) - { - irc_rootmsg( irc, "%s", msg[rand()%(sizeof(msg)/sizeof(char*))] ); + + if (last_irc == irc && time(NULL) - last_time < 15) { + if ((++times >= 3)) { + irc_rootmsg(irc, "%s", msg[rand() % (sizeof(msg) / sizeof(char*))]); last_irc = NULL; times = 0; return; } - } - else - { - last_time = time( NULL ); + } else { + last_time = time(NULL); last_irc = irc; times = 0; } - - irc_rootmsg( irc, "Did I ask you something?" ); + + irc_rootmsg(irc, "Did I ask you something?"); return; } - + /* If there's an argument, the user seems to want to answer another question than the first/last (depending on the query_order setting) one. */ - if( cmd[1] ) - { - if( sscanf( cmd[1], "%d", &numq ) != 1 ) - { - irc_rootmsg( irc, "Invalid query number" ); + if (cmd[1]) { + if (sscanf(cmd[1], "%d", &numq) != 1) { + irc_rootmsg(irc, "Invalid query number"); return; } - - for( q = irc->queries; q; q = q->next, numq -- ) - if( numq == 0 ) + + for (q = irc->queries; q; q = q->next, numq--) { + if (numq == 0) { break; - - if( !q ) - { - irc_rootmsg( irc, "Uhm, I never asked you something like that..." ); + } + } + + if (!q) { + irc_rootmsg(irc, "Uhm, I never asked you something like that..."); return; } } - - if( g_strcasecmp( cmd[0], "yes" ) == 0 ) - query_answer( irc, q, 1 ); - else if( g_strcasecmp( cmd[0], "no" ) == 0 ) - query_answer( irc, q, 0 ); + + if (g_strcasecmp(cmd[0], "yes") == 0) { + query_answer(irc, q, 1); + } else if (g_strcasecmp(cmd[0], "no") == 0) { + query_answer(irc, q, 0); + } } -static void cmd_set( irc_t *irc, char **cmd ) +static void cmd_set(irc_t *irc, char **cmd) { - cmd_set_real( irc, cmd, &irc->b->set, NULL ); + cmd_set_real(irc, cmd, &irc->b->set, NULL); } -static void cmd_blist( irc_t *irc, char **cmd ) +static void cmd_blist(irc_t *irc, char **cmd) { int online = 0, away = 0, offline = 0, ismatch = 0; GSList *l; @@ -1091,343 +984,325 @@ static void cmd_blist( irc_t *irc, char **cmd ) char s[256]; char *format; int n_online = 0, n_away = 0, n_offline = 0; - - if( cmd[1] && g_strcasecmp( cmd[1], "all" ) == 0 ) + + if (cmd[1] && g_strcasecmp(cmd[1], "all") == 0) { online = offline = away = 1; - else if( cmd[1] && g_strcasecmp( cmd[1], "offline" ) == 0 ) + } else if (cmd[1] && g_strcasecmp(cmd[1], "offline") == 0) { offline = 1; - else if( cmd[1] && g_strcasecmp( cmd[1], "away" ) == 0 ) + } else if (cmd[1] && g_strcasecmp(cmd[1], "away") == 0) { away = 1; - else if( cmd[1] && g_strcasecmp( cmd[1], "online" ) == 0 ) + } else if (cmd[1] && g_strcasecmp(cmd[1], "online") == 0) { online = 1; - else + } else { online = away = 1; - - if( cmd[2] ) - regex = g_regex_new( cmd[2], G_REGEX_CASELESS, 0, &error ); - - if( error ) - { - irc_rootmsg( irc, error->message ); - g_error_free( error ); } - - if( strchr( irc->umode, 'b' ) != NULL ) + + if (cmd[2]) { + regex = g_regex_new(cmd[2], G_REGEX_CASELESS, 0, &error); + } + + if (error) { + irc_rootmsg(irc, error->message); + g_error_free(error); + } + + if (strchr(irc->umode, 'b') != NULL) { format = "%s\t%s\t%s"; - else + } else { format = "%-16.16s %-40.40s %s"; - - irc_rootmsg( irc, format, "Nick", "Handle/Account", "Status" ); - - if( irc->root->last_channel && - strcmp( set_getstr( &irc->root->last_channel->set, "type" ), "control" ) != 0 ) + } + + irc_rootmsg(irc, format, "Nick", "Handle/Account", "Status"); + + if (irc->root->last_channel && + strcmp(set_getstr(&irc->root->last_channel->set, "type"), "control") != 0) { irc->root->last_channel = NULL; - - for( l = irc->users; l; l = l->next ) - { + } + + for (l = irc->users; l; l = l->next) { irc_user_t *iu = l->data; bee_user_t *bu = iu->bu; - - if( !regex || g_regex_match( regex, iu->nick, 0, NULL ) ) + + if (!regex || g_regex_match(regex, iu->nick, 0, NULL)) { ismatch = 1; - else + } else { ismatch = 0; - - if( !bu || ( irc->root->last_channel && !irc_channel_wants_user( irc->root->last_channel, iu ) ) ) + } + + if (!bu || (irc->root->last_channel && !irc_channel_wants_user(irc->root->last_channel, iu))) { continue; - - if( ( bu->flags & ( BEE_USER_ONLINE | BEE_USER_AWAY ) ) == BEE_USER_ONLINE ) - { - if( ismatch == 1 && online == 1 ) - { + } + + if ((bu->flags & (BEE_USER_ONLINE | BEE_USER_AWAY)) == BEE_USER_ONLINE) { + if (ismatch == 1 && online == 1) { char st[256] = "Online"; - - if( bu->status_msg ) - g_snprintf( st, sizeof( st ) - 1, "Online (%s)", bu->status_msg ); - - g_snprintf( s, sizeof( s ) - 1, "%s %s", bu->handle, bu->ic->acc->tag ); - irc_rootmsg( irc, format, iu->nick, s, st ); + + if (bu->status_msg) { + g_snprintf(st, sizeof(st) - 1, "Online (%s)", bu->status_msg); + } + + g_snprintf(s, sizeof(s) - 1, "%s %s", bu->handle, bu->ic->acc->tag); + irc_rootmsg(irc, format, iu->nick, s, st); } - - n_online ++; + + n_online++; } - - if( ( bu->flags & BEE_USER_ONLINE ) && ( bu->flags & BEE_USER_AWAY ) ) - { - if( ismatch == 1 && away == 1 ) - { - g_snprintf( s, sizeof( s ) - 1, "%s %s", bu->handle, bu->ic->acc->tag ); - irc_rootmsg( irc, format, iu->nick, s, irc_user_get_away( iu ) ); + + if ((bu->flags & BEE_USER_ONLINE) && (bu->flags & BEE_USER_AWAY)) { + if (ismatch == 1 && away == 1) { + g_snprintf(s, sizeof(s) - 1, "%s %s", bu->handle, bu->ic->acc->tag); + irc_rootmsg(irc, format, iu->nick, s, irc_user_get_away(iu)); } - n_away ++; + n_away++; } - - if( !(bu->flags & BEE_USER_ONLINE) ) - { - if( ismatch == 1 && offline == 1 ) - { - g_snprintf( s, sizeof( s ) - 1, "%s %s", bu->handle, bu->ic->acc->tag ); - irc_rootmsg( irc, format, iu->nick, s, "Offline" ); + + if (!(bu->flags & BEE_USER_ONLINE)) { + if (ismatch == 1 && offline == 1) { + g_snprintf(s, sizeof(s) - 1, "%s %s", bu->handle, bu->ic->acc->tag); + irc_rootmsg(irc, format, iu->nick, s, "Offline"); } - n_offline ++; + n_offline++; } } - - irc_rootmsg( irc, "%d buddies (%d available, %d away, %d offline)", n_online + n_away + n_offline, n_online, n_away, n_offline ); - - if( regex ) - g_regex_unref( regex ); + + irc_rootmsg(irc, "%d buddies (%d available, %d away, %d offline)", n_online + n_away + n_offline, n_online, + n_away, n_offline); + + if (regex) { + g_regex_unref(regex); + } } -static void cmd_qlist( irc_t *irc, char **cmd ) +static void cmd_qlist(irc_t *irc, char **cmd) { query_t *q = irc->queries; int num; - - if( !q ) - { - irc_rootmsg( irc, "There are no pending questions." ); + + if (!q) { + irc_rootmsg(irc, "There are no pending questions."); return; } - - irc_rootmsg( irc, "Pending queries:" ); - - for( num = 0; q; q = q->next, num ++ ) - if( q->ic ) /* Not necessary yet, but it might come later */ - irc_rootmsg( irc, "%d, %s: %s", num, q->ic->acc->tag, q->question ); - else - irc_rootmsg( irc, "%d, BitlBee: %s", num, q->question ); + + irc_rootmsg(irc, "Pending queries:"); + + for (num = 0; q; q = q->next, num++) { + if (q->ic) { /* Not necessary yet, but it might come later */ + irc_rootmsg(irc, "%d, %s: %s", num, q->ic->acc->tag, q->question); + } else { + irc_rootmsg(irc, "%d, BitlBee: %s", num, q->question); + } + } } -static void cmd_chat( irc_t *irc, char **cmd ) +static void cmd_chat(irc_t *irc, char **cmd) { account_t *acc; - - if( g_strcasecmp( cmd[1], "add" ) == 0 ) - { + + if (g_strcasecmp(cmd[1], "add") == 0) { char *channel, *s; struct irc_channel *ic; - - MIN_ARGS( 3 ); - - if( !( acc = account_get( irc->b, cmd[2] ) ) ) - { - irc_rootmsg( irc, "Invalid account" ); + + MIN_ARGS(3); + + if (!(acc = account_get(irc->b, cmd[2]))) { + irc_rootmsg(irc, "Invalid account"); return; - } - else if( !acc->prpl->chat_join ) - { - irc_rootmsg( irc, "Named chatrooms not supported on that account." ); + } else if (!acc->prpl->chat_join) { + irc_rootmsg(irc, "Named chatrooms not supported on that account."); return; } - - if( cmd[4] == NULL ) - { - channel = g_strdup( cmd[3] ); - if( ( s = strchr( channel, '@' ) ) ) + + if (cmd[4] == NULL) { + channel = g_strdup(cmd[3]); + if ((s = strchr(channel, '@'))) { *s = 0; + } + } else { + channel = g_strdup(cmd[4]); } - else - { - channel = g_strdup( cmd[4] ); - } - - if( strchr( CTYPES, channel[0] ) == NULL ) - { - s = g_strdup_printf( "#%s", channel ); - g_free( channel ); + + if (strchr(CTYPES, channel[0]) == NULL) { + s = g_strdup_printf("#%s", channel); + g_free(channel); channel = s; - - irc_channel_name_strip( channel ); - } - - if( ( ic = irc_channel_new( irc, channel ) ) && - set_setstr( &ic->set, "type", "chat" ) && - set_setstr( &ic->set, "chat_type", "room" ) && - set_setstr( &ic->set, "account", cmd[2] ) && - set_setstr( &ic->set, "room", cmd[3] ) ) - { - irc_rootmsg( irc, "Chatroom successfully added." ); + + irc_channel_name_strip(channel); } - else - { - if( ic ) - irc_channel_free( ic ); - - irc_rootmsg( irc, "Could not add chatroom." ); + + if ((ic = irc_channel_new(irc, channel)) && + set_setstr(&ic->set, "type", "chat") && + set_setstr(&ic->set, "chat_type", "room") && + set_setstr(&ic->set, "account", cmd[2]) && + set_setstr(&ic->set, "room", cmd[3])) { + irc_rootmsg(irc, "Chatroom successfully added."); + } else { + if (ic) { + irc_channel_free(ic); + } + + irc_rootmsg(irc, "Could not add chatroom."); } - g_free( channel ); - } - else if( g_strcasecmp( cmd[1], "with" ) == 0 ) - { + g_free(channel); + } else if (g_strcasecmp(cmd[1], "with") == 0) { irc_user_t *iu; - - MIN_ARGS( 2 ); - - if( ( iu = irc_user_by_name( irc, cmd[2] ) ) && - iu->bu && iu->bu->ic->acc->prpl->chat_with ) - { - if( !iu->bu->ic->acc->prpl->chat_with( iu->bu->ic, iu->bu->handle ) ) - { - irc_rootmsg( irc, "(Possible) failure while trying to open " - "a groupchat with %s.", iu->nick ); + + MIN_ARGS(2); + + if ((iu = irc_user_by_name(irc, cmd[2])) && + iu->bu && iu->bu->ic->acc->prpl->chat_with) { + if (!iu->bu->ic->acc->prpl->chat_with(iu->bu->ic, iu->bu->handle)) { + irc_rootmsg(irc, "(Possible) failure while trying to open " + "a groupchat with %s.", iu->nick); } + } else { + irc_rootmsg(irc, "Can't open a groupchat with %s.", cmd[2]); } - else - { - irc_rootmsg( irc, "Can't open a groupchat with %s.", cmd[2] ); - } - } - else if( g_strcasecmp( cmd[1], "list" ) == 0 || - g_strcasecmp( cmd[1], "set" ) == 0 || - g_strcasecmp( cmd[1], "del" ) == 0 ) - { - irc_rootmsg( irc, "Warning: The \002chat\002 command was mostly replaced with the \002channel\002 command." ); - cmd_channel( irc, cmd ); - } - else - { - irc_rootmsg( irc, "Unknown command: %s %s. Please use \x02help commands\x02 to get a list of available commands.", "chat", cmd[1] ); + } else if (g_strcasecmp(cmd[1], "list") == 0 || + g_strcasecmp(cmd[1], "set") == 0 || + g_strcasecmp(cmd[1], "del") == 0) { + irc_rootmsg(irc, + "Warning: The \002chat\002 command was mostly replaced with the \002channel\002 command."); + cmd_channel(irc, cmd); + } else { + irc_rootmsg(irc, + "Unknown command: %s %s. Please use \x02help commands\x02 to get a list of available commands.", "chat", + cmd[1]); } } -static void cmd_group( irc_t *irc, char **cmd ) +static void cmd_group(irc_t *irc, char **cmd) { GSList *l; int len; - - len = strlen( cmd[1] ); - if( g_strncasecmp( cmd[1], "list", len ) == 0 ) - { + + len = strlen(cmd[1]); + if (g_strncasecmp(cmd[1], "list", len) == 0) { int n = 0; - - if( strchr( irc->umode, 'b' ) ) - irc_rootmsg( irc, "Group list:" ); - - for( l = irc->b->groups; l; l = l->next ) - { + + if (strchr(irc->umode, 'b')) { + irc_rootmsg(irc, "Group list:"); + } + + for (l = irc->b->groups; l; l = l->next) { bee_group_t *bg = l->data; - irc_rootmsg( irc, "%d. %s", n ++, bg->name ); + irc_rootmsg(irc, "%d. %s", n++, bg->name); } - irc_rootmsg( irc, "End of group list" ); - } - else if( g_strncasecmp(cmd[1], "info", len ) == 0 ) - { + irc_rootmsg(irc, "End of group list"); + } else if (g_strncasecmp(cmd[1], "info", len) == 0) { bee_group_t *bg; int n = 0; MIN_ARGS(2); - bg = bee_group_by_name( irc->b, cmd[2], FALSE ); - - if( bg ) - { - if( strchr(irc->umode, 'b') ) - irc_rootmsg( irc, "Members of %s:", cmd[2] ); - for( l = irc->b->users; l; l = l->next ) - { + bg = bee_group_by_name(irc->b, cmd[2], FALSE); + + if (bg) { + if (strchr(irc->umode, 'b')) { + irc_rootmsg(irc, "Members of %s:", cmd[2]); + } + for (l = irc->b->users; l; l = l->next) { bee_user_t *bu = l->data; - if( bu->group == bg ) - irc_rootmsg( irc, "%d. %s", n ++, bu->nick ? : bu->handle ); + if (bu->group == bg) { + irc_rootmsg(irc, "%d. %s", n++, bu->nick ? : bu->handle); + } } - irc_rootmsg( irc, "End of member list" ); + irc_rootmsg(irc, "End of member list"); + } else { + irc_rootmsg(irc, + "Unknown group: %s. Please use \x02group list\x02 to get a list of available groups.", + cmd[2]); } - else - irc_rootmsg( irc, "Unknown group: %s. Please use \x02group list\x02 to get a list of available groups.", cmd[2] ); - } - else - { - irc_rootmsg( irc, "Unknown command: %s %s. Please use \x02help commands\x02 to get a list of available commands.", "group", cmd[1] ); + } else { + irc_rootmsg(irc, + "Unknown command: %s %s. Please use \x02help commands\x02 to get a list of available commands.", "group", + cmd[1]); } } -static void cmd_transfer( irc_t *irc, char **cmd ) +static void cmd_transfer(irc_t *irc, char **cmd) { GSList *files = irc->file_transfers; + enum { LIST, REJECT, CANCEL }; int subcmd = LIST; int fid; - if( !files ) - { - irc_rootmsg( irc, "No pending transfers" ); + if (!files) { + irc_rootmsg(irc, "No pending transfers"); return; } - if( cmd[1] && ( strcmp( cmd[1], "reject" ) == 0 ) ) - { + if (cmd[1] && (strcmp(cmd[1], "reject") == 0)) { subcmd = REJECT; - } - else if( cmd[1] && ( strcmp( cmd[1], "cancel" ) == 0 ) && - cmd[2] && ( sscanf( cmd[2], "%d", &fid ) == 1 ) ) - { + } else if (cmd[1] && (strcmp(cmd[1], "cancel") == 0) && + cmd[2] && (sscanf(cmd[2], "%d", &fid) == 1)) { subcmd = CANCEL; } - for( ; files; files = g_slist_next( files ) ) - { + for (; files; files = g_slist_next(files)) { file_transfer_t *file = files->data; - - switch( subcmd ) { + + switch (subcmd) { case LIST: - if ( file->status == FT_STATUS_LISTENING ) - irc_rootmsg( irc, - "Pending file(id %d): %s (Listening...)", file->local_id, file->file_name); - else - { + if (file->status == FT_STATUS_LISTENING) { + irc_rootmsg(irc, + "Pending file(id %d): %s (Listening...)", file->local_id, file->file_name); + } else { int kb_per_s = 0; - time_t diff = time( NULL ) - file->started ? : 1; - if ( ( file->started > 0 ) && ( file->bytes_transferred > 0 ) ) + time_t diff = time(NULL) - file->started ? : 1; + if ((file->started > 0) && (file->bytes_transferred > 0)) { kb_per_s = file->bytes_transferred / 1024 / diff; - - irc_rootmsg( irc, - "Pending file(id %d): %s (%10zd/%zd kb, %d kb/s)", file->local_id, file->file_name, - file->bytes_transferred/1024, file->file_size/1024, kb_per_s); + } + + irc_rootmsg(irc, + "Pending file(id %d): %s (%10zd/%zd kb, %d kb/s)", file->local_id, + file->file_name, + file->bytes_transferred / 1024, file->file_size / 1024, kb_per_s); } break; case REJECT: - if( file->status == FT_STATUS_LISTENING ) - { - irc_rootmsg( irc, "Rejecting file transfer for %s", file->file_name ); - imcb_file_canceled( file->ic, file, "Denied by user" ); + if (file->status == FT_STATUS_LISTENING) { + irc_rootmsg(irc, "Rejecting file transfer for %s", file->file_name); + imcb_file_canceled(file->ic, file, "Denied by user"); } break; case CANCEL: - if( file->local_id == fid ) - { - irc_rootmsg( irc, "Canceling file transfer for %s", file->file_name ); - imcb_file_canceled( file->ic, file, "Canceled by user" ); + if (file->local_id == fid) { + irc_rootmsg(irc, "Canceling file transfer for %s", file->file_name); + imcb_file_canceled(file->ic, file, "Canceled by user"); } break; } } } -static void cmd_nick( irc_t *irc, char **cmd ) +static void cmd_nick(irc_t *irc, char **cmd) { - irc_rootmsg( irc, "This command is deprecated. Try: account %s set display_name", cmd[1] ); + irc_rootmsg(irc, "This command is deprecated. Try: account %s set display_name", cmd[1]); } /* Maybe this should be a stand-alone command as well? */ -static void bitlbee_whatsnew( irc_t *irc ) +static void bitlbee_whatsnew(irc_t *irc) { - int last = set_getint( &irc->b->set, "last_version" ); + int last = set_getint(&irc->b->set, "last_version"); char s[16], *msg; - - if( last >= BITLBEE_VERSION_CODE ) + + if (last >= BITLBEE_VERSION_CODE) { return; - - msg = help_get_whatsnew( &(global.help), last ); - - if( msg ) - irc_rootmsg( irc, "%s: This seems to be your first time using this " - "this version of BitlBee. Here's a list of new " - "features you may like to know about:\n\n%s\n", - irc->user->nick, msg ); - - g_free( msg ); - - g_snprintf( s, sizeof( s ), "%d", BITLBEE_VERSION_CODE ); - set_setstr( &irc->b->set, "last_version", s ); + } + + msg = help_get_whatsnew(&(global.help), last); + + if (msg) { + irc_rootmsg(irc, "%s: This seems to be your first time using this " + "this version of BitlBee. Here's a list of new " + "features you may like to know about:\n\n%s\n", + irc->user->nick, msg); + } + + g_free(msg); + + g_snprintf(s, sizeof(s), "%d", BITLBEE_VERSION_CODE); + set_setstr(&irc->b->set, "last_version", s); } /* IMPORTANT: Keep this list sorted! The short command logic needs that. */ @@ -1442,7 +1317,7 @@ command_t root_commands[] = { { "drop", 1, cmd_drop, 0 }, { "ft", 0, cmd_transfer, 0 }, { "group", 1, cmd_group, 0 }, - { "help", 0, cmd_help, 0 }, + { "help", 0, cmd_help, 0 }, { "identify", 0, cmd_identify, 0 }, { "info", 1, cmd_info, 0 }, { "nick", 1, cmd_nick, 0 }, @@ -1467,30 +1342,31 @@ command_t root_commands[] = { { NULL }, { NULL }, }; -static const int num_root_commands = sizeof( root_commands ) / sizeof( command_t ); +static const int num_root_commands = sizeof(root_commands) / sizeof(command_t); -gboolean root_command_add( const char *command, int params, void (*func)(irc_t *, char **args), int flags ) +gboolean root_command_add(const char *command, int params, void (*func)(irc_t *, char **args), int flags) { int i; - - if( root_commands[num_root_commands-2].command ) + + if (root_commands[num_root_commands - 2].command) { /* Planning fail! List is full. */ return FALSE; - - for( i = 0; root_commands[i].command; i++ ) - { - if( g_strcasecmp( root_commands[i].command, command ) == 0 ) + } + + for (i = 0; root_commands[i].command; i++) { + if (g_strcasecmp(root_commands[i].command, command) == 0) { return FALSE; - else if( g_strcasecmp( root_commands[i].command, command ) > 0 ) + } else if (g_strcasecmp(root_commands[i].command, command) > 0) { break; + } } - memmove( root_commands + i + 1, root_commands + i, - sizeof( command_t ) * ( num_root_commands - i - 1 ) ); - - root_commands[i].command = g_strdup( command ); + memmove(root_commands + i + 1, root_commands + i, + sizeof(command_t) * (num_root_commands - i - 1)); + + root_commands[i].command = g_strdup(command); root_commands[i].required_parameters = params; root_commands[i].execute = func; root_commands[i].flags = flags; - + return TRUE; } |