Changeset 6f0ea57 for nick.c


Ignore:
Timestamp:
2010-07-17T14:37:33Z (14 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
0d691ea
Parents:
5e98ff0
Message:

Making nick_format a tiny bit more complicated: Allow truncating a variable
to a certain length.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • nick.c

    r5e98ff0 r6f0ea57  
    117117        {
    118118                char *part, chop = '\0', *asc = NULL;
     119                int len = MAX_NICK_LENGTH;
    119120               
    120121                if( *fmt != '%' )
     
    135136                                        return NULL;
    136137                                fmt += 2;
     138                        }
     139                        else if( isdigit( *fmt ) )
     140                        {
     141                                len = 0;
     142                                /* Grab a number. */
     143                                while( isdigit( *fmt ) )
     144                                        len = len * 10 + ( *(fmt++) - '0' );
    137145                        }
    138146                        else if( g_strncasecmp( fmt, "nick", 4 ) == 0 )
     
    188196                        g_string_append_c( ret, '_' );
    189197               
    190                 while( part && *part && *part != chop )
     198                while( part && *part && *part != chop && len > 0 )
    191199                {
    192200                        if( strchr( nick_lc_chars, *part ) ||
     
    195203                       
    196204                        part ++;
     205                        len --;
    197206                }
    198207                g_free( asc );
Note: See TracChangeset for help on using the changeset viewer.