Changeset f3579fd for root_commands.c


Ignore:
Timestamp:
2008-08-24T20:52:31Z (16 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
f536a99
Parents:
7125cb3
Message:

Clearer feedback after set/account set commands.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • root_commands.c

    r7125cb3 rf3579fd  
    238238}
    239239
     240static void cmd_showset( irc_t *irc, set_t *set )
     241{
     242        char *s;
     243       
     244        if( set && ( s = set_getstr( &set, set->key ) ) ) /* HACK! */
     245                irc_usermsg( irc, "%s = `%s'", set->key, s );
     246        else
     247                irc_usermsg( irc, "%s is empty", set->key );
     248}
     249
    240250static void cmd_account( irc_t *irc, char **cmd )
    241251{
     
    445455                {
    446456                        set_t *s = set_find( &a->set, set_name );
     457                        int st;
    447458                       
    448459                        if( a->ic && s && s->flags & ACC_SET_OFFLINE_ONLY )
     
    460471                       
    461472                        if( g_strncasecmp( cmd[2], "-del", 4 ) == 0 )
    462                                 set_reset( &a->set, set_name );
     473                                st = set_reset( &a->set, set_name );
    463474                        else
    464                                 set_setstr( &a->set, set_name, cmd[3] );
    465                 }
    466                 if( set_name ) /* else 'forgotten' on purpose.. Must show new value after changing */
    467                 {
    468                         char *s = set_getstr( &a->set, set_name );
    469                         if( s )
    470                                 irc_usermsg( irc, "%s = `%s'", set_name, s );
     475                                st = set_setstr( &a->set, set_name, cmd[3] );
     476                       
     477                        if( set_getstr( &a->set, set_name ) == NULL )
     478                        {
     479                                if( st )
     480                                        irc_usermsg( irc, "Setting changed successfully" );
     481                                else
     482                                        irc_usermsg( irc, "Failed to change setting" );
     483                        }
    471484                        else
    472                                 irc_usermsg( irc, "%s is empty", set_name );
     485                        {
     486                                cmd_showset( irc, set_find( &a->set, set_name ) );
     487                        }
     488                }
     489                else if( set_name )
     490                {
     491                        cmd_showset( irc, set_find( &a->set, set_name ) );
    473492                }
    474493                else
     
    477496                        while( s )
    478497                        {
    479                                 if( s->value || s->def )
    480                                         irc_usermsg( irc, "%s = `%s'", s->key, s->value ? s->value : s->def );
    481                                 else
    482                                         irc_usermsg( irc, "%s is empty", s->key );
     498                                cmd_showset( irc, s );
    483499                                s = s->next;
    484500                        }
     
    823839        if( cmd[1] && cmd[2] )
    824840        {
     841                int st;
     842               
    825843                if( g_strncasecmp( cmd[1], "-del", 4 ) == 0 )
    826844                {
    827                         set_reset( &irc->set, cmd[2] );
     845                        st = set_reset( &irc->set, cmd[2] );
    828846                        set_name = cmd[2];
    829847                }
    830848                else
    831849                {
    832                         set_setstr( &irc->set, cmd[1], cmd[2] );
    833                 }
    834         }
    835         if( set_name ) /* else 'forgotten' on purpose.. Must show new value after changing */
    836         {
    837                 char *s = set_getstr( &irc->set, set_name );
    838                 if( s )
    839                         irc_usermsg( irc, "%s = `%s'", set_name, s );
    840                 else
    841                         irc_usermsg( irc, "%s is empty", set_name );
     850                        st = set_setstr( &irc->set, cmd[1], cmd[2] );
     851                }
     852               
     853                /* Normally we just show the variable's new/unchanged
     854                   value as feedback to the user, but this has always
     855                   caused confusion when changing the password. Give
     856                   other feedback instead: */
     857                if( set_getstr( &irc->set, set_name ) == NULL )
     858                {
     859                        if( st )
     860                                irc_usermsg( irc, "Setting changed successfully" );
     861                        else
     862                                irc_usermsg( irc, "Failed to change setting" );
     863                }
     864                else
     865                {
     866                        cmd_showset( irc, set_find( &irc->set, set_name ) );
     867                }
     868        }
     869        else if( set_name )
     870        {
     871                cmd_showset( irc, set_find( &irc->set, set_name ) );
    842872
    843873                if( strchr( set_name, '/' ) )
     
    849879                while( s )
    850880                {
    851                         if( s->value || s->def )
    852                                 irc_usermsg( irc, "%s = `%s'", s->key, s->value ? s->value : s->def );
    853                         else
    854                                 irc_usermsg( irc, "%s is empty", s->key );
     881                        cmd_showset( irc, s );
    855882                        s = s->next;
    856883                }
Note: See TracChangeset for help on using the changeset viewer.