Ticket #757: fix-muc-lc.txt

File fix-muc-lc.txt, 2.6 KB (added by rlpowell@…, at 2011-02-22T19:33:33Z)

Patch to have nicks in non-anonymous Jabber MUCs respect the lcnicks variable.

Line 
1diff -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                        {
22diff -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 {
33diff -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 {