Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • irc.c

    r0baed0d r92a9c68  
    5252{
    5353        irc_t *irc = set->data;
     54        char *test;
     55        gsize test_bytes = 0;
    5456        GIConv ic, oc;
    5557
     
    5759                value = g_strdup( "utf-8" );
    5860
     61        if( ( oc = g_iconv_open( value, "utf-8" ) ) == (GIConv) -1 )
     62        {
     63                return NULL;
     64        }
     65       
     66        /* Do a test iconv to see if the user picked an IRC-compatible
     67           charset (for example utf-16 goes *horribly* wrong). */
     68        if( ( test = g_convert_with_iconv( " ", 1, oc, NULL, &test_bytes, NULL ) ) == NULL ||
     69            test_bytes > 1 )
     70        {
     71                g_free( test );
     72                g_iconv_close( oc );
     73                irc_usermsg( irc, "Unsupported character set: The IRC protocol "
     74                                  "only supports 8-bit character sets." );
     75                return NULL;
     76        }
     77        g_free( test );
     78       
    5979        if( ( ic = g_iconv_open( "utf-8", value ) ) == (GIConv) -1 )
    6080        {
    61                 return NULL;
    62         }
    63         if( ( oc = g_iconv_open( value, "utf-8" ) ) == (GIConv) -1 )
    64         {
    65                 g_iconv_close( ic );
     81                g_iconv_close( oc );
    6682                return NULL;
    6783        }
     
    175191        s = set_add( &irc->set, "default_target", "root", NULL, irc );
    176192        s = set_add( &irc->set, "display_namechanges", "false", set_eval_bool, irc );
     193        s = set_add( &irc->set, "display_timestamps", "true", set_eval_bool, irc );
    177194        s = set_add( &irc->set, "handle_unknown", "root", NULL, irc );
    178195        s = set_add( &irc->set, "lcnicks", "true", set_eval_bool, irc );
     
    188205        s->flags |= SET_NULL_OK;
    189206        s = set_add( &irc->set, "strip_html", "true", NULL, irc );
     207        s = set_add( &irc->set, "timezone", "local", set_eval_timezone, irc );
    190208        s = set_add( &irc->set, "to_char", ": ", set_eval_to_char, irc );
    191209        s = set_add( &irc->set, "typing_notice", "false", set_eval_bool, irc );
Note: See TracChangeset for help on using the changeset viewer.