view plugins/error.c @ 1267:9cff8ff01d37

[gaim-migrate @ 1277] WHAT THE FUCK. Why do people use goto? It pisses me off. To no end. Let me say right now, if anyone submits a patch that has a goto in it, they'll probably be very ridiculed, possibly publicly, before i put them on my block list and refuse to accept any patches from them. Ever. Even if they don't have gotos in them. You can't excuse a goto. Ever. X-Chat has them all over. Read src/common/inbound.c. It made me do no fewer than three full-body shivers. Oh yeah, and i moved blist files from %s.blist to %d.blist. gaim will take care of moving it for you. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 14 Dec 2000 13:22:58 +0000
parents ece2d1543b20
children cd938f18f3f8
line wrap: on
line source

#define GAIM_PLUGINS
#include "gaim.h"

#include <stdlib.h>
#include <time.h>

char *gaim_plugin_error(int);

char *gaim_plugin_init(GModule *handle) {
	int error;

	/* so here, we load any callbacks, do the normal stuff */

	srand(time(NULL));
	error = rand() % 3;
	error -= 2;
	/* there's a 1 in 3 chance there *won't* be an error :) */
	return gaim_plugin_error(error);
}

void gaim_plugin_remove() {
	/* this only gets called if we get loaded successfully, and then
	 * unloaded. */
}

char *gaim_plugin_error(int error) {
	/* by the time we've gotten here, all our callbacks are removed.
	 * we just have to deal with what the error was (as defined by us)
	 * and do any other clean-up stuff we need to do. */
	switch (error) {
	case -1:
		return "MY BAD";
	case -2:
		return "Internal plugin error: exiting.";
	default:
		return NULL;
	}
}

char *name() {
	return "Error Tester " VERSION ;
}

char *description() {
	return "A nice little program that causes error messages";
}