diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libfaim/README.gaim	Sat May 20 00:30:53 2000 +0000
@@ -0,0 +1,73 @@
+Hello, your good friend EW here with a nice little notice that I'm sure will
+affect the ten of you who actually read this.
+
+I'm going to start trying to get gaim to use Oscar through libfaim. As far as I
+can tell, the only thing it used to be able to do is sign on and receive IMs. I
+updated libfaim to what's currently in the libfaim CVS on sourceforge. As of
+right now, I haven't even gotten it to sign on, but theoretically it can receive
+IMs.
+
+I'm going to try to make as few modifications as possible to the libfaim code.
+The only two modifications I'll probably ever make to it are 1) to make my life
+easier (like putting all the .h files in the same directory as the .c files) or
+2) to fix a compilation error that I happen to be able to fix very easily (like
+with a typo or something). That means that what you're getting when you enable
+oscar is basically faimtest (the very instructional program included with the
+libfaim source on sourceforge) with the Gaim GTK front-end. I'll put any changes
+I make into a file, but so far, I haven't made any changes other than moving the
+.h files down a directory.
+
+HOW TO HELP
+===========
+So here's what you can do in order to help gaim use libfaim. There are basically
+3 steps:
+
+1) In server.c, find an #ifndef USE_OSCAR tag that doesn't have a corresponding
+#else. Find it in a good fun function that you want to implement. Basically
+copy the code from the TOC side for the Oscar side. For example:
+
+void serv_send_im(char *name, char *message, int away)
+{
+	char buf[MSG_LEN - 7];
+
+#ifndef USE_OSCAR
+	g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name),		   message, ((away) ? " auto" : ""));
+	sflap_send(buf, strlen(buf), TYPE_DATA);
+#endif
+	if (!away)
+		serv_touch_idle();
+}
+
+becomes:
+
+void serv_send_im(char *name, char *message, int away)
+{
+        char buf[MSG_LEN - 7];
+
+#ifndef USE_OSCAR
+        g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name),
+	           message, ((away) ? " auto" : ""));
+	sflap_send(buf, strlen(buf), TYPE_DATA);
+#else
+	oscar_send_im(name, message, away);
+#endif
+	if (!away)
+		serv_touch_idle();
+}
+
+2) Edit gaim.h to add the new function (you'll see a list of them in there)
+
+3) Edit oscar.c to implement the new function
+
+Most of the functions you're going to need to call use a session and connection
+structure. These are kept statically in oscar.c as gaim_sess and gaim_conn. For
+example, from above:
+
+void oscar_send_im(char *name, char *msg, int away) {
+	if (away)
+		aim_send_im(gaim_sess, gaim_conn, name, AIM_IMFLAGS_AWAY, msg);
+	else
+		aim_send_im(gaim_sess, gaim_conn, name, 0, msg);
+}
+
+That should be all that's needed. And that's that. Happy hacking.