source: protocols/oscar/aim_prefixes.h @ 4a9c6b0

Last change on this file since 4a9c6b0 was f66425d, checked in by dequis <dx@…>, at 2015-12-18T17:54:40Z

oscar: Add prefixes to all functions that may conflict with purple

When people build with ./configure --purple=1 --oscar=1, the native
oscar is compiled statically, which should take priority, but sometimes
purple's oscar is used instead and bad things happen, most of it being
due to calling bitlbee's native aim_callhandler instead of the function
with the same name of libpurple's liboscar.so.

  • Property mode set to 100644
File size: 4.1 KB
RevLine 
[f66425d]1/* Automatically generated prefixes to avoid symbol conflicts with libpurple.
2 * Because sometimes people compile both oscar and purple and things break.
3 * This is awful but i know no better solution other than not running libpurple in the same process.
4 *
5 * Made with the following commands:
6 *
7 * nm --defined-only oscar_mod.o | awk '{print $3}' | sort | uniq > bee_syms
8 * nm --defined-only liboscar.so | awk '{print $3}' | sort | uniq > purple_syms
9 * comm -12 bee_syms purple_syms | sed 's/^.*$/#define & b_&/' > aim_prefixes.h
10 */
11
12#define admin_modfirst b_admin_modfirst
13#define aim_admin_changepasswd b_aim_admin_changepasswd
14#define aim_admin_getinfo b_aim_admin_getinfo
15#define aim_admin_reqconfirm b_aim_admin_reqconfirm
16#define aim_admin_setemail b_aim_admin_setemail
17#define aim_admin_setnick b_aim_admin_setnick
18#define aim_bos_reqrights b_aim_bos_reqrights
19#define aim_cachecookie b_aim_cachecookie
20#define aim_cachesnac b_aim_cachesnac
21#define aim_callhandler b_aim_callhandler
22#define aim_caps b_aim_caps
23#define aim_chat_join b_aim_chat_join
24#define aim_chatnav_createroom b_aim_chatnav_createroom
25#define aim_chatnav_reqrights b_aim_chatnav_reqrights
26#define aim_chat_readroominfo b_aim_chat_readroominfo
27#define aim_chat_send_im b_aim_chat_send_im
28#define aim_checkcookie b_aim_checkcookie
29#define aim_cleansnacs b_aim_cleansnacs
30#define aim_cookie_free b_aim_cookie_free
31#define aim__findmodule b_aim__findmodule
32#define aim__findmodulebygroup b_aim__findmodulebygroup
33#define aim_genericreq_l b_aim_genericreq_l
34#define aim_genericreq_n b_aim_genericreq_n
35#define aim_genericreq_n_snacid b_aim_genericreq_n_snacid
36#define aim_icq_freeinfo b_aim_icq_freeinfo
37#define aim_icq_getallinfo b_aim_icq_getallinfo
38#define aim_im_sendmtn b_aim_im_sendmtn
39#define aim_initsnachash b_aim_initsnachash
40#define aim_mkcookie b_aim_mkcookie
41#define aim_newsnac b_aim_newsnac
42#define aim_putsnac b_aim_putsnac
43#define aim__registermodule b_aim__registermodule
44#define aim_remsnac b_aim_remsnac
45#define aim_request_login b_aim_request_login
46#define aim_send_login b_aim_send_login
47#define aim__shutdownmodules b_aim__shutdownmodules
48#define aim_ssi_enable b_aim_ssi_enable
49#define aim_ssi_freelist b_aim_ssi_freelist
50#define aim_ssi_getpermdeny b_aim_ssi_getpermdeny
51#define aim_ssi_itemlist_add b_aim_ssi_itemlist_add
52#define aim_ssi_itemlist_find b_aim_ssi_itemlist_find
53#define aim_ssi_itemlist_finditem b_aim_ssi_itemlist_finditem
54#define aim_ssi_itemlist_rebuildgroup b_aim_ssi_itemlist_rebuildgroup
55#define aim_ssi_modbegin b_aim_ssi_modbegin
56#define aim_ssi_modend b_aim_ssi_modend
57#define aim_ssi_movebuddy b_aim_ssi_movebuddy
58#define aim_ssi_reqrights b_aim_ssi_reqrights
59#define aim_uncachecookie b_aim_uncachecookie
60#define auth_modfirst b_auth_modfirst
61#define bos_modfirst b_bos_modfirst
62#define buddylist_modfirst b_buddylist_modfirst
63#define chat_modfirst b_chat_modfirst
64#define chatnav_modfirst b_chatnav_modfirst
65#define extract_name b_extract_name
66#define icq_modfirst b_icq_modfirst
67#define incomingim b_incomingim
68#define incomingim_ch2_chat_free b_incomingim_ch2_chat_free
69#define incomingim_ch2_icqserverrelay_free b_incomingim_ch2_icqserverrelay_free
70#define locate_modfirst b_locate_modfirst
71#define misc_modfirst b_misc_modfirst
72#define msgerrreason b_msgerrreason
73#define msg_modfirst b_msg_modfirst
74#define oscar_add_buddy b_oscar_add_buddy
75#define oscar_add_deny b_oscar_add_deny
76#define oscar_add_permit b_oscar_add_permit
77#define oscar_chat_invite b_oscar_chat_invite
78#define oscar_chat_kill b_oscar_chat_kill
79#define oscar_chat_leave b_oscar_chat_leave
80#define oscar_encoding_to_utf8 b_oscar_encoding_to_utf8
81#define oscar_get_info b_oscar_get_info
82#define oscar_init b_oscar_init
83#define oscar_keepalive b_oscar_keepalive
84#define oscar_login b_oscar_login
85#define oscar_rem_deny b_oscar_rem_deny
86#define oscar_remove_buddy b_oscar_remove_buddy
87#define oscar_rem_permit b_oscar_rem_permit
88#define oscar_send_typing b_oscar_send_typing
89#define search_modfirst b_search_modfirst
90#define snachandler b_snachandler
91#define ssi_modfirst b_ssi_modfirst
92#define ssi_shutdown b_ssi_shutdown
93#define stats_modfirst b_stats_modfirst
Note: See TracBrowser for help on using the repository browser.