Ticket #53: bitlbee-recode.diff

File bitlbee-recode.diff, 2.6 KB (added by waker@…, 4 years ago)

patch which adds recoding capabilities to bitlbee

  • irc.c

    Only in ./: diff
    diff -ur ../bitlbee-1.0.3-original/irc.c ./irc.c
    old new  
    116116        set_add( irc, "buddy_sendbuffer", "false", set_eval_bool ); 
    117117        set_add( irc, "buddy_sendbuffer_delay", "200", set_eval_int ); 
    118118        set_add( irc, "charset", "iso8859-1", set_eval_charset ); 
     119        set_add( irc, "oscar_recode_charset", "iso8859-1", set_eval_oscar_recode_charset ); 
    119120        set_add( irc, "debug", "false", set_eval_bool ); 
    120121        set_add( irc, "default_target", "root", NULL ); 
    121122        set_add( irc, "display_namechanges", "false", set_eval_bool ); 
  • protocols/oscar/oscar.c

    diff -ur ../bitlbee-1.0.3-original/protocols/oscar/oscar.c ./protocols/oscar/oscar.c
    old new  
    10291029        return 1; 
    10301030} 
    10311031 
     1032extern GSList *irc_connection_list; 
     1033 
    10321034static int incomingim_chan1(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch1_args *args) { 
    10331035        char *tmp = g_malloc(BUF_LONG + 1); 
    10341036        struct gaim_connection *gc = sess->aux_data; 
     
    10431045                if (args->icbmflags & AIM_IMFLAGS_UNICODE) 
    10441046                        src = "UNICODEBIG"; 
    10451047                else 
    1046                         src = "ISO8859-1"; 
     1048                { 
     1049                        char *cs; 
     1050                        irc_t *irc = (irc_t*)irc_connection_list->data; 
     1051                        if( ( cs = set_getstr( irc, "oscar_recode_charset" ) ) && ( g_strcasecmp( cs, "utf-8" ) != 0 ) ) 
     1052                                src = cs; 
     1053                        else 
     1054                                src = "iso88590-1"; 
     1055                } 
    10471056                 
    10481057                /* Try to use iconv first to convert the message to UTF8 - which is what BitlBee expects */ 
    10491058                if (do_iconv(src, "UTF-8", args->msg, tmp, args->msglen, BUF_LONG) >= 0) { 
  • util.c

    diff -ur ../bitlbee-1.0.3-original/util.c ./util.c
    old new  
    453453        iconv_close( cd ); 
    454454        return( value ); 
    455455} 
     456 
     457char *set_eval_oscar_recode_charset( irc_t *irc, set_t *set, char *value ) 
     458{ 
     459        iconv_t cd; 
     460 
     461        if ( g_strncasecmp( value, "none", 4 ) == 0 ) 
     462                return( value ); 
     463 
     464        cd = iconv_open( "UTF-8", value ); 
     465        if( cd == (iconv_t) -1 ) 
     466                return( NULL ); 
     467 
     468        iconv_close( cd ); 
     469        return( value ); 
     470} 
  • util.h

    diff -ur ../bitlbee-1.0.3-original/util.h ./util.h
    old new  
    4646 
    4747G_MODULE_EXPORT signed int do_iconv( char *from_cs, char *to_cs, char *src, char *dst, size_t size, size_t maxbuf ); 
    4848char *set_eval_charset( irc_t *irc, set_t *set, char *value ); 
     49char *set_eval_oscar_recode_charset( irc_t *irc, set_t *set, char *value ); 
    4950 
    5051#endif