Changeset 180ab31 for root_commands.c


Ignore:
Timestamp:
2010-08-21T19:34:17Z (9 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
a758ec1
Parents:
5613af7
Message:

Added some neat whatsnew code that keeps track of the newest version of
BitlBee used by a user, and if it looks like s/he hasn't used this one
before, show a list of new features that may be interesting.

Since I don't think im.bitlbee.org users will read any changelogs ever,
this is probably not a bad idea. If you hate it, the following command
should get rid of it forever: set last_version 9999999

File:
1 edited

Legend:

Unmodified
Added
Removed
  • root_commands.c

    r5613af7 r180ab31  
    100100
    101101static void cmd_account( irc_t *irc, char **cmd );
     102static void bitlbee_whatsnew( irc_t *irc );
    102103
    103104static void cmd_identify( irc_t *irc, char **cmd )
     
    155156                irc->status |= USTATUS_IDENTIFIED;
    156157                irc_umode_set( irc, "+R", 1 );
     158               
     159                bitlbee_whatsnew( irc );
    157160               
    158161                /* The following code is a bit hairy now. With takeover
     
    336339                while( s )
    337340                {
    338                         cmd_showset( irc, &s, s->key );
     341                        if( !( s->flags & SET_HIDDEN ) )
     342                                cmd_showset( irc, &s, s->key );
    339343                        s = s->next;
    340344                }
     
    12801284}
    12811285
     1286/* Maybe this should be a stand-alone command as well? */
     1287static void bitlbee_whatsnew( irc_t *irc )
     1288{
     1289        int last = set_getint( &irc->b->set, "last_version" );
     1290        GString *msg = g_string_new( "" );
     1291        char s[16];
     1292       
     1293        if( last >= BITLBEE_VERSION_CODE )
     1294                return;
     1295       
     1296        if( last < 0x010206 ) /* 1.2.6 */
     1297        {
     1298                g_string_append( msg,
     1299                        "Twitter support. See \x02help account add twitter\x02.\n" );
     1300        }
     1301        if( last < 0x010300 ) /* 1.3dev */
     1302        {
     1303                g_string_append( msg,
     1304                        "Support for multiple configurable control channels, "
     1305                        "each with a subset of your contact list. See "
     1306                        "\x02help channels\x02 for more information.\n"
     1307                        "File transfer support for some protocols (more if "
     1308                        "you use libpurple). Just /DCC SEND stuff. Incoming "
     1309                        "files also become DCC transfers.\n"
     1310                        "Many more things, briefly described in "
     1311                        "\x02help news1.3\x02.\n" );
     1312        }
     1313       
     1314        if( msg->len > 0 )
     1315                irc_usermsg( irc, "%s: This seems to be your first time using this "
     1316                                  "this version of BitlBee. Here's a list of new "
     1317                                  "features you may like to know about:\n\n%s\n",
     1318                                  irc->user->nick, msg->str );
     1319       
     1320        g_string_free( msg, TRUE );
     1321        g_snprintf( s, sizeof( s ), "%d", BITLBEE_VERSION_CODE );
     1322        set_setstr( &irc->b->set, "last_version", s );
     1323}
     1324
    12821325/* IMPORTANT: Keep this list sorted! The short command logic needs that. */
    12831326const command_t commands[] = {
Note: See TracChangeset for help on using the changeset viewer.