Mercurial > pidgin.yaz
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/icq/chatsession.c Tue Nov 28 02:22:42 2000 +0000 @@ -0,0 +1,52 @@ + +#include <stdlib.h> + +#include "chatsession.h" +#include "list.h" + +icq_ChatSession *icq_ChatSessionNew(ICQLINK *icqlink) +{ + icq_ChatSession *p=(icq_ChatSession *)malloc(sizeof(icq_ChatSession)); + + if (p) + { + p->remote_handle=0L; + p->status=0; + p->id=0L; + p->icqlink=icqlink; + list_insert(icqlink->icq_ChatSessions, 0, p); + } + + return p; +} + +void icq_ChatSessionDelete(void *p) +{ + free(p); +} + +void icq_ChatSessionClose(icq_ChatSession *p) +{ + list_remove(p->icqlink->icq_ChatSessions, p); + icq_ChatSessionDelete(p); +} + +int _icq_FindChatSession(void *p, va_list data) +{ + DWORD uin=va_arg(data, DWORD); + return (((icq_ChatSession *)p)->remote_uin == uin); +} + +icq_ChatSession *icq_FindChatSession(ICQLINK *icqlink, DWORD uin) +{ + return list_traverse(icqlink->icq_ChatSessions, + _icq_FindChatSession, uin); +} + +void icq_ChatSessionSetStatus(icq_ChatSession *p, int status) +{ + p->status=status; + if(p->id) + if(p->icqlink->icq_RequestNotify) + (*p->icqlink->icq_RequestNotify)(p->icqlink, p->id, ICQ_NOTIFY_CHAT, status, 0); +}