#include <stdio.h>

typedef long guint32;
typedef void* gpointer;
#include "gdkkeysyms.h"

struct gtk_compose_seqs_quadruplet_type {
	enum { one, two, three, four } count;
	gpointer array;
	guint32 codepoint;
};

guint32 sequence_1[] = { GDK_space };
guint32 sequence_2[] = { GDK_A };
guint32 sequence_3[] = { GDK_E };
guint32 sequence_4[] = { GDK_I };
guint32 sequence_5[] = { GDK_N };
guint32 sequence_6[] = { GDK_O };
guint32 sequence_7[] = { GDK_U };
guint32 sequence_8[] = { GDK_W };
guint32 sequence_9[] = { GDK_Y };
guint32 sequence_10[] = { GDK_a };
guint32 sequence_11[] = { GDK_e };
guint32 sequence_12[] = { GDK_i };
guint32 sequence_13[] = { GDK_n };
guint32 sequence_14[] = { GDK_o };
guint32 sequence_15[] = { GDK_u };
guint32 sequence_16[] = { GDK_w };
guint32 sequence_17[] = { GDK_y };

static const struct gtk_compose_seqs_quadruplet_type gtk_compose_seqs_quadruplet_1 [] = {
	{ one, (gpointer )sequence_1,  0x0060 },
	{ one, (gpointer )sequence_2,  0x00C0 },
	{ one, (gpointer )sequence_3,  0x00C8 },
	{ one, (gpointer )sequence_4,  0x00CC },
	{ one, (gpointer )sequence_5,  0x01F8 },
	{ one, (gpointer )sequence_6,  0x00D2 },
	{ one, (gpointer )sequence_7,  0x00D9 },
	{ one, (gpointer )sequence_8,  0x1E80 },
	{ one, (gpointer )sequence_9,  0x1EF2 },
	{ one, (gpointer )sequence_10, 0x00E0 },
	{ one, (gpointer )sequence_11, 0x00E8 },
	{ one, (gpointer )sequence_12, 0x00EC },
	{ one, (gpointer )sequence_13, 0x01F9 },
	{ one, (gpointer )sequence_14, 0x00F2 },
	{ one, (gpointer )sequence_15, 0x00F9 },
	{ one, (gpointer )sequence_16, 0x1E81 },
	{ one, (gpointer )sequence_17, 0x1EF3 }
};

guint32 sequence_100[] = { GDK_Greek_ETA };
guint32 sequence_101[] = { GDK_Greek_IOTA };
guint32 sequence_102[] = { GDK_Greek_OMICRON };
guint32 sequence_103[] = { GDK_Greek_UPSILON };
guint32 sequence_104[] = { GDK_Greek_OMEGA };
guint32 sequence_105[] = { GDK_Greek_alpha, GDK_KP_2 };
guint32 sequence_106[] = { GDK_Greek_epsilon, GDK_KP_3 };
guint32 sequence_107[] = { GDK_Greek_eta, GDK_KP_4 };
guint32 sequence_108[] = { GDK_Greek_iota };
guint32 sequence_109[] = { GDK_Greek_omicron };
guint32 sequence_110[] = { GDK_Greek_upsilon };
guint32 sequence_111[] = { GDK_Greek_omega };

static const struct gtk_compose_seqs_quadruplet_type gtk_compose_seqs_quadruplet_2 [] = {
	{ one, (gpointer )sequence_100, 0x0389 },
	{ one, (gpointer )sequence_101, 0x038A },
	{ one, (gpointer )sequence_102, 0x038C },
	{ one, (gpointer )sequence_103, 0x038E },
	{ one, (gpointer )sequence_104, 0x038F },
	{ two, (gpointer )sequence_105, 0x03AC },
	{ two, (gpointer )sequence_106, 0x03AD },
	{ two, (gpointer )sequence_107, 0x03AE },
	{ one, (gpointer )sequence_108, 0x03AF },
	{ one, (gpointer )sequence_109, 0x03CC },
	{ one, (gpointer )sequence_110, 0x03CD },
	{ one, (gpointer )sequence_111, 0x03CE }
};

guint32 sequence_201[] = { GDK_underscore, GDK_A };
guint32 sequence_202[] = { GDK_underscore, GDK_B };
guint32 sequence_203[] = { GDK_underscore, GDK_C };
guint32 sequence_204[] = { GDK_underscore, GDK_D };
guint32 sequence_205[] = { GDK_underscore, GDK_E };
guint32 sequence_206[] = { GDK_underscore, GDK_F };
guint32 sequence_207[] = { GDK_underscore, GDK_G };
guint32 sequence_208[] = { GDK_underscore, GDK_H };
guint32 sequence_209[] = { GDK_underscore, GDK_KP_Equal };

static const struct gtk_compose_seqs_quadruplet_type gtk_compose_seqs_quadruplet_3[] = {
	{ two, (gpointer )sequence_201, 0x2082 },
	{ two, (gpointer )sequence_202, 0x2083 },
	{ two, (gpointer )sequence_203, 0x2084 },
	{ two, (gpointer )sequence_204, 0x2085 },
	{ two, (gpointer )sequence_205, 0x2086 },
	{ two, (gpointer )sequence_206, 0x2087 },
	{ two, (gpointer )sequence_207, 0x2088 },
	{ two, (gpointer )sequence_208, 0x2089 },
	{ two, (gpointer )sequence_209, 0x208C }
};

struct gtk_compose_seqs_type { 
	guint32 first_keysym;
	const struct gtk_compose_seqs_quadruplet_type* quadruplet;
};


static const struct gtk_compose_seqs_type gtk_compose_seqs[] = { 
	{ GDK_grave, 	 gtk_compose_seqs_quadruplet_1 },
        { GDK_acute, 	 gtk_compose_seqs_quadruplet_2 },
	{ GDK_Multi_key, gtk_compose_seqs_quadruplet_3 }
};

int main(void)
{
	return 0;
}
