Mercurial > pidgin.yaz
comparison plugins/icq/chatsession.c @ 1152:201ec77f3a60
[gaim-migrate @ 1162]
icq. whoop de doo
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 28 Nov 2000 02:22:42 +0000 |
parents | |
children | 0a766047b4fd |
comparison
equal
deleted
inserted
replaced
1151:428372cc1e39 | 1152:201ec77f3a60 |
---|---|
1 | |
2 #include <stdlib.h> | |
3 | |
4 #include "chatsession.h" | |
5 #include "list.h" | |
6 | |
7 icq_ChatSession *icq_ChatSessionNew(ICQLINK *icqlink) | |
8 { | |
9 icq_ChatSession *p=(icq_ChatSession *)malloc(sizeof(icq_ChatSession)); | |
10 | |
11 if (p) | |
12 { | |
13 p->remote_handle=0L; | |
14 p->status=0; | |
15 p->id=0L; | |
16 p->icqlink=icqlink; | |
17 list_insert(icqlink->icq_ChatSessions, 0, p); | |
18 } | |
19 | |
20 return p; | |
21 } | |
22 | |
23 void icq_ChatSessionDelete(void *p) | |
24 { | |
25 free(p); | |
26 } | |
27 | |
28 void icq_ChatSessionClose(icq_ChatSession *p) | |
29 { | |
30 list_remove(p->icqlink->icq_ChatSessions, p); | |
31 icq_ChatSessionDelete(p); | |
32 } | |
33 | |
34 int _icq_FindChatSession(void *p, va_list data) | |
35 { | |
36 DWORD uin=va_arg(data, DWORD); | |
37 return (((icq_ChatSession *)p)->remote_uin == uin); | |
38 } | |
39 | |
40 icq_ChatSession *icq_FindChatSession(ICQLINK *icqlink, DWORD uin) | |
41 { | |
42 return list_traverse(icqlink->icq_ChatSessions, | |
43 _icq_FindChatSession, uin); | |
44 } | |
45 | |
46 void icq_ChatSessionSetStatus(icq_ChatSession *p, int status) | |
47 { | |
48 p->status=status; | |
49 if(p->id) | |
50 if(p->icqlink->icq_RequestNotify) | |
51 (*p->icqlink->icq_RequestNotify)(p->icqlink, p->id, ICQ_NOTIFY_CHAT, status, 0); | |
52 } |