Changeset 3b3c50d9


Ignore:
Timestamp:
2010-07-28T08:24:47Z (14 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
3963fdd
Parents:
13fa2db
Message:

Allow including account tags in nicknames, and be a bit more clever about
the default tags (recognize AIM/ICQ/GTalk/Facebook).

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • doc/user-guide/misc.xml

    r13fa2db r3b3c50d9  
    201201        <varlistentry><term>%first_name</term><listitem><para>The first name of the contact (the full name up to the first space).</para></listitem></varlistentry>
    202202        <varlistentry><term>%group</term><listitem><para>The name of the group this contact is a member of</para></listitem></varlistentry>
     203        <varlistentry><term>%account</term><listitem><para>Account tag of the contact</para></listitem></varlistentry>
    203204</variablelist>
    204205
  • nick.c

    r13fa2db r3b3c50d9  
    177177                                part = bu->group ? bu->group->name : NULL;
    178178                                fmt += 5;
     179                                break;
     180                        }
     181                        else if( g_strncasecmp( fmt, "account", 7 ) == 0 )
     182                        {
     183                                part = bu->ic->acc->tag;
     184                                fmt += 7;
    179185                                break;
    180186                        }
  • protocols/account.c

    r13fa2db r3b3c50d9  
    7373        set_setstr( &a->set, "username", user );
    7474       
    75         if( account_by_tag( bee, prpl->name ) )
    76         {
     75        /* Hardcode some more clever tag guesses. */
     76        strcpy( tag, prpl->name );
     77        if( strcmp( prpl->name, "oscar" ) == 0 )
     78        {
     79                if( isdigit( a->user[0] ) )
     80                        strcpy( tag, "icq" );
     81                else
     82                        strcpy( tag, "aim" );
     83        }
     84        else if( strcmp( prpl->name, "jabber" ) == 0 )
     85        {
     86                if( strstr( a->user, "@gmail.com" ) ||
     87                    strstr( a->user, "@googlemail.com" ) )
     88                        strcpy( tag, "gtalk" );
     89                else if( strstr( a->user, "@chat.facebook.com" ) )
     90                        strcpy( tag, "fb" );
     91        }
     92       
     93        if( account_by_tag( bee, tag ) )
     94        {
     95                char *numpos = tag + strlen( tag );
    7796                int i;
    7897
    7998                for( i = 2; i < 10000; i ++ )
    8099                {
    81                         sprintf( tag, "%s%d", prpl->name, i );
     100                        sprintf( numpos, "%d", i );
    82101                        if( !account_by_tag( bee, tag ) )
    83102                                break;
    84103                }
    85         }
    86         else
    87         {
    88                 strcpy( tag, prpl->name );
    89104        }
    90105        set_setstr( &a->set, "tag", tag );
Note: See TracChangeset for help on using the changeset viewer.