display | more...
Gaim is an AIM client for UNIX-like environments with gtk. The license is GPL. It supports both TOC and OSCAR.

the name makes sense, while( !strcmp(strcat(g, aim) , gaim) )

According to the website (at www.marko.net/gaim), it's "The Penguin Pimpin' IM Clone That's Good For The Soul". It's pronounced "gay-mm", which is not so cool. Not that there's anything wrong with that. Its code is hosted at SourceForge.

I was playing around with the source code to gaim and I found a stupid easter egg.

To find it, first add one of the following gaim developers to your buddy list:

When they're online, triple-click their screen name in the buddy list with your 3rd mouse button (or both mouse buttons if you have a 2-button mouse and Emulate3Buttons enabled on XFree86).

Depending on who you clicked, one of the following messages will appear: I don't know how long this easter egg has existed, but I discovered it on the current CVS, which will soon become version 0.10.0. Either way, it's a really dumb egg.

Related nodes:

Just don't get the cvs unless you're willing to do some debugging. It's buggy as shiat.
As it has been a couple of years since tftv256's writeup about Gaim, I feel that it's time to update this node.

Gaim is probably the most widely used AIM client on Linux, with almost 1,000,000 downloads at the time of this writeup, not counting each copy in many popular Linux distros.

Gaim runs on the following Operating Systems:
Mac OS X

and supports the following protocols:
AIM Oscar
MSN Messenger
Yahoo Messenger

In addition, Gaim supports logging on to multiple accounts at the same time, on any or all of the supported protocols.

The current version of Gaim for Linux/BSD/Mac OS X is v.0.67. The current version of Gaim for Windows is 0.67.

There are many different plugins that can be attached to Gaim to extend its functionality. Some of these include a spell checker, an encryption plugin, and a remote control, so that Gaim can be controlled by another computer.

Source: http://gaim.sourceforge.net

Updated: August 23, 2003

GAIM Plugins aren't too hard to write; for the basic skeleton, look at the simple.c file in the plugins directory of the GAIM source distribution. This write-up aims to provide enough basic information to make gaim plugin writing just a little easier to get into for someone with moderate programming skills. One of the easier things you can do with a GAIM plugin is modify the text of a message. To do so, you'll need to modify the plugin_load function, kinda like this:

static gboolean
plugin_load(GaimPlugin *plugin)
	gaim_debug(GAIM_DEBUG_INFO, "E2New-Plug", "E2New-Plugin loaded.\n");

	void *conv_handle = gaim_conversations_get_handle();

	gaim_signal_connect(conv_handle, "displaying-im-msg",
						plugin, GAIM_CALLBACK(parse_e2), NULL);
	gaim_signal_connect(conv_handle, "displaying-chat-msg",
						plugin, GAIM_CALLBACK(parse_e2), NULL);

	return TRUE;

Now, when a message is sent, the text of the message will first get passed to the function "parse_e2". This function should look about like this:

static gboolean parse_e2(GaimAccount *account, GaimConversation *conv, char **message, void *data){

  char *msg=*message;
  int start_link=-1,end_link=-2,i=0,len=0;
  gboolean in_link=FALSE;

  gaim_debug(GAIM_DEBUG_INFO, "E2New-Plug", "Starting to parse the message\n");


  gaim_debug(GAIM_DEBUG_INFO, "E2New-Plug", "Done...\n");  


  return FALSE;

This is part of the GAIM Everything2 plugin. In this particular example, modify the *msg pointer, and you'll be modifying the text of the message. Generally, you'll want to parse the text, find something you're looking for, ie, square brackets, then allocate a new message buffer, and write out the changes. In the case of this plugin, it looked for square brackets, pulled out what was in between, and then built a new message with that portion replaced by a link to the appropriate Everything2 node.

That's pretty much it! There's obviously a lot more you can do with them; check the various gaim headers. gtkutils.h, and utils.h have some useful function prototypes in them. Unfortunately, the GAIM website doesn't have the API thoroughly documented yet. Also be sure to check out the info struct in simple.c to set some other useful things.

Log in or register to write something here or to contact authors.