Changeset 5100caa for root_commands.c


Ignore:
Timestamp:
2006-07-01T15:52:05Z (13 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
fef6116
Parents:
0a3c243
Message:

Added "account set" command.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • root_commands.c

    r0a3c243 r5100caa  
    232232
    233233                a = account_add( irc, prpl, cmd[3], cmd[4] );
    234                
    235234                if( cmd[5] )
    236                         a->server = g_strdup( cmd[5] );
     235                        set_setstr( &a->set, "server", cmd[5] );
    237236               
    238237                irc_usermsg( irc, "Account successfully added" );
     
    358357                }
    359358        }
     359        else if( g_strcasecmp( cmd[1], "set" ) == 0 )
     360        {
     361                char *acc_handle, *set_name = NULL, *tmp;
     362               
     363                if( !cmd[2] )
     364                {
     365                        irc_usermsg( irc, "Not enough parameters given (need %d)", 2 );
     366                        return;
     367                }
     368               
     369                acc_handle = g_strdup( cmd[2] );
     370                if( ( tmp = strchr( acc_handle, '/' ) ) )
     371                {
     372                        *tmp = 0;
     373                        set_name = tmp + 1;
     374                }
     375                a = account_get( irc, acc_handle );
     376               
     377                if( a == NULL )
     378                {
     379                        irc_usermsg( irc, "Invalid account" );
     380                        return;
     381                }
     382               
     383                if( cmd[3] )
     384                {
     385                        set_t *s = set_find( &a->set, set_name );
     386                       
     387                        if( a->gc && s && s->flags & ACC_SET_OFFLINE_ONLY )
     388                        {
     389                                irc_usermsg( irc, "This setting can only be changed when the account is off-line" );
     390                                return;
     391                        }
     392                       
     393                        set_setstr( &a->set, set_name, cmd[3] );
     394                       
     395                        if( ( strcmp( cmd[3], "=" ) ) == 0 && cmd[4] )
     396                                irc_usermsg( irc, "Warning: Correct syntax: \002account set <variable> <value>\002 (without =)" );
     397                }
     398                if( set_name ) /* else 'forgotten' on purpose.. Must show new value after changing */
     399                {
     400                        char *s = set_getstr( &a->set, set_name );
     401                        if( s )
     402                                irc_usermsg( irc, "%s = `%s'", set_name, s );
     403                        else
     404                                irc_usermsg( irc, "%s is empty", set_name );
     405                }
     406                else
     407                {
     408                        set_t *s = a->set;
     409                        while( s )
     410                        {
     411                                if( s->value || s->def )
     412                                        irc_usermsg( irc, "%s = `%s'", s->key, s->value?s->value:s->def );
     413                                else
     414                                        irc_usermsg( irc, "%s is empty", s->key );
     415                                s = s->next;
     416                        }
     417                }
     418               
     419                g_free( acc_handle );
     420        }
    360421        else
    361422        {
     
    682743                if( s )
    683744                        irc_usermsg( irc, "%s = `%s'", cmd[1], s );
     745                else
     746                        irc_usermsg( irc, "%s is empty", cmd[1] );
    684747        }
    685748        else
     
    690753                        if( s->value || s->def )
    691754                                irc_usermsg( irc, "%s = `%s'", s->key, s->value?s->value:s->def );
     755                        else
     756                                irc_usermsg( irc, "%s is empty", s->key );
    692757                        s = s->next;
    693758                }
Note: See TracChangeset for help on using the changeset viewer.