| 1 | diff -u -r bitlbee-3.0.1/protocols/jabber/conference.c bitlbee-3.0.1-hack/protocols/jabber/conference.c |
|---|
| 2 | --- bitlbee-3.0.1/protocols/jabber/conference.c 2010-11-24 14:44:00.000000000 -0800 |
|---|
| 3 | +++ bitlbee-3.0.1-hack/protocols/jabber/conference.c 2011-02-22 11:14:55.000000000 -0800 |
|---|
| 4 | @@ -241,7 +241,7 @@ |
|---|
| 5 | if( ( s = xt_find_attr( item, "jid" ) ) ) |
|---|
| 6 | { |
|---|
| 7 | /* Yay, found what we need. :-) */ |
|---|
| 8 | - bud->ext_jid = jabber_normalize( s ); |
|---|
| 9 | + bud->ext_jid = jabber_normalize_lcnicks( ic, s ); |
|---|
| 10 | break; |
|---|
| 11 | } |
|---|
| 12 | } |
|---|
| 13 | @@ -251,7 +251,7 @@ |
|---|
| 14 | { |
|---|
| 15 | if( bud == jc->me ) |
|---|
| 16 | { |
|---|
| 17 | - bud->ext_jid = jabber_normalize( ic->acc->user ); |
|---|
| 18 | + bud->ext_jid = jabber_normalize_lcnicks( ic, ic->acc->user ); |
|---|
| 19 | } |
|---|
| 20 | else |
|---|
| 21 | { |
|---|
| 22 | diff -u -r bitlbee-3.0.1/protocols/jabber/jabber.h bitlbee-3.0.1-hack/protocols/jabber/jabber.h |
|---|
| 23 | --- bitlbee-3.0.1/protocols/jabber/jabber.h 2010-11-24 14:44:00.000000000 -0800 |
|---|
| 24 | +++ bitlbee-3.0.1-hack/protocols/jabber/jabber.h 2011-02-22 11:15:16.000000000 -0800 |
|---|
| 25 | @@ -273,6 +273,7 @@ |
|---|
| 26 | const struct jabber_away_state *jabber_away_state_by_name( char *name ); |
|---|
| 27 | void jabber_buddy_ask( struct im_connection *ic, char *handle ); |
|---|
| 28 | char *jabber_normalize( const char *orig ); |
|---|
| 29 | +char *jabber_normalize_lcnicks( struct im_connection *ic, const char *orig ); |
|---|
| 30 | |
|---|
| 31 | typedef enum |
|---|
| 32 | { |
|---|
| 33 | diff -u -r bitlbee-3.0.1/protocols/jabber/jabber_util.c bitlbee-3.0.1-hack/protocols/jabber/jabber_util.c |
|---|
| 34 | --- bitlbee-3.0.1/protocols/jabber/jabber_util.c 2010-11-24 14:44:00.000000000 -0800 |
|---|
| 35 | +++ bitlbee-3.0.1-hack/protocols/jabber/jabber_util.c 2011-02-22 11:21:59.000000000 -0800 |
|---|
| 36 | @@ -307,6 +307,26 @@ |
|---|
| 37 | g_free( buf ); |
|---|
| 38 | } |
|---|
| 39 | |
|---|
| 40 | +/* Same as jabber_normalize, but respects lcnicks */ |
|---|
| 41 | +char *jabber_normalize_lcnicks( struct im_connection *ic, const char *orig ) |
|---|
| 42 | +{ |
|---|
| 43 | + int len, i; |
|---|
| 44 | + char *new; |
|---|
| 45 | + |
|---|
| 46 | + len = strlen( orig ); |
|---|
| 47 | + new = g_new( char, len + 1 ); |
|---|
| 48 | + |
|---|
| 49 | + for( i = 0; orig[i] ; i ++ ) |
|---|
| 50 | + new[i] = orig[i]; |
|---|
| 51 | + |
|---|
| 52 | + new[i] = 0; |
|---|
| 53 | + |
|---|
| 54 | + if( set_getbool( &ic->bee->set, "lcnicks" ) ) |
|---|
| 55 | + nick_lc( new ); |
|---|
| 56 | + |
|---|
| 57 | + return new; |
|---|
| 58 | +} |
|---|
| 59 | + |
|---|
| 60 | /* Returns a new string. Don't leak it! */ |
|---|
| 61 | char *jabber_normalize( const char *orig ) |
|---|
| 62 | { |
|---|