Mercurial > pidgin
comparison libfaim/README.gaim @ 237:6ced2f1c8b24
[gaim-migrate @ 247]
How cool is this, libfaim is making a comeback. I completely redid everything,
as was necessary because of the updates to libfaim since gaim 0.9.7. You can
sign on and send/recv IMs, but there's a bad lag between display updates that
I haven't figured out how to fix yet.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Sat, 20 May 2000 00:30:53 +0000 |
parents | |
children | f6e8ea29b24f |
comparison
equal
deleted
inserted
replaced
236:62d470738cc7 | 237:6ced2f1c8b24 |
---|---|
1 Hello, your good friend EW here with a nice little notice that I'm sure will | |
2 affect the ten of you who actually read this. | |
3 | |
4 I'm going to start trying to get gaim to use Oscar through libfaim. As far as I | |
5 can tell, the only thing it used to be able to do is sign on and receive IMs. I | |
6 updated libfaim to what's currently in the libfaim CVS on sourceforge. As of | |
7 right now, I haven't even gotten it to sign on, but theoretically it can receive | |
8 IMs. | |
9 | |
10 I'm going to try to make as few modifications as possible to the libfaim code. | |
11 The only two modifications I'll probably ever make to it are 1) to make my life | |
12 easier (like putting all the .h files in the same directory as the .c files) or | |
13 2) to fix a compilation error that I happen to be able to fix very easily (like | |
14 with a typo or something). That means that what you're getting when you enable | |
15 oscar is basically faimtest (the very instructional program included with the | |
16 libfaim source on sourceforge) with the Gaim GTK front-end. I'll put any changes | |
17 I make into a file, but so far, I haven't made any changes other than moving the | |
18 .h files down a directory. | |
19 | |
20 HOW TO HELP | |
21 =========== | |
22 So here's what you can do in order to help gaim use libfaim. There are basically | |
23 3 steps: | |
24 | |
25 1) In server.c, find an #ifndef USE_OSCAR tag that doesn't have a corresponding | |
26 #else. Find it in a good fun function that you want to implement. Basically | |
27 copy the code from the TOC side for the Oscar side. For example: | |
28 | |
29 void serv_send_im(char *name, char *message, int away) | |
30 { | |
31 char buf[MSG_LEN - 7]; | |
32 | |
33 #ifndef USE_OSCAR | |
34 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name), message, ((away) ? " auto" : "")); | |
35 sflap_send(buf, strlen(buf), TYPE_DATA); | |
36 #endif | |
37 if (!away) | |
38 serv_touch_idle(); | |
39 } | |
40 | |
41 becomes: | |
42 | |
43 void serv_send_im(char *name, char *message, int away) | |
44 { | |
45 char buf[MSG_LEN - 7]; | |
46 | |
47 #ifndef USE_OSCAR | |
48 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name), | |
49 message, ((away) ? " auto" : "")); | |
50 sflap_send(buf, strlen(buf), TYPE_DATA); | |
51 #else | |
52 oscar_send_im(name, message, away); | |
53 #endif | |
54 if (!away) | |
55 serv_touch_idle(); | |
56 } | |
57 | |
58 2) Edit gaim.h to add the new function (you'll see a list of them in there) | |
59 | |
60 3) Edit oscar.c to implement the new function | |
61 | |
62 Most of the functions you're going to need to call use a session and connection | |
63 structure. These are kept statically in oscar.c as gaim_sess and gaim_conn. For | |
64 example, from above: | |
65 | |
66 void oscar_send_im(char *name, char *msg, int away) { | |
67 if (away) | |
68 aim_send_im(gaim_sess, gaim_conn, name, AIM_IMFLAGS_AWAY, msg); | |
69 else | |
70 aim_send_im(gaim_sess, gaim_conn, name, 0, msg); | |
71 } | |
72 | |
73 That should be all that's needed. And that's that. Happy hacking. |