src/oscar.c

changeset 1147
9d4a6f778981
parent 1114
a1e5c60bd23d
child 1148
d3da135ce3c9
equal deleted inserted replaced
1146:6da9da89f950 1147:9d4a6f778981
1824 gtk_entry_set_text(GTK_ENTRY(entry), user->proto_opt[USEROPT_SOCKSPORT]); 1824 gtk_entry_set_text(GTK_ENTRY(entry), user->proto_opt[USEROPT_SOCKSPORT]);
1825 } 1825 }
1826 gtk_widget_show(entry); 1826 gtk_widget_show(entry);
1827 } 1827 }
1828 1828
1829 static void oscar_add_permit(struct gaim_connection *gc, char *who) {
1830 struct oscar_data *od = (struct oscar_data *)gc->proto_data;
1831 if (gc->permdeny != 3) return;
1832 aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_PERMITADD, who);
1833 }
1834
1835 static void oscar_add_deny(struct gaim_connection *gc, char *who) {
1836 struct oscar_data *od = (struct oscar_data *)gc->proto_data;
1837 if (gc->permdeny != 4) return;
1838 aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_DENYADD, who);
1839 }
1840
1841 static void oscar_rem_permit(struct gaim_connection *gc, char *who) {
1842 struct oscar_data *od = (struct oscar_data *)gc->proto_data;
1843 if (gc->permdeny != 3) return;
1844 aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_PERMITREMOVE, who);
1845 }
1846
1847 static void oscar_rem_deny(struct gaim_connection *gc, char *who) {
1848 struct oscar_data *od = (struct oscar_data *)gc->proto_data;
1849 if (gc->permdeny != 4) return;
1850 aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_DENYREMOVE, who);
1851 }
1852
1853 static void oscar_set_permit_deny(struct gaim_connection *gc) {
1854 struct oscar_data *od = (struct oscar_data *)gc->proto_data;
1855 GSList *list;
1856 char buf[MAXMSGLEN];
1857 int at;
1858
1859 switch(gc->permdeny) {
1860 case 1:
1861 aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_DENYADD, gc->username);
1862 break;
1863 case 2:
1864 aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_PERMITADD, gc->username);
1865 break;
1866 case 3:
1867 list = gc->permit;
1868 at = g_snprintf(buf, sizeof(buf), "%s", gc->username);
1869 while (list) {
1870 at += g_snprintf(buf + at, sizeof(buf) - at, "&%s", (char *)list->data);
1871 list = list->next;
1872 }
1873 aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_PERMITADD, buf);
1874 break;
1875 case 4:
1876 list = gc->deny;
1877 at = g_snprintf(buf, sizeof(buf), "%s", gc->username);
1878 while (list) {
1879 at += g_snprintf(buf + at, sizeof(buf) - at, "&%s", (char *)list->data);
1880 list = list->next;
1881 }
1882 aim_bos_changevisibility(od->sess, od->conn, AIM_VISIBILITYCHANGE_DENYADD, buf);
1883 break;
1884 default:
1885 break;
1886 }
1887 }
1888
1829 void oscar_init(struct prpl *ret) { 1889 void oscar_init(struct prpl *ret) {
1830 ret->protocol = PROTO_OSCAR; 1890 ret->protocol = PROTO_OSCAR;
1831 ret->name = oscar_name; 1891 ret->name = oscar_name;
1832 ret->list_icon = oscar_list_icon; 1892 ret->list_icon = oscar_list_icon;
1833 ret->action_menu = oscar_action_menu; 1893 ret->action_menu = oscar_action_menu;
1845 ret->set_idle = oscar_set_idle; 1905 ret->set_idle = oscar_set_idle;
1846 ret->change_passwd = NULL; /* Oscar doesn't have this either */ 1906 ret->change_passwd = NULL; /* Oscar doesn't have this either */
1847 ret->add_buddy = oscar_add_buddy; 1907 ret->add_buddy = oscar_add_buddy;
1848 ret->add_buddies = oscar_add_buddies; 1908 ret->add_buddies = oscar_add_buddies;
1849 ret->remove_buddy = oscar_remove_buddy; 1909 ret->remove_buddy = oscar_remove_buddy;
1850 ret->add_permit = NULL; /* Oscar's permit/deny stuff is messed up */ 1910 ret->add_permit = oscar_add_permit;
1851 ret->add_deny = NULL; /* at least, i can't figure it out :-P */ 1911 ret->add_deny = oscar_add_deny;
1852 ret->rem_permit = NULL; 1912 ret->rem_permit = oscar_rem_permit;
1853 ret->rem_deny = NULL; 1913 ret->rem_deny = oscar_rem_deny;
1854 ret->set_permit_deny = NULL; 1914 ret->set_permit_deny = oscar_set_permit_deny;
1855 ret->warn = oscar_warn; 1915 ret->warn = oscar_warn;
1856 ret->accept_chat = NULL; /* oscar doesn't have accept, it just joins */ 1916 ret->accept_chat = NULL; /* oscar doesn't have accept, it just joins */
1857 ret->join_chat = oscar_join_chat; 1917 ret->join_chat = oscar_join_chat;
1858 ret->chat_invite = oscar_chat_invite; 1918 ret->chat_invite = oscar_chat_invite;
1859 ret->chat_leave = oscar_chat_leave; 1919 ret->chat_leave = oscar_chat_leave;

mercurial