Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-updates-src > by-pkgid > 88afbf6236a80849140fe0b08214c8ee > files > 1

gtk+2.0-2.24.26-3.mga5.src.rpm

diff -p -up gtk+-2.13.1/modules/input/imtamilvp-tsc.c.extra_im gtk+-2.13.1/modules/input/imtamilvp-tsc.c
--- gtk+-2.13.1/modules/input/imtamilvp-tsc.c.extra_im	2008-06-02 09:12:32.000000000 +0200
+++ gtk+-2.13.1/modules/input/imtamilvp-tsc.c	2008-06-02 09:12:32.000000000 +0200
@@ -0,0 +1,317 @@
+/* 
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: Dinesh Nadarajah <n_dinesh@yahoo.com>
+ *
+ */
+
+#include <config.h>
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
+
+#include <gtk/gtkintl.h>
+//#include "gtkintl.h"
+#include <gtk/gtkimcontextsimple.h>
+#include <gtk/gtkimmodule.h>
+
+GType type_tamilvp_tsc = 0;
+
+static void tamilvp_tsc_class_init (GtkIMContextSimpleClass *class);
+static void tamilvp_tsc_init (GtkIMContextSimple *im_context);
+
+static void
+tamilvp_tsc_register_type (GTypeModule *module)
+{
+  static const GTypeInfo object_info =
+  {
+    sizeof (GtkIMContextSimpleClass),
+    (GBaseInitFunc) NULL,
+    (GBaseFinalizeFunc) NULL,
+    (GClassInitFunc) tamilvp_tsc_class_init,
+    NULL,           /* class_finalize */
+    NULL,           /* class_data */
+    sizeof (GtkIMContextSimple),
+    0,
+    (GInstanceInitFunc) tamilvp_tsc_init,
+  };
+
+  type_tamilvp_tsc = 
+    g_type_module_register_type (module,
+				 GTK_TYPE_IM_CONTEXT_SIMPLE,
+				 "GtkIMContextTamilVPUni",
+				 &object_info, 0);
+}
+
+#define SYL1(a,b,c,d,e,f)  a+128, b, c, d, e, f
+#define SYL2(a,b,c,d,e,f)  a+128, b+128, c, d, e, f
+#define SYL3(a,b,c,d,e,f)  a+128, b+128, c+128, d, e, f
+#define SYL4(a,b,c,d,e,f)  a+128, b+128, c+128, d+128, e, f
+
+
+/* The sequences here match the sequences used in the emacs quail
+ * mode cryllic-translit; they allow entering all characters
+ * in iso-8859-5
+ */
+static guint16 tamil_compose_seqs[] = {
+
+  SYL1(GDK_0,	0,		0,		0,		0,		0x30),
+  SYL1(GDK_1,	0,		0,		0,		0,		0x31),
+  SYL1(GDK_2,	0,		0,		0,		0,		0x32),
+  SYL1(GDK_3,	0,		0,		0,		0,		0x33),
+  SYL1(GDK_4,	0,		0,		0,		0,		0x34),
+  SYL1(GDK_5,	0,		0,		0,		0,		0x35),
+  SYL1(GDK_6,	0,		0,		0,		0,		0x36),
+  SYL1(GDK_7,	0,		0,		0,		0,		0x37),
+  SYL1(GDK_8,	0,		0,		0,		0,		0x38),
+  SYL1(GDK_9,	0,		0,		0,		0,		0x39),
+
+  SYL1(GDK_A,	0,		0,		0,		0,		0xab),
+  SYL2(GDK_A,	GDK_A,	0,		0,		0,		0xac),
+  SYL2(GDK_A,	GDK_I,	0,		0,		0,		0xb3),
+  SYL2(GDK_A,	GDK_U,	0,		0,		0,		0xb6),
+
+  SYL1(GDK_B,	0,		0,		0,		0,		0x00),
+
+  SYL1(GDK_C,	0,		0,		0,		0,		0xbb),
+  SYL2(GDK_C,	GDK_q,	0,		0,		0,		0xef),
+  SYL2(GDK_C,	GDK_u,	0,		0,		0,		0x9a),
+  SYL3(GDK_C,	GDK_u,	GDK_u,	0,		0,		0x9c),
+
+  SYL1(GDK_D,	0,		0,		0,		0,		0x00),
+
+  SYL1(GDK_E,	0,		0,		0,		0,		0xb1),
+  SYL2(GDK_E,	GDK_E,	0,		0,		0,		0xb2),
+  SYL1(GDK_F,	0,		0,		0,		0,		0x00),
+  SYL1(GDK_G,	0,		0,		0,		0,		0x00),
+  SYL1(GDK_H,	0,		0,		0,		0,		0x00),
+  SYL1(GDK_I,	0,		0,		0,		0,		0xfe),
+  SYL2(GDK_I,	GDK_I,	0,		0,		0,		0xae),
+  SYL1(GDK_J,	0,		0,		0,		0,		0x00),
+  SYL1(GDK_K,	0,		0,		0,		0,		0x00),
+
+  SYL1(GDK_L,	0,		0,		0,		0,		0xc7),
+  SYL2(GDK_L,	GDK_q,	0,		0,		0,		0xfb),
+  SYL2(GDK_L,	GDK_u,	0,		0,		0,		0xd9),
+  SYL3(GDK_L,	GDK_u,	GDK_u,	0,		0,		0xe9),
+
+  SYL1(GDK_M,	0,		0,		0,		0,		0x00),
+
+  SYL1(GDK_N,	0,		0,		0,		0,		0xbd),
+  SYL2(GDK_N,	GDK_q,	0,		0,		0,		0xf1),
+  SYL2(GDK_N,	GDK_u,	0,		0,		0,		0xcf),
+  SYL3(GDK_N,	GDK_u,	GDK_u,	0,		0,		0xdf),
+
+  SYL1(GDK_O,	0,		0,		0,		0,		0xb4),
+  SYL2(GDK_O,	GDK_O,	0,		0,		0,		0xb5),
+  SYL1(GDK_P,	0,		0,		0,		0,		0x00),
+  SYL1(GDK_Q,	0,		0,		0,		0,		0xb7),
+
+  SYL1(GDK_R,	0,		0,		0,		0,		0xc8),
+  SYL2(GDK_R,	GDK_q,	0,		0,		0,		0xfc),
+  SYL2(GDK_R,	GDK_u,	0,		0,		0,		0xda),
+  SYL3(GDK_R,	GDK_u,	GDK_u,	0,		0,		0xea),
+
+  SYL1(GDK_S,	0,		0,		0,		0,		0x84),
+  SYL2(GDK_S,	GDK_q,	0,		0,		0,		0x89),
+  SYL1(GDK_T,	0,		0,		0,		0,		0x00),
+  SYL1(GDK_U,	0,		0,		0,		0,		0xaf),
+  SYL2(GDK_U,	GDK_U,	0,		0,		0,		0xb0),
+  SYL1(GDK_V,	0,		0,		0,		0,		0x00),
+  SYL1(GDK_W,	0,		0,		0,		0,		0xb3),
+  SYL1(GDK_X,	0,		0,		0,		0,		0x00),
+  SYL1(GDK_Y,	0,		0,		0,		0,		0x00),
+  SYL1(GDK_Z,	0,		0,		0,		0,		0x00),
+
+  SYL1(GDK_a,	0,		0,		0,		0,		0xa1),
+  SYL2(GDK_a,	GDK_i,	0,		0,		0,		0xb3),
+  SYL2(GDK_a,	GDK_u,	0,		0,		0,		0xaa),
+
+  SYL1(GDK_b,	0,		0,		0,		0,		0xbf),
+  SYL2(GDK_b,	GDK_q,	0,		0,		0,		0xf3),
+  SYL2(GDK_b,	GDK_u,	0,		0,		0,		0xd1),
+  SYL3(GDK_b,	GDK_u,	GDK_u,	0,		0,		0xe1),
+
+  SYL1(GDK_c,	0,		0,		0,		0,		0xba),
+  SYL2(GDK_c,	GDK_q,	0,		0,		0,		0xee),
+  SYL2(GDK_c,	GDK_u,	0,		0,		0,		0xcd),
+  SYL3(GDK_c,	GDK_u,	GDK_u,	0,		0,		0xdd),
+
+  SYL1(GDK_d,	0,		0,		0,		0,		0xbe),
+  SYL2(GDK_d,	GDK_q,	0,		0,		0,		0xf2),
+  SYL2(GDK_d,	GDK_u,	0,		0,		0,		0xd0),
+  SYL3(GDK_d,	GDK_u,	GDK_u,	0,		0,		0xe0),
+
+  SYL1(GDK_e,	0,		0,		0,		0,		0xa6),
+  SYL2(GDK_e,	GDK_e,	0,		0,		0,		0xa7),
+  SYL3(GDK_e,	GDK_e,	GDK_e,	0,		0,		0xb1),
+  SYL4(GDK_e,	GDK_e,	GDK_e,	GDK_e,	0,		0xb2),
+
+  SYL1(GDK_f,	0,		0,		0,		0,		0xaa),
+
+  SYL1(GDK_g,	0,		0,		0,		0,		0xb9),
+  SYL2(GDK_g,	GDK_q,	0,		0,		0,		0xed),
+  SYL2(GDK_g,	GDK_u,	0,		0,		0,		0x99),
+  SYL3(GDK_g,	GDK_u,	GDK_u,	0,		0,		0x9b),
+
+  SYL1(GDK_h,	0,		0,		0,		0,		0x86),
+  SYL2(GDK_h,	GDK_q,	0,		0,		0,		0x8b),
+
+  SYL1(GDK_i,	0,		0,		0,		0,		0xa2),
+  SYL2(GDK_i,	GDK_i,	0,		0,		0,		0xa3),
+
+  SYL1(GDK_j,	0,		0,		0,		0,		0x83),
+  SYL2(GDK_j,	GDK_q,	0,		0,		0,		0x88),
+
+  SYL1(GDK_k,	0,		0,		0,		0,		0xb8),
+  SYL2(GDK_k,	GDK_q,	0,		0,		0,		0xec),
+  SYL2(GDK_k,	GDK_u,	0,		0,		0,		0xcc),
+  SYL3(GDK_k,	GDK_u,	GDK_u,	0,		0,		0xdc),
+
+  SYL1(GDK_l,	0,		0,		0,		0,		0xc4),
+  SYL2(GDK_l,	GDK_q,	0,		0,		0,		0xf8),
+  SYL2(GDK_l,	GDK_u,	0,		0,		0,		0xd6),
+  SYL3(GDK_l,	GDK_u,	GDK_u,	0,		0,		0xe6),
+
+  SYL1(GDK_m,	0,		0,		0,		0,		0xc1),
+  SYL2(GDK_m,	GDK_q,	0,		0,		0,		0xf5),
+  SYL2(GDK_m,	GDK_u,	0,		0,		0,		0xd3),
+  SYL3(GDK_m,	GDK_u,	GDK_u,	0,		0,		0xe3),
+
+  SYL1(GDK_n,	0,		0,		0,		0,		0xc9),
+  SYL2(GDK_n,	GDK_g,	0,		0,		0,		0xb9),
+  SYL3(GDK_n,	GDK_g,	GDK_q,	0,		0,		0xed),
+  SYL3(GDK_n,	GDK_g,	GDK_u,	0,		0,		0x99),
+  SYL4(GDK_n,	GDK_g,	GDK_u,	GDK_u,	0,		0x9b),
+  SYL2(GDK_n,	GDK_j,	0,		0,		0,		0xbb),
+  SYL3(GDK_n,	GDK_j,	GDK_q,	0,		0,		0xef),
+  SYL3(GDK_n,	GDK_j,	GDK_u,	0,		0,		0x9a),
+  SYL4(GDK_n,	GDK_j,	GDK_u,	GDK_u,	0,		0x9c),
+  SYL2(GDK_n,	GDK_q,	0,		0,		0,		0xfd),
+  SYL2(GDK_n,	GDK_u,	0,		0,		0,		0xdb),
+  SYL3(GDK_n,	GDK_u,	GDK_u,	0,		0,		0xeb),
+
+  SYL1(GDK_o,	0,		0,		0,		0,		0xa6),
+  SYL2(GDK_o,	GDK_o,	0,		0,		0,		0xa7),
+
+  SYL1(GDK_p,	0,		0,		0,		0,		0xc0),
+  SYL2(GDK_p,	GDK_q,	0,		0,		0,		0xf4),
+  SYL2(GDK_p,	GDK_u,	0,		0,		0,		0xd2),
+  SYL3(GDK_p,	GDK_u,	GDK_u,	0,		0,		0xe2),
+
+  SYL1(GDK_q,	0,		0,		0,		0,		0),
+
+  SYL1(GDK_r,	0,		0,		0,		0,		0xc3),
+  SYL2(GDK_r,	GDK_q,	0,		0,		0,		0xf7),
+  SYL2(GDK_r,	GDK_u,	0,		0,		0,		0xd5),
+  SYL3(GDK_r,	GDK_u,	GDK_u,	0,		0,		0xe5),
+
+  SYL1(GDK_s,	0,		0,		0,		0,		0x85),
+  SYL2(GDK_s,	GDK_h,	0,		0,		0,		0x84), 
+  SYL3(GDK_s,	GDK_h,	GDK_q,	0,		0,		0x89), 
+  SYL3(GDK_s,	GDK_h,	GDK_r,	0,		0,		0x82), 
+  SYL4(GDK_s,	GDK_h,	GDK_r,	GDK_i,	0,		0x82),
+  SYL2(GDK_s,	GDK_q,	0,		0,		0,		0x8a),
+
+  SYL1(GDK_t,	0,		0,		0,		0,		0xbc),
+  SYL2(GDK_t,	GDK_h,	0,		0,		0,		0xbe),
+  SYL3(GDK_t,	GDK_h,	GDK_q,	0,		0,		0xf2),
+  SYL3(GDK_t,	GDK_h,	GDK_u,	0,		0,		0xd0),
+  SYL4(GDK_t,	GDK_h,	GDK_u,	GDK_u,	0,		0xe0),
+  SYL2(GDK_t,	GDK_i,	0,		0,		0,		0xca),
+  SYL3(GDK_t,	GDK_i,	GDK_i,	0,		0,		0xcb),
+  SYL2(GDK_t,	GDK_q,	0,		0,		0,		0xf0),
+  SYL2(GDK_t,	GDK_u,	0,		0,		0,		0xce),
+  SYL3(GDK_t,	GDK_u,	GDK_u,	0,		0,		0xde),
+
+  SYL1(GDK_u,	0,		0,		0,		0,		0xa4),
+  SYL2(GDK_u,	GDK_u,	0,		0,		0,		0xa5),
+
+  SYL1(GDK_v,	0,		0,		0,		0,		0xc5),
+  SYL2(GDK_v,	GDK_q,	0,		0,		0,		0xf9),
+  SYL2(GDK_v,	GDK_u,	0,		0,		0,		0xd7),
+  SYL3(GDK_v,	GDK_u,	GDK_u,	0,		0,		0xe7),
+
+  SYL1(GDK_w,	0,		0,		0,		0,		0xa8),
+
+  SYL1(GDK_x,	0,		0,		0,		0,		0x87),
+  SYL2(GDK_x,	GDK_q,	0,		0,		0,		0x8c),
+
+  SYL1(GDK_y,	0,		0,		0,		0,		0xc2),
+  SYL2(GDK_y,	GDK_q,	0,		0,		0,		0xf6),
+  SYL2(GDK_y,	GDK_u,	0,		0,		0,		0xd4),
+  SYL3(GDK_y,	GDK_u,	GDK_u,	0,		0,		0xe4),
+
+  SYL1(GDK_z,	0,		0,		0,		0,		0xc6),
+  SYL2(GDK_z,	GDK_q,	0,		0,		0,		0xfa),
+  SYL2(GDK_z,	GDK_u,	0,		0,		0,		0xd8),
+  SYL3(GDK_z,	GDK_u,	GDK_u,	0,		0,		0xe8)
+};
+
+static void
+tamilvp_tsc_class_init (GtkIMContextSimpleClass *class)
+{
+}
+
+static void
+tamilvp_tsc_init (GtkIMContextSimple *im_context)
+{
+  gtk_im_context_simple_add_table (im_context,
+				   tamil_compose_seqs,
+				   4,
+				   G_N_ELEMENTS (tamil_compose_seqs) / (4 + 2));
+}
+
+static const GtkIMContextInfo tamilvp_tsc_info = { 
+  "tamilvp_tsc",		   /* ID */
+  N_("TamilVP (TSCII)"), /* Human readable name */
+  "gtk+",			   /* Translation domain */
+   "",		   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
+  "ta_IN"			           /* Languages for which this module is the default */
+};
+
+static const GtkIMContextInfo *info_list[] = {
+  &tamilvp_tsc_info
+};
+
+void
+im_module_init (GTypeModule *module)
+{
+  tamilvp_tsc_register_type (module);
+}
+
+void 
+im_module_exit (void)
+{
+}
+
+void 
+im_module_list (const GtkIMContextInfo ***contexts,
+		int                      *n_contexts)
+{
+  *contexts = info_list;
+  *n_contexts = G_N_ELEMENTS (info_list);
+}
+
+GtkIMContext *im_module_create (const gchar *context_id)
+{
+  if (strcmp (context_id, "tamilvp_tsc") == 0)
+    return GTK_IM_CONTEXT (g_object_new (type_tamilvp_tsc, NULL));
+  else
+    return NULL;
+}
diff -p -up gtk+-2.13.1/modules/input/imtamilvp-uni.c.extra_im gtk+-2.13.1/modules/input/imtamilvp-uni.c
--- gtk+-2.13.1/modules/input/imtamilvp-uni.c.extra_im	2008-06-02 09:12:32.000000000 +0200
+++ gtk+-2.13.1/modules/input/imtamilvp-uni.c	2008-06-02 09:12:32.000000000 +0200
@@ -0,0 +1,244 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2000 Red Hat Software
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: Owen Taylor <otaylor@redhat.com>
+ *         Dinesh Nadarajah <n_dinesh@yahoo.com>
+ *
+ */
+
+#include <config.h>
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
+
+#include <gtk/gtkintl.h>
+//#include "gtkintl.h"
+#include <gtk/gtkimcontextsimple.h>
+#include <gtk/gtkimmodule.h>
+
+GType type_tamilvp_uni = 0;
+
+static void tamilvp_uni_class_init (GtkIMContextSimpleClass *class);
+static void tamilvp_uni_init (GtkIMContextSimple *im_context);
+
+static void
+tamilvp_uni_register_type (GTypeModule *module)
+{
+  static const GTypeInfo object_info =
+  {
+    sizeof (GtkIMContextSimpleClass),
+    (GBaseInitFunc) NULL,
+    (GBaseFinalizeFunc) NULL,
+    (GClassInitFunc) tamilvp_uni_class_init,
+    NULL,           /* class_finalize */
+    NULL,           /* class_data */
+    sizeof (GtkIMContextSimple),
+    0,
+    (GInstanceInitFunc) tamilvp_uni_init,
+  };
+
+  type_tamilvp_uni = 
+    g_type_module_register_type (module,
+				 GTK_TYPE_IM_CONTEXT_SIMPLE,
+				 "GtkIMContextTamilVPUni",
+				 &object_info, 0);
+}
+
+#define SYL1(a,b,c,d,e,f)  a+128, b, c, d, e, f
+#define SYL2(a,b,c,d,e,f)  a+128, b+128, c, d, e, f
+#define SYL3(a,b,c,d,e,f)  a+128, b+128, c+128, d, e, f
+#define SYL4(a,b,c,d,e,f)  a+128, b+128, c+128, d+128, e, f
+
+/* The sequences here match the sequences used in the emacs quail
+ * mode cryllic-translit; they allow entering all characters
+ * in iso-8859-5
+ */
+static guint16 tamil_compose_seqs[] = {
+
+  SYL1(GDK_0,	0,		0,		0,		0,		0x30),
+  SYL1(GDK_1,	0,		0,		0,		0,		0x0be7),
+  SYL1(GDK_2,	0,		0,		0,		0,		0x0be8),
+  SYL1(GDK_3,	0,		0,		0,		0,		0x0be9),
+  SYL1(GDK_4,	0,		0,		0,		0,		0x0bea),
+  SYL1(GDK_5,	0,		0,		0,		0,		0x0beb),
+  SYL1(GDK_6,	0,		0,		0,		0,		0x0bec),
+  SYL1(GDK_7,	0,		0,		0,		0,		0x0bed),
+  SYL1(GDK_8,	0,		0,		0,		0,		0x0bee),
+  SYL1(GDK_9,	0,		0,		0,		0,		0x0bef),
+
+  SYL1(GDK_A,	0,		0,		0,		0,		0x0b85),
+  SYL2(GDK_A,	GDK_A,	0,		0,		0,		0x0b86),
+  SYL2(GDK_A,	GDK_I,	0,		0,		0,		0x0b90),
+  SYL2(GDK_A,	GDK_U,	0,		0,		0,		0x0b94),
+  SYL1(GDK_B,	0,		0,		0,		0,		0x0000),
+
+  SYL1(GDK_C,	0,		0,		0,		0,		0x0b9e),
+  SYL1(GDK_D,	0,		0,		0,		0,		0x0000),
+
+  SYL1(GDK_E,	0,		0,		0,		0,		0x0b8e),
+  SYL2(GDK_E,	GDK_E,	0,		0,		0,		0x0b8f),
+  SYL1(GDK_F,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_G,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_H,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_I,	0,		0,		0,		0,		0x0b87),
+  SYL2(GDK_I,	GDK_I,	0,		0,		0,		0x0b88),
+
+  SYL1(GDK_J,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_K,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_L,	0,		0,		0,		0,		0x0bb3),
+
+  SYL1(GDK_M,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_N,	0,		0,		0,		0,		0x0ba3),
+
+  SYL1(GDK_O,	0,		0,		0,		0,		0x0b92),
+  SYL2(GDK_O,	GDK_O,	0,		0,		0,		0x0b93),
+  SYL1(GDK_P,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_Q,	0,		0,		0,		0,		0x0b83),
+
+  SYL1(GDK_R,	0,		0,		0,		0,		0x0bb1),
+
+  SYL1(GDK_S,	0,		0,		0,		0,		0x0bb7),
+  SYL1(GDK_T,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_U,	0,		0,		0,		0,		0x0b89),
+  SYL2(GDK_U,	GDK_U,	0,		0,		0,		0x0b8a),
+  SYL1(GDK_V,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_W,	0,		0,		0,		0,		0x0b90),
+
+  SYL1(GDK_X,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_Y,	0,		0,		0,		0,		0x0000),
+  SYL1(GDK_Z,	0,		0,		0,		0,		0x0000),
+
+  SYL1(GDK_a,	0,		0,		0,		0,		0x0bbe),
+  SYL2(GDK_a,	GDK_i,	0,		0,		0,		0x0bc8),
+  SYL2(GDK_a,	GDK_u,	0,		0,		0,		0x0bcc),
+
+  SYL1(GDK_b,	0,		0,		0,		0,		0x0ba8),
+
+  SYL1(GDK_c,	0,		0,		0,		0,		0x0b9a),
+
+  SYL1(GDK_d,	0,		0,		0,		0,		0x0ba4),
+
+  SYL1(GDK_e,	0,		0,		0,		0,		0x0bc6),
+  SYL2(GDK_e,	GDK_e,	0,		0,		0,		0x0bc7),
+
+  SYL1(GDK_f,	0,		0,		0,		0,		0x0000),
+
+  SYL1(GDK_g,	0,		0,		0,		0,		0x0b99),
+
+  SYL1(GDK_h,	0,		0,		0,		0,		0x0bb9),
+
+  SYL1(GDK_i,	0,		0,		0,		0,		0x0bbf),
+  SYL2(GDK_i,	GDK_i,	0,		0,		0,		0x0bc0),
+
+  SYL1(GDK_j,	0,		0,		0,		0,		0x0b9c),
+
+  SYL1(GDK_k,	0,		0,		0,		0,		0x0b95),
+
+  SYL1(GDK_l,	0,		0,		0,		0,		0x0bb2),
+
+  SYL1(GDK_m,	0,		0,		0,		0,		0x0bae),
+
+  SYL1(GDK_n,	0,		0,		0,		0,		0x0ba9),
+  SYL2(GDK_n,	GDK_g,	0,		0,		0,		0x0b99),
+  SYL2(GDK_n,	GDK_j,	0,		0,		0,		0x0b9e),
+
+  SYL1(GDK_o,	0,		0,		0,		0,		0x0bca),
+  SYL2(GDK_o,	GDK_o,	0,		0,		0,		0x0bcb),
+
+  SYL1(GDK_p,	0,		0,		0,		0,		0x0baa),
+
+  SYL1(GDK_q,	0,		0,		0,		0,		0x0bcd),
+
+  SYL1(GDK_r,	0,		0,		0,		0,		0x0bb0),
+
+  SYL1(GDK_s,	0,		0,		0,		0,		0x0bb8),
+  SYL2(GDK_s,	GDK_h,	0,		0,		0,		0x0bb7),  
+
+  SYL1(GDK_t,	0,		0,		0,		0,		0x0b9f),
+  SYL2(GDK_t,	GDK_h,	0,		0,		0,		0x0ba4),
+
+  SYL1(GDK_u,	0,		0,		0,		0,		0x0bc1),
+  SYL2(GDK_u,	GDK_u,	0,		0,		0,		0x0bc2),
+
+  SYL1(GDK_v,	0,		0,		0,		0,		0x0bb5),
+
+  SYL1(GDK_w,	0,		0,		0,		0,		0x0bc8),
+
+  SYL1(GDK_x,	0,		0,		0,		0,		0x0000),
+
+  SYL1(GDK_y,	0,		0,		0,		0,		0x0baf),
+
+  SYL1(GDK_z,	0,		0,		0,		0,		0x0bb4)
+
+};
+
+
+
+static void
+tamilvp_uni_class_init (GtkIMContextSimpleClass *class)
+{
+}
+
+static void
+tamilvp_uni_init (GtkIMContextSimple *im_context)
+{
+  gtk_im_context_simple_add_table (im_context,
+				   tamil_compose_seqs,
+				   4,
+				   G_N_ELEMENTS (tamil_compose_seqs) / (4 + 2));
+}
+
+static const GtkIMContextInfo tamilvp_uni_info = { 
+  "tamilvp_uni",		   /* ID */
+  N_("TamilVP (UNICODE)"), /* Human readable name */
+  "gtk+",			   /* Translation domain */
+   "",		   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
+  "ta_IN.UTF8"			           /* Languages for which this module is the default */
+};
+
+static const GtkIMContextInfo *info_list[] = {
+  &tamilvp_uni_info
+};
+
+void
+im_module_init (GTypeModule *module)
+{
+  tamilvp_uni_register_type (module);
+}
+
+void 
+im_module_exit (void)
+{
+}
+
+void 
+im_module_list (const GtkIMContextInfo ***contexts,
+		int                      *n_contexts)
+{
+  *contexts = info_list;
+  *n_contexts = G_N_ELEMENTS (info_list);
+}
+
+GtkIMContext *im_module_create (const gchar *context_id)
+{
+  if (strcmp (context_id, "tamilvp_uni") == 0)
+    return GTK_IM_CONTEXT (g_object_new (type_tamilvp_uni, NULL));
+  else
+    return NULL;
+}
diff -p -up gtk+-2.13.1/modules/input/imtelex.c.extra_im gtk+-2.13.1/modules/input/imtelex.c
--- gtk+-2.13.1/modules/input/imtelex.c.extra_im	2008-06-02 09:12:32.000000000 +0200
+++ gtk+-2.13.1/modules/input/imtelex.c	2008-06-02 09:12:32.000000000 +0200
@@ -0,0 +1,428 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2000 Red Hat Software
+ * Copyright (C) 2000 SuSE Linux Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Original author: Owen Taylor <otaylor@redhat.com>
+ * 
+ * Modified for VIQR - Robert Brady <robert@suse.co.uk>
+ * Modified for TELEX - pclouds <pclouds@users.sf.net>
+ *
+ */
+
+#include <config.h>
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+
+#include <gtk/gtkintl.h>
+#include <gtk/gtkimcontextsimple.h>
+#include <gtk/gtkimmodule.h>
+
+GType type_telex_translit = 0;
+
+static void telex_class_init (GtkIMContextSimpleClass *class);
+static void telex_init (GtkIMContextSimple *im_context);
+
+static void
+telex_register_type (GTypeModule *module)
+{
+  static const GTypeInfo object_info =
+  {
+    sizeof (GtkIMContextSimpleClass),
+    (GBaseInitFunc) NULL,
+    (GBaseFinalizeFunc) NULL,
+    (GClassInitFunc) telex_class_init,
+    NULL,           /* class_finalize */
+    NULL,           /* class_data */
+    sizeof (GtkIMContextSimple),
+    0,
+    (GInstanceInitFunc) telex_init,
+  };
+
+  type_telex_translit = 
+    g_type_module_register_type (module,
+				 GTK_TYPE_IM_CONTEXT_SIMPLE,
+				 "GtkIMContextTelex",
+				 &object_info, 0);
+}
+
+static guint16 telex_compose_seqs[] = {
+  GDK_A,                   0,                0, 0, 0, 'A',
+  GDK_A,  GDK_A,           0,                0, 0,    0xc2,
+  GDK_A,  GDK_A,           GDK_F,            0, 0,    0x1ea6,
+  GDK_A,  GDK_A,           GDK_J,            0, 0,    0x1eac,
+  GDK_A,  GDK_A,           GDK_R,            0, 0,    0x1ea8,
+  GDK_A,  GDK_A,           GDK_S,            0, 0,    0x1ea4,
+  GDK_A,  GDK_A,           GDK_X,            0, 0,    0x1eaa,
+  GDK_A,  GDK_A,           GDK_f,            0, 0,    0x1ea6,
+  GDK_A,  GDK_A,           GDK_j,            0, 0,    0x1eac,
+  GDK_A,  GDK_A,           GDK_r,            0, 0,    0x1ea8,
+  GDK_A,  GDK_A,           GDK_s,            0, 0,    0x1ea4,
+  GDK_A,  GDK_A,           GDK_x,            0, 0,    0x1eaa,
+  GDK_A,                   GDK_F,            0, 0, 0, 0xc0,
+  GDK_A,                   GDK_J,            0, 0, 0, 0x1ea0,
+  GDK_A,                   GDK_R,            0, 0, 0, 0x1ea2,
+  GDK_A,                   GDK_S,            0, 0, 0, 0xc1,
+  GDK_A,  GDK_W,           0,                0, 0,    0x102,
+  GDK_A,  GDK_W,           GDK_F,            0, 0,    0x1eb0,
+  GDK_A,  GDK_W,           GDK_J,            0, 0,    0x1eb6,
+  GDK_A,  GDK_W,           GDK_R,            0, 0,    0x1eb2,
+  GDK_A,  GDK_W,           GDK_S,            0, 0,    0x1eae,
+  GDK_A,  GDK_W,           GDK_X,            0, 0,    0x1eb4,
+  GDK_A,  GDK_W,           GDK_f,            0, 0,    0x1eb0,
+  GDK_A,  GDK_W,           GDK_j,            0, 0,    0x1eb6,
+  GDK_A,  GDK_W,           GDK_r,            0, 0,    0x1eb2,
+  GDK_A,  GDK_W,           GDK_s,            0, 0,    0x1eae,
+  GDK_A,                   GDK_X,            0, 0, 0, 0xc3,
+  GDK_A,  GDK_W,           GDK_x,            0, 0,    0x1eb4,
+  GDK_A,  GDK_a,           0,                0, 0,    0xc2,
+  GDK_A,  GDK_a,           GDK_f,            0, 0,    0x1ea6,
+  GDK_A,  GDK_a,           GDK_j,            0, 0,    0x1eac,
+  GDK_A,  GDK_a,           GDK_r,            0, 0,    0x1ea8,
+  GDK_A,  GDK_a,           GDK_s,            0, 0,    0x1ea4,
+  GDK_A,  GDK_a,           GDK_x,            0, 0,    0x1eaa,
+  GDK_A,                   GDK_f,            0, 0, 0, 0xc0,
+  GDK_A,                   GDK_j,            0, 0, 0, 0x1ea0,
+  GDK_A,                   GDK_r,            0, 0, 0, 0x1ea2,
+  GDK_A,                   GDK_s,            0, 0, 0, 0xc1,
+  GDK_A,  GDK_w,           0,                0, 0,    0x102,
+  GDK_A,  GDK_w,           GDK_f,            0, 0,    0x1eb0,
+  GDK_A,  GDK_w,           GDK_j,            0, 0,    0x1eb6,
+  GDK_A,  GDK_w,           GDK_r,            0, 0,    0x1eb2,
+  GDK_A,  GDK_w,           GDK_s,            0, 0,    0x1eae,
+  GDK_A,  GDK_w,           GDK_x,            0, 0,    0x1eb4,
+  GDK_A,                   GDK_x,            0, 0, 0, 0xc3,
+  GDK_D,                   0,                0, 0, 0, 'D',
+  GDK_D,                   GDK_D,            0, 0, 0, 0x110,
+  GDK_D,                   GDK_d,            0, 0, 0, 0x110,
+  GDK_E,                   0,                0, 0, 0, 'E',
+  GDK_E,  GDK_E,           0,                0, 0,    0xca,
+  GDK_E,  GDK_E,           GDK_F,            0, 0,    0x1ec0,
+  GDK_E,  GDK_E,           GDK_J,            0, 0,    0x1ec6,
+  GDK_E,  GDK_E,           GDK_R,            0, 0,    0x1ec2,
+  GDK_E,  GDK_E,           GDK_S,            0, 0,    0x1ebe,
+  GDK_E,  GDK_E,           GDK_X,            0, 0,    0x1ec4,
+  GDK_E,  GDK_E,           GDK_f,            0, 0,    0x1ec0,
+  GDK_E,  GDK_E,           GDK_j,            0, 0,    0x1ec6,
+  GDK_E,  GDK_E,           GDK_r,            0, 0,    0x1ec2,
+  GDK_E,  GDK_E,           GDK_s,            0, 0,    0x1ebe,
+  GDK_E,  GDK_E,           GDK_x,            0, 0,    0x1ec4,
+  GDK_E,                   GDK_F,            0, 0, 0, 0xc8,
+  GDK_E,                   GDK_J,            0, 0, 0, 0x1eb8,
+  GDK_E,                   GDK_R,            0, 0, 0, 0x1eba,
+  GDK_E,                   GDK_S,            0, 0, 0, 0xc9,
+  GDK_E,                   GDK_X,            0, 0, 0, 0x1ebc,
+  GDK_E,                   GDK_f,            0, 0, 0, 0xc8,
+  GDK_E,                   GDK_j,            0, 0, 0, 0x1eb8,
+  GDK_E,                   GDK_r,            0, 0, 0, 0x1eba,
+  GDK_E,                   GDK_s,            0, 0, 0, 0xc9,
+  GDK_E,                   GDK_x,            0, 0, 0, 0x1ebc,
+  GDK_I,                   0,                0, 0, 0, 'I',
+  GDK_I,                   GDK_F,            0, 0, 0, 0xcc,
+  GDK_I,                   GDK_J,            0, 0, 0, 0x1eca,
+  GDK_I,                   GDK_R,            0, 0, 0, 0x1ec8,
+  GDK_I,                   GDK_S,            0, 0, 0, 0xcd,
+  GDK_I,                   GDK_X,            0, 0, 0, 0x128,
+  GDK_I,                   GDK_f,            0, 0, 0, 0xcc,
+  GDK_I,                   GDK_j,            0, 0, 0, 0x1eca,
+  GDK_I,                   GDK_r,            0, 0, 0, 0x1ec8,
+  GDK_I,                   GDK_s,            0, 0, 0, 0xcd,
+  GDK_I,                   GDK_x,            0, 0, 0, 0x128,
+  GDK_O,                   0,                0, 0, 0, 'O',
+  GDK_O,                   GDK_F,            0, 0, 0, 0xD2,
+  GDK_O,                   GDK_J,            0, 0, 0, 0x1ecc,
+  GDK_O,  GDK_O,           0,                0, 0,    0xd4,
+  GDK_O,  GDK_O,           GDK_F,            0, 0,    0x1ed2,
+  GDK_O,  GDK_O,           GDK_J,            0, 0,    0x1ed8,
+  GDK_O,  GDK_O,           GDK_R,            0, 0,    0x1ed4,
+  GDK_O,  GDK_O,           GDK_S,            0, 0,    0x1ed0,
+  GDK_O,  GDK_O,           GDK_X,            0, 0,    0x1ed6,
+  GDK_O,  GDK_O,           GDK_f,            0, 0,    0x1ed2,
+  GDK_O,  GDK_O,           GDK_j,            0, 0,    0x1ed8,
+  GDK_O,  GDK_O,           GDK_r,            0, 0,    0x1ed4,
+  GDK_O,  GDK_O,           GDK_s,            0, 0,    0x1ed0,
+  GDK_O,  GDK_O,           GDK_x,            0, 0,    0x1ed6,
+  GDK_O,                   GDK_R,            0, 0, 0, 0x1ece,
+  GDK_O,                   GDK_S,            0, 0, 0, 0xD3,
+  GDK_O,  GDK_W,           0,                0, 0,    0x1a0,
+  GDK_O,  GDK_W,           GDK_F,            0, 0,    0x1edc,
+  GDK_O,  GDK_W,           GDK_J,            0, 0,    0x1ee2,
+  GDK_O,  GDK_W,           GDK_R,            0, 0,    0x1ede,
+  GDK_O,  GDK_W,           GDK_S,            0, 0,    0x1eda,
+  GDK_O,  GDK_W,           GDK_X,            0, 0,    0x1ee0,
+  GDK_O,  GDK_W,           GDK_f,            0, 0,    0x1edc,
+  GDK_O,  GDK_W,           GDK_j,            0, 0,    0x1ee2,
+  GDK_O,  GDK_W,           GDK_r,            0, 0,    0x1ede,
+  GDK_O,  GDK_W,           GDK_s,            0, 0,    0x1eda,
+  GDK_O,  GDK_W,           GDK_x,            0, 0,    0x1ee0,
+  GDK_O,                   GDK_X,            0, 0, 0, 0xD5,
+  GDK_O,                   GDK_f,            0, 0, 0, 0xD2,
+  GDK_O,                   GDK_j,            0, 0, 0, 0x1ecc,
+  GDK_O,                   GDK_r,            0, 0, 0, 0x1ece,
+  GDK_O,                   GDK_s,            0, 0, 0, 0xD3,
+  GDK_O,                   GDK_x,            0, 0, 0, 0xD5,
+  GDK_U,                   0,                0, 0, 0, 'U',
+  GDK_U,                   GDK_F,            0, 0, 0, 0xd9,
+  GDK_U,                   GDK_J,            0, 0, 0, 0x1ee4,
+  GDK_U,                   GDK_R,            0, 0, 0, 0x1ee6,
+  GDK_U,                   GDK_S,            0, 0, 0, 0xDA,
+  GDK_U,  GDK_W,           0,                0, 0,    0x1af,
+  GDK_U,  GDK_W,           GDK_F,            0, 0,    0x1eea,
+  GDK_U,  GDK_W,           GDK_J,            0, 0,    0x1ef0,
+  GDK_U,  GDK_W,           GDK_R,            0, 0,    0x1eec,
+  GDK_U,  GDK_W,           GDK_S,            0, 0,    0x1ee8,
+  GDK_U,  GDK_W,           GDK_X,            0, 0,    0x1eee,
+  GDK_U,  GDK_W,           GDK_f,            0, 0,    0x1eea,
+  GDK_U,  GDK_W,           GDK_j,            0, 0,    0x1ef0,
+  GDK_U,  GDK_W,           GDK_r,            0, 0,    0x1eec,
+  GDK_U,  GDK_W,           GDK_s,            0, 0,    0x1ee8,
+  GDK_U,  GDK_W,           GDK_x,            0, 0,    0x1eee,
+  GDK_U,                   GDK_X,            0, 0, 0, 0x168,
+  GDK_U,                   GDK_f,            0, 0, 0, 0xd9,
+  GDK_U,                   GDK_j,            0, 0, 0, 0x1ee4,
+  GDK_U,                   GDK_r,            0, 0, 0, 0x1ee6,
+  GDK_U,                   GDK_s,            0, 0, 0, 0xDA,
+  GDK_U,                   GDK_x,            0, 0, 0, 0x168,
+  GDK_Y,                   0,                0, 0, 0, 'Y',
+  GDK_Y,                   GDK_F,            0, 0, 0, 0x1ef2,
+  GDK_Y,                   GDK_J,            0, 0, 0, 0x1ef4,
+  GDK_Y,                   GDK_R,            0, 0, 0, 0x1ef6,
+  GDK_Y,                   GDK_S,            0, 0, 0, 0xdd,
+  GDK_Y,                   GDK_X,            0, 0, 0, 0x1ef8,
+  GDK_Y,                   GDK_f,            0, 0, 0, 0x1ef2,
+  GDK_Y,                   GDK_j,            0, 0, 0, 0x1ef4,
+  GDK_Y,                   GDK_r,            0, 0, 0, 0x1ef6,
+  GDK_Y,                   GDK_s,            0, 0, 0, 0xdd,
+  GDK_Y,                   GDK_x,            0, 0, 0, 0x1ef8,
+  /* Do we need anything else here? */
+  GDK_backslash,           0,                0, 0, 0, 0,
+  GDK_backslash,           GDK_D,            0, 0, 0, 'D',
+  GDK_backslash,           GDK_backslash,    0, 0, 0, '\\',
+  GDK_backslash,           GDK_d,            0, 0, 0, 'd',
+  GDK_backslash,           GDK_f,            0, 0, 0, 'f',
+  GDK_backslash,           GDK_j,            0, 0, 0, 'j',
+  GDK_backslash,           GDK_r,            0, 0, 0, 'r',
+  GDK_backslash,           GDK_s,            0, 0, 0, 's',
+  GDK_backslash,           GDK_w,            0, 0, 0, 'w',
+  GDK_backslash,           GDK_x,            0, 0, 0, 'x',
+  GDK_a,                   0,                0, 0, 0, 'a',
+  GDK_a,  GDK_a,           0,                0, 0,    0xe2,
+  GDK_a,  GDK_a,           GDK_f,            0, 0,    0x1ea7,
+  GDK_a,  GDK_a,           GDK_j,            0, 0,    0x1ead,
+  GDK_a,  GDK_a,           GDK_r,            0, 0,    0x1ea9,
+  GDK_a,  GDK_a,           GDK_s,            0, 0,    0x1ea5,
+  GDK_a,  GDK_a,           GDK_x,            0, 0,    0x1eab,
+  GDK_a,                   GDK_f,            0, 0, 0, 0xe0,
+  GDK_a,                   GDK_j,            0, 0, 0, 0x1ea1,
+  GDK_a,                   GDK_r,            0, 0, 0, 0x1ea3,
+  GDK_a,                   GDK_s,            0, 0, 0, 0xe1,
+  GDK_a,  GDK_w,           0,                0, 0,    0x103,
+  GDK_a,  GDK_w,           GDK_f,            0, 0,    0x1eb1,
+  GDK_a,  GDK_w,           GDK_j,            0, 0,    0x1eb7,
+  GDK_a,  GDK_w,           GDK_r,            0, 0,    0x1eb3,
+  GDK_a,  GDK_w,           GDK_s,            0, 0,    0x1eaf,
+  GDK_a,  GDK_w,           GDK_x,            0, 0,    0x1eb5,
+  GDK_a,                   GDK_x,            0, 0, 0, 0xe3,
+  GDK_d,                   0,                0, 0, 0, 'd',
+  GDK_d,                   GDK_D,            0, 0, 0, 0x111,
+  GDK_d,                   GDK_d,            0, 0, 0, 0x111,
+  GDK_e,                   0,                0, 0, 0, 'e',
+  GDK_e,  GDK_e,           0,                0, 0,    0xea,
+  GDK_e,  GDK_e,           GDK_f,            0, 0,    0x1ec1,
+  GDK_e,  GDK_e,           GDK_j,            0, 0,    0x1ec7,
+  GDK_e,  GDK_e,           GDK_r,            0, 0,    0x1ec3,
+  GDK_e,  GDK_e,           GDK_s,            0, 0,    0x1ebf,
+  GDK_e,  GDK_e,           GDK_x,            0, 0,    0x1ec5,
+  GDK_e,                   GDK_f,            0, 0, 0, 0xe8,
+  GDK_e,                   GDK_j,            0, 0, 0, 0x1eb9,
+  GDK_e,                   GDK_r,            0, 0, 0, 0x1ebb,
+  GDK_e,                   GDK_s,            0, 0, 0, 0xe9,
+  GDK_e,                   GDK_x,            0, 0, 0, 0x1ebd,
+  GDK_i,                   0,                0, 0, 0, 'i',
+  GDK_i,                   GDK_f,            0, 0, 0, 0xec,
+  GDK_i,                   GDK_j,            0, 0, 0, 0x1ecb,
+  GDK_i,                   GDK_r,            0, 0, 0, 0x1ec9,
+  GDK_i,                   GDK_s,            0, 0, 0, 0xed,
+  GDK_i,                   GDK_x,            0, 0, 0, 0x129,
+  GDK_o,                   0,                0, 0, 0, 'o',
+  GDK_o,                   GDK_f,            0, 0, 0, 0xF2,
+  GDK_o,                   GDK_j,            0, 0, 0, 0x1ecd,
+  GDK_o,  GDK_o,           0,                0, 0,    0xf4,
+  GDK_o,  GDK_o,           GDK_f,            0, 0,    0x1ed3,
+  GDK_o,  GDK_o,           GDK_j,            0, 0,    0x1ed9,
+  GDK_o,  GDK_o,           GDK_r,            0, 0,    0x1ed5,
+  GDK_o,  GDK_o,           GDK_s,            0, 0,    0x1ed1,
+  GDK_o,  GDK_o,           GDK_x,            0, 0,    0x1ed7,
+  GDK_o,                   GDK_r,            0, 0, 0, 0x1ecf,
+  GDK_o,                   GDK_s,            0, 0, 0, 0xF3,
+  GDK_o,  GDK_w,           0,                0, 0,    0x1a1,
+  GDK_o,  GDK_w,           GDK_f,            0, 0,    0x1edd,
+  GDK_o,  GDK_w,           GDK_j,            0, 0,    0x1ee3,
+  GDK_o,  GDK_w,           GDK_r,            0, 0,    0x1edf,
+  GDK_o,  GDK_w,           GDK_s,            0, 0,    0x1edb,
+  GDK_o,  GDK_w,           GDK_x,            0, 0,    0x1ee1,
+  GDK_o,                   GDK_x,            0, 0, 0, 0xF5,
+  GDK_u,                   0,                0, 0, 0, 'u',
+  GDK_u,                   GDK_f,            0, 0, 0, 0xf9,
+  GDK_u,                   GDK_j,            0, 0, 0, 0x1ee5,
+  GDK_u,                   GDK_r,            0, 0, 0, 0x1ee7,
+  GDK_u,                   GDK_s,            0, 0, 0, 0xFA,
+  GDK_u,  GDK_w,           0,                0, 0,    0x1b0,
+  GDK_u,  GDK_w,           GDK_f,            0, 0,    0x1eeb,
+  GDK_u,  GDK_w,           GDK_j,            0, 0,    0x1ef1,
+  GDK_u,  GDK_w,           GDK_r,            0, 0,    0x1eed,
+  GDK_u,  GDK_w,           GDK_s,            0, 0,    0x1ee9,
+  GDK_u,  GDK_w,           GDK_x,            0, 0,    0x1eef,
+  GDK_u,                   GDK_x,            0, 0, 0, 0x169,
+  GDK_y,                   0,                0, 0, 0, 'y',
+  GDK_y,                   GDK_f,            0, 0, 0, 0x1ef3,
+  GDK_y,                   GDK_j,            0, 0, 0, 0x1ef5,
+  GDK_y,                   GDK_r,            0, 0, 0, 0x1ef7,
+  GDK_y,                   GDK_s,            0, 0, 0, 0xfd,
+  GDK_y,                   GDK_x,            0, 0, 0, 0x1ef9,
+  /*
+  GDK_a,                   0,                0, 0, 0, 'a',
+  GDK_a,                   GDK_s,            0, 0, 0, 0xe1,
+  GDK_a, GDK_w,            0,                0, 0,    0x103,
+  GDK_a, GDK_w,            GDK_s,            0, 0,    0x1eaf,
+  GDK_a, GDK_w,            GDK_j,            0, 0,    0x1eb7,
+  GDK_a, GDK_w,            GDK_r,            0, 0,    0x1eb3,
+  GDK_a, GDK_w,            GDK_f,            0, 0,    0x1eb1,
+  GDK_a, GDK_w,            GDK_x,            0, 0,    0x1eb5,
+  GDK_a,                   GDK_j,            0, 0, 0, 0x1ea1,
+  GDK_a,                   GDK_r,            0, 0, 0, 0x1ea3,
+  GDK_a, GDK_a,            0,                0, 0,    0xe2,
+  GDK_a, GDK_a,            GDK_s,            0, 0,    0x1ea5,
+  GDK_a, GDK_a,            GDK_j,            0, 0,    0x1ead,
+  GDK_a, GDK_a,            GDK_r,            0, 0,    0x1ea9,
+  GDK_a, GDK_a,            GDK_f,            0, 0,    0x1ea7,
+  GDK_a, GDK_a,            GDK_x,            0, 0,    0x1eab,
+  GDK_a,                   GDK_f,            0, 0, 0, 0xe0,
+  GDK_a,                   GDK_x,            0, 0, 0, 0xe3,
+  GDK_d,                   0,                0, 0, 0, 'd',
+  GDK_d,                   GDK_d,            0, 0, 0, 0x111,
+  GDK_e,                   0,                0, 0, 0, 'e',
+  GDK_e,                   GDK_s,            0, 0, 0, 0xe9,
+  GDK_e,                   GDK_j,            0, 0, 0, 0x1eb9,
+  GDK_e,                   GDK_r,            0, 0, 0, 0x1ebb,
+  GDK_e, GDK_e,            0,                0, 0,    0xea,
+  GDK_e, GDK_e,            GDK_s,            0, 0,    0x1ebf,
+  GDK_e, GDK_e,            GDK_j,            0, 0,    0x1ec7,
+  GDK_e, GDK_e,            GDK_r,            0, 0,    0x1ec3,
+  GDK_e, GDK_e,            GDK_f,            0, 0,    0x1ec1,
+  GDK_e, GDK_e,            GDK_x,            0, 0,    0x1ec5,
+  GDK_e,                   GDK_f,            0, 0, 0, 0xe8,
+  GDK_e,                   GDK_x,            0, 0, 0, 0x1ebd,
+  GDK_i,                   0,                0, 0, 0, 'i',
+  GDK_i,                   GDK_s,            0, 0, 0, 0xed,
+  GDK_i,                   GDK_j,            0, 0, 0, 0x1ecb,
+  GDK_i,                   GDK_r,            0, 0, 0, 0x1ec9,
+  GDK_i,                   GDK_f,            0, 0, 0, 0xec,
+  GDK_i,                   GDK_x,            0, 0, 0, 0x129,
+  GDK_o,                   0,                0, 0, 0, 'o',
+  GDK_o,                   GDK_s,            0, 0, 0, 0xF3,
+  GDK_o,  GDK_w,           0,                0, 0,    0x1a1,
+  GDK_o,  GDK_w,           GDK_s,            0, 0,    0x1edb,
+  GDK_o,  GDK_w,           GDK_j,            0, 0,    0x1ee3,
+  GDK_o,  GDK_w,           GDK_r,            0, 0,    0x1edf,
+  GDK_o,  GDK_w,           GDK_f,            0, 0,    0x1edd,
+  GDK_o,  GDK_w,           GDK_x,            0, 0,    0x1ee1,
+  GDK_o,                   GDK_j,            0, 0, 0, 0x1ecd,
+  GDK_o,                   GDK_r,            0, 0, 0, 0x1ecf,
+  GDK_o,  GDK_o,           0,                0, 0,    0xf4,
+  GDK_o,  GDK_o,           GDK_s,            0, 0,    0x1ed1,
+  GDK_o,  GDK_o,           GDK_j,            0, 0,    0x1ed9,
+  GDK_o,  GDK_o,           GDK_r,            0, 0,    0x1ed5,
+  GDK_o,  GDK_o,           GDK_f,            0, 0,    0x1ed3,
+  GDK_o,  GDK_o,           GDK_x,            0, 0,    0x1ed7,
+  GDK_o,                   GDK_f,            0, 0, 0, 0xF2,
+  GDK_o,                   GDK_x,            0, 0, 0, 0xF5,
+  GDK_u,                   0,                0, 0, 0, 'u',
+  GDK_u,                   GDK_s,            0, 0, 0, 0xFA,
+  GDK_u,  GDK_w,           0,                0, 0,    0x1b0,
+  GDK_u,  GDK_w,           GDK_s,            0, 0,    0x1ee9,
+  GDK_u,  GDK_w,           GDK_j,            0, 0,    0x1ef1,
+  GDK_u,  GDK_w,           GDK_r,            0, 0,    0x1eed,
+  GDK_u,  GDK_w,           GDK_f,            0, 0,    0x1eeb,
+  GDK_u,  GDK_w,           GDK_x,            0, 0,    0x1eef,
+  GDK_u,                   GDK_j,            0, 0, 0, 0x1ee5,
+  GDK_u,                   GDK_r,            0, 0, 0, 0x1ee7,
+  GDK_u,                   GDK_f,            0, 0, 0, 0xf9,
+  GDK_u,                   GDK_x,            0, 0, 0, 0x169,
+  GDK_y,                   0,                0, 0, 0, 'y',
+  GDK_y,                   GDK_s,            0, 0, 0, 0xfd,
+  GDK_y,                   GDK_j,            0, 0, 0, 0x1ef5,
+  GDK_y,                   GDK_r,            0, 0, 0, 0x1ef7,
+  GDK_y,                   GDK_f,            0, 0, 0, 0x1ef3,
+  GDK_y,                   GDK_x,            0, 0, 0, 0x1ef9,
+  */
+};
+
+static void
+telex_class_init (GtkIMContextSimpleClass *class)
+{
+}
+
+static void
+telex_init (GtkIMContextSimple *im_context)
+{
+  gtk_im_context_simple_add_table (im_context,
+				   telex_compose_seqs,
+				   4,
+				   G_N_ELEMENTS (telex_compose_seqs) / (4 + 2));
+}
+
+static const GtkIMContextInfo telex_info = { 
+  "telex",		   /* ID */
+  N_("Vietnamese (TELEX)"), /* Human readable name */
+  "gtk+",		   /* Translation domain */
+   GTK_LOCALEDIR,	   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
+  "vi"			   /* Languages for which this module is the default */
+};
+
+static const GtkIMContextInfo *info_list[] = {
+  &telex_info
+};
+
+void
+im_module_init (GTypeModule *module)
+{
+  telex_register_type (module);
+}
+
+void 
+im_module_exit (void)
+{
+}
+
+void 
+im_module_list (const GtkIMContextInfo ***contexts,
+		int                      *n_contexts)
+{
+  *contexts = info_list;
+  *n_contexts = G_N_ELEMENTS (info_list);
+}
+
+GtkIMContext *
+im_module_create (const gchar *context_id)
+{
+  if (strcmp (context_id, "telex") == 0)
+    return GTK_IM_CONTEXT (g_object_new (type_telex_translit, NULL));
+  else
+    return NULL;
+}
diff -p -up gtk+-2.13.1/modules/input/imvni.c.extra_im gtk+-2.13.1/modules/input/imvni.c
--- gtk+-2.13.1/modules/input/imvni.c.extra_im	2008-06-02 09:12:32.000000000 +0200
+++ gtk+-2.13.1/modules/input/imvni.c	2008-06-02 09:12:32.000000000 +0200
@@ -0,0 +1,355 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2000 Red Hat Software
+ * Copyright (C) 2000 SuSE Linux Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Original author: Owen Taylor <otaylor@redhat.com>
+ * 
+ * Modified for VIQR - Robert Brady <robert@suse.co.uk>
+ * Modified for VNI - pclouds <pclouds@users.sf.net>
+ *
+ */
+
+#include <config.h>
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+
+#include <gtk/gtkintl.h>
+#include <gtk/gtkimcontextsimple.h>
+#include <gtk/gtkimmodule.h>
+
+GType type_vni_translit = 0;
+
+static void vni_class_init (GtkIMContextSimpleClass *class);
+static void vni_init (GtkIMContextSimple *im_context);
+
+static void
+vni_register_type (GTypeModule *module)
+{
+  static const GTypeInfo object_info =
+  {
+    sizeof (GtkIMContextSimpleClass),
+    (GBaseInitFunc) NULL,
+    (GBaseFinalizeFunc) NULL,
+    (GClassInitFunc) vni_class_init,
+    NULL,           /* class_finalize */
+    NULL,           /* class_data */
+    sizeof (GtkIMContextSimple),
+    0,
+    (GInstanceInitFunc) vni_init,
+  };
+
+  type_vni_translit = 
+    g_type_module_register_type (module,
+				 GTK_TYPE_IM_CONTEXT_SIMPLE,
+				 "GtkIMContextVni",
+				 &object_info, 0);
+}
+
+static guint16 vni_compose_seqs[] = {
+  GDK_A,                   0,                0, 0, 0, 'A',
+  GDK_A,                   GDK_1,            0, 0, 0, 0xc1,
+  GDK_A,                   GDK_2,            0, 0, 0, 0xc0,
+  GDK_A,                   GDK_3,            0, 0, 0, 0x1ea2,
+  GDK_A,                   GDK_4,            0, 0, 0, 0xc3,
+  GDK_A,                   GDK_5,            0, 0, 0, 0x1ea0,
+  GDK_A,  GDK_6,           0,                0, 0,    0xc2,
+  GDK_A,  GDK_6,           GDK_1,            0, 0,    0x1ea4,
+  GDK_A,  GDK_6,           GDK_2,            0, 0,    0x1ea6,
+  GDK_A,  GDK_6,           GDK_3,            0, 0,    0x1ea8,
+  GDK_A,  GDK_6,           GDK_4,            0, 0,    0x1eaa,
+  GDK_A,  GDK_6,           GDK_5,            0, 0,    0x1eac,
+  GDK_A,  GDK_8,           0,                0, 0,    0x102,
+  GDK_A,  GDK_8,           GDK_1,            0, 0,    0x1eae,
+  GDK_A,  GDK_8,           GDK_2,            0, 0,    0x1eb0,
+  GDK_A,  GDK_8,           GDK_3,            0, 0,    0x1eb2,
+  GDK_A,  GDK_8,           GDK_4,            0, 0,    0x1eb4,
+  GDK_A,  GDK_8,           GDK_5,            0, 0,    0x1eb6,
+  GDK_D,                   0,                0, 0, 0, 'D',
+  GDK_D,                   GDK_9,            0, 0, 0, 0x110,
+  GDK_E,                   0,                0, 0, 0, 'E',
+  GDK_E,                   GDK_1,            0, 0, 0, 0xc9,
+  GDK_E,                   GDK_2,            0, 0, 0, 0xc8,
+  GDK_E,                   GDK_3,            0, 0, 0, 0x1eba,
+  GDK_E,                   GDK_4,            0, 0, 0, 0x1ebc,
+  GDK_E,                   GDK_5,            0, 0, 0, 0x1eb8,
+  GDK_E,  GDK_6,           0,                0, 0,    0xca,
+  GDK_E,  GDK_6,           GDK_1,            0, 0,    0x1ebe,
+  GDK_E,  GDK_6,           GDK_2,            0, 0,    0x1ec0,
+  GDK_E,  GDK_6,           GDK_3,            0, 0,    0x1ec2,
+  GDK_E,  GDK_6,           GDK_4,            0, 0,    0x1ec4,
+  GDK_E,  GDK_6,           GDK_5,            0, 0,    0x1ec6,
+  GDK_I,                   0,                0, 0, 0, 'I',
+  GDK_I,                   GDK_1,            0, 0, 0, 0xcd,
+  GDK_I,                   GDK_2,            0, 0, 0, 0xcc,
+  GDK_I,                   GDK_3,            0, 0, 0, 0x1ec8,
+  GDK_I,                   GDK_4,            0, 0, 0, 0x128,
+  GDK_I,                   GDK_5,            0, 0, 0, 0x1eca,
+  GDK_O,                   0,                0, 0, 0, 'O',
+  GDK_O,                   GDK_1,            0, 0, 0, 0xD3,
+  GDK_O,                   GDK_2,            0, 0, 0, 0xD2,
+  GDK_O,                   GDK_3,            0, 0, 0, 0x1ece,
+  GDK_O,                   GDK_4,            0, 0, 0, 0xD5,
+  GDK_O,                   GDK_5,            0, 0, 0, 0x1ecc,
+  GDK_O,  GDK_6,           0,                0, 0,    0xd4,
+  GDK_O,  GDK_6,           GDK_1,            0, 0,    0x1ed0,
+  GDK_O,  GDK_6,           GDK_2,            0, 0,    0x1ed2,
+  GDK_O,  GDK_6,           GDK_3,            0, 0,    0x1ed4,
+  GDK_O,  GDK_6,           GDK_4,            0, 0,    0x1ed6,
+  GDK_O,  GDK_6,           GDK_5,            0, 0,    0x1ed8,
+  GDK_O,  GDK_7,           0,                0, 0,    0x1a0,
+  GDK_O,  GDK_7,           GDK_1,            0, 0,    0x1eda,
+  GDK_O,  GDK_7,           GDK_2,            0, 0,    0x1edc,
+  GDK_O,  GDK_7,           GDK_3,            0, 0,    0x1ede,
+  GDK_O,  GDK_7,           GDK_4,            0, 0,    0x1ee0,
+  GDK_O,  GDK_7,           GDK_5,            0, 0,    0x1ee2,
+  GDK_U,                   0,                0, 0, 0, 'U',
+  GDK_U,                   GDK_1,            0, 0, 0, 0xDA,
+  GDK_U,                   GDK_2,            0, 0, 0, 0xd9,
+  GDK_U,                   GDK_3,            0, 0, 0, 0x1ee6,
+  GDK_U,                   GDK_4,            0, 0, 0, 0x168,
+  GDK_U,                   GDK_5,            0, 0, 0, 0x1ee4,
+  GDK_U,  GDK_7,           0,                0, 0,    0x1af,
+  GDK_U,  GDK_7,           GDK_1,            0, 0,    0x1ee8,
+  GDK_U,  GDK_7,           GDK_2,            0, 0,    0x1eea,
+  GDK_U,  GDK_7,           GDK_3,            0, 0,    0x1eec,
+  GDK_U,  GDK_7,           GDK_4,            0, 0,    0x1eee,
+  GDK_U,  GDK_7,           GDK_5,            0, 0,    0x1ef0,
+  GDK_Y,                   0,                0, 0, 0, 'Y',
+  GDK_Y,                   GDK_1,            0, 0, 0, 0xdd,
+  GDK_Y,                   GDK_2,            0, 0, 0, 0x1ef2,
+  GDK_Y,                   GDK_3,            0, 0, 0, 0x1ef6,
+  GDK_Y,                   GDK_4,            0, 0, 0, 0x1ef8,
+  GDK_Y,                   GDK_5,            0, 0, 0, 0x1ef4,
+  /* Do we need anything else here? */
+  GDK_backslash,           0,                0, 0, 0, 0,
+  GDK_backslash,           GDK_1,            0, 0, 0, '1',
+  GDK_backslash,           GDK_2,            0, 0, 0, '2',
+  GDK_backslash,           GDK_3,            0, 0, 0, '3',
+  GDK_backslash,           GDK_4,            0, 0, 0, '4',
+  GDK_backslash,           GDK_5,            0, 0, 0, '5',
+  GDK_backslash,           GDK_6,            0, 0, 0, '6',
+  GDK_backslash,           GDK_7,            0, 0, 0, '7',
+  GDK_backslash,           GDK_8,            0, 0, 0, '8',
+  GDK_backslash,           GDK_9,            0, 0, 0, '9',
+  GDK_backslash,           GDK_backslash,    0, 0, 0, '\\',
+  GDK_a,                   0,                0, 0, 0, 'a',
+  GDK_a,                   GDK_1,            0, 0, 0, 0xe1,
+  GDK_a,                   GDK_2,            0, 0, 0, 0xe0,
+  GDK_a,                   GDK_3,            0, 0, 0, 0x1ea3,
+  GDK_a,                   GDK_4,            0, 0, 0, 0xe3,
+  GDK_a,                   GDK_5,            0, 0, 0, 0x1ea1,
+  GDK_a,  GDK_6,           0,                0, 0,    0xe2,
+  GDK_a,  GDK_6,           GDK_1,            0, 0,    0x1ea5,
+  GDK_a,  GDK_6,           GDK_2,            0, 0,    0x1ea7,
+  GDK_a,  GDK_6,           GDK_3,            0, 0,    0x1ea9,
+  GDK_a,  GDK_6,           GDK_4,            0, 0,    0x1eab,
+  GDK_a,  GDK_6,           GDK_5,            0, 0,    0x1ead,
+  GDK_a,  GDK_8,           0,                0, 0,    0x103,
+  GDK_a,  GDK_8,           GDK_1,            0, 0,    0x1eaf,
+  GDK_a,  GDK_8,           GDK_2,            0, 0,    0x1eb1,
+  GDK_a,  GDK_8,           GDK_3,            0, 0,    0x1eb3,
+  GDK_a,  GDK_8,           GDK_4,            0, 0,    0x1eb5,
+  GDK_a,  GDK_8,           GDK_5,            0, 0,    0x1eb7,
+  GDK_d,                   0,                0, 0, 0, 'd',
+  GDK_d,                   GDK_9,            0, 0, 0, 0x111,
+  GDK_e,                   0,                0, 0, 0, 'e',
+  GDK_e,                   GDK_1,            0, 0, 0, 0xe9,
+  GDK_e,                   GDK_2,            0, 0, 0, 0xe8,
+  GDK_e,                   GDK_3,            0, 0, 0, 0x1ebb,
+  GDK_e,                   GDK_4,            0, 0, 0, 0x1ebd,
+  GDK_e,                   GDK_5,            0, 0, 0, 0x1eb9,
+  GDK_e,  GDK_6,           0,                0, 0,    0xea,
+  GDK_e,  GDK_6,           GDK_1,            0, 0,    0x1ebf,
+  GDK_e,  GDK_6,           GDK_2,            0, 0,    0x1ec1,
+  GDK_e,  GDK_6,           GDK_3,            0, 0,    0x1ec3,
+  GDK_e,  GDK_6,           GDK_4,            0, 0,    0x1ec5,
+  GDK_e,  GDK_6,           GDK_5,            0, 0,    0x1ec7,
+  GDK_i,                   0,                0, 0, 0, 'i',
+  GDK_i,                   GDK_1,            0, 0, 0, 0xed,
+  GDK_i,                   GDK_2,            0, 0, 0, 0xec,
+  GDK_i,                   GDK_3,            0, 0, 0, 0x1ec9,
+  GDK_i,                   GDK_4,            0, 0, 0, 0x129,
+  GDK_i,                   GDK_5,            0, 0, 0, 0x1ecb,
+  GDK_o,                   0,                0, 0, 0, 'o',
+  GDK_o,                   GDK_1,            0, 0, 0, 0xf3,
+  GDK_o,                   GDK_2,            0, 0, 0, 0xf2,
+  GDK_o,                   GDK_3,            0, 0, 0, 0x1ecf,
+  GDK_o,                   GDK_4,            0, 0, 0, 0xf5,
+  GDK_o,                   GDK_5,            0, 0, 0, 0x1ecd,
+  GDK_o,  GDK_6,           0,                0, 0,    0xf4,
+  GDK_o,  GDK_6,           GDK_1,            0, 0,    0x1ed1,
+  GDK_o,  GDK_6,           GDK_2,            0, 0,    0x1ed3,
+  GDK_o,  GDK_6,           GDK_3,            0, 0,    0x1ed5,
+  GDK_o,  GDK_6,           GDK_4,            0, 0,    0x1ed7,
+  GDK_o,  GDK_6,           GDK_5,            0, 0,    0x1ed9,
+  GDK_o,  GDK_7,           0,                0, 0,    0x1a1,
+  GDK_o,  GDK_7,           GDK_1,            0, 0,    0x1edb,
+  GDK_o,  GDK_7,           GDK_2,            0, 0,    0x1edd,
+  GDK_o,  GDK_7,           GDK_3,            0, 0,    0x1edf,
+  GDK_o,  GDK_7,           GDK_4,            0, 0,    0x1ee1,
+  GDK_o,  GDK_7,           GDK_5,            0, 0,    0x1ee3,
+  GDK_u,                   0,                0, 0, 0, 'u',
+  GDK_u,                   GDK_1,            0, 0, 0, 0xfA,
+  GDK_u,                   GDK_2,            0, 0, 0, 0xf9,
+  GDK_u,                   GDK_3,            0, 0, 0, 0x1ee7,
+  GDK_u,                   GDK_4,            0, 0, 0, 0x169,
+  GDK_u,                   GDK_5,            0, 0, 0, 0x1ee5,
+  GDK_u,  GDK_7,           0,                0, 0,    0x1b0,
+  GDK_u,  GDK_7,           GDK_1,            0, 0,    0x1ee9,
+  GDK_u,  GDK_7,           GDK_2,            0, 0,    0x1eeb,
+  GDK_u,  GDK_7,           GDK_3,            0, 0,    0x1eed,
+  GDK_u,  GDK_7,           GDK_4,            0, 0,    0x1eef,
+  GDK_u,  GDK_7,           GDK_5,            0, 0,    0x1ef1,
+  GDK_y,                   0,                0, 0, 0, 'y',
+  GDK_y,                   GDK_1,            0, 0, 0, 0xfd,
+  GDK_y,                   GDK_2,            0, 0, 0, 0x1ef3,
+  GDK_y,                   GDK_3,            0, 0, 0, 0x1ef7,
+  GDK_y,                   GDK_4,            0, 0, 0, 0x1ef9,
+  GDK_y,                   GDK_5,            0, 0, 0, 0x1ef5,
+  /*
+  GDK_a,                   0,                0, 0, 0, 'a',
+  GDK_a,                   GDK_1,            0, 0, 0, 0xe1,
+  GDK_a, GDK_8,            0,                0, 0,    0x103,
+  GDK_a, GDK_8,            GDK_1,            0, 0,    0x1eaf,
+  GDK_a, GDK_8,            GDK_5,            0, 0,    0x1eb7,
+  GDK_a, GDK_8,            GDK_3,            0, 0,    0x1eb3,
+  GDK_a, GDK_8,            GDK_2,            0, 0,    0x1eb1,
+  GDK_a, GDK_8,            GDK_4,            0, 0,    0x1eb5,
+  GDK_a,                   GDK_5,            0, 0, 0, 0x1ea1,
+  GDK_a,                   GDK_3,            0, 0, 0, 0x1ea3,
+  GDK_a, GDK_6,            0,                0, 0,    0xe2,
+  GDK_a, GDK_6,            GDK_1,            0, 0,    0x1ea5,
+  GDK_a, GDK_6,            GDK_5,            0, 0,    0x1ead,
+  GDK_a, GDK_6,            GDK_3,            0, 0,    0x1ea9,
+  GDK_a, GDK_6,            GDK_2,            0, 0,    0x1ea7,
+  GDK_a, GDK_6,            GDK_4,            0, 0,    0x1eab,
+  GDK_a,                   GDK_2,            0, 0, 0, 0xe0,
+  GDK_a,                   GDK_4,            0, 0, 0, 0xe3,
+  GDK_d,                   0,                0, 0, 0, 'd',
+  GDK_d,                   GDK_9,            0, 0, 0, 0x111,
+  GDK_e,                   0,                0, 0, 0, 'e',
+  GDK_e,                   GDK_1,            0, 0, 0, 0xe9,
+  GDK_e,                   GDK_5,            0, 0, 0, 0x1eb9,
+  GDK_e,                   GDK_3,            0, 0, 0, 0x1ebb,
+  GDK_e, GDK_6,            0,                0, 0,    0xea,
+  GDK_e, GDK_6,            GDK_1,            0, 0,    0x1ebf,
+  GDK_e, GDK_6,            GDK_5,            0, 0,    0x1ec7,
+  GDK_e, GDK_6,            GDK_3,            0, 0,    0x1ec3,
+  GDK_e, GDK_6,            GDK_2,            0, 0,    0x1ec1,
+  GDK_e, GDK_6,            GDK_4,            0, 0,    0x1ec5,
+  GDK_e,                   GDK_2,            0, 0, 0, 0xe8,
+  GDK_e,                   GDK_4,            0, 0, 0, 0x1ebd,
+  GDK_i,                   0,                0, 0, 0, 'i',
+  GDK_i,                   GDK_1,            0, 0, 0, 0xed,
+  GDK_i,                   GDK_5,            0, 0, 0, 0x1ecb,
+  GDK_i,                   GDK_3,            0, 0, 0, 0x1ec9,
+  GDK_i,                   GDK_2,            0, 0, 0, 0xec,
+  GDK_i,                   GDK_4,            0, 0, 0, 0x129,
+  GDK_o,                   0,                0, 0, 0, 'o',
+  GDK_o,                   GDK_1,            0, 0, 0, 0xF3,
+  GDK_o,  GDK_7,           0,                0, 0,    0x1a1,
+  GDK_o,  GDK_7,           GDK_1,            0, 0,    0x1edb,
+  GDK_o,  GDK_7,           GDK_5,            0, 0,    0x1ee3,
+  GDK_o,  GDK_7,           GDK_3,            0, 0,    0x1edf,
+  GDK_o,  GDK_7,           GDK_2,            0, 0,    0x1edd,
+  GDK_o,  GDK_7,           GDK_4,            0, 0,    0x1ee1,
+  GDK_o,                   GDK_5,            0, 0, 0, 0x1ecd,
+  GDK_o,                   GDK_3,            0, 0, 0, 0x1ecf,
+  GDK_o,  GDK_6,           0,                0, 0,    0xf4,
+  GDK_o,  GDK_6,           GDK_1,            0, 0,    0x1ed1,
+  GDK_o,  GDK_6,           GDK_5,            0, 0,    0x1ed9,
+  GDK_o,  GDK_6,           GDK_3,            0, 0,    0x1ed5,
+  GDK_o,  GDK_6,           GDK_2,            0, 0,    0x1ed3,
+  GDK_o,  GDK_6,           GDK_4,            0, 0,    0x1ed7,
+  GDK_o,                   GDK_2,            0, 0, 0, 0xF2,
+  GDK_o,                   GDK_4,            0, 0, 0, 0xF5,
+  GDK_u,                   0,                0, 0, 0, 'u',
+  GDK_u,                   GDK_1,            0, 0, 0, 0xFA,
+  GDK_u,  GDK_7,           0,                0, 0,    0x1b0,
+  GDK_u,  GDK_7,           GDK_1,            0, 0,    0x1ee9,
+  GDK_u,  GDK_7,           GDK_5,            0, 0,    0x1ef1,
+  GDK_u,  GDK_7,           GDK_3,            0, 0,    0x1eed,
+  GDK_u,  GDK_7,           GDK_2,            0, 0,    0x1eeb,
+  GDK_u,  GDK_7,           GDK_4,            0, 0,    0x1eef,
+  GDK_u,                   GDK_5,            0, 0, 0, 0x1ee5,
+  GDK_u,                   GDK_3,            0, 0, 0, 0x1ee7,
+  GDK_u,                   GDK_2,            0, 0, 0, 0xf9,
+  GDK_u,                   GDK_4,            0, 0, 0, 0x169,
+  GDK_y,                   0,                0, 0, 0, 'y',
+  GDK_y,                   GDK_1,            0, 0, 0, 0xfd,
+  GDK_y,                   GDK_5,            0, 0, 0, 0x1ef5,
+  GDK_y,                   GDK_3,            0, 0, 0, 0x1ef7,
+  GDK_y,                   GDK_2,            0, 0, 0, 0x1ef3,
+  GDK_y,                   GDK_4,            0, 0, 0, 0x1ef9,
+  */
+};
+
+static void
+vni_class_init (GtkIMContextSimpleClass *class)
+{
+}
+
+static void
+vni_init (GtkIMContextSimple *im_context)
+{
+  gtk_im_context_simple_add_table (im_context,
+				   vni_compose_seqs,
+				   4,
+				   G_N_ELEMENTS (vni_compose_seqs) / (4 + 2));
+}
+
+static const GtkIMContextInfo vni_info = { 
+  "vni",		   /* ID */
+  N_("Vietnamese (VNI)"), /* Human readable name */
+  "gtk+",		   /* Translation domain */
+   GTK_LOCALEDIR,	   /* Dir for bindtextdomain (not strictly needed for "gtk+") */
+  "vi"			   /* Languages for which this module is the default */
+};
+
+static const GtkIMContextInfo *info_list[] = {
+  &vni_info
+};
+
+void
+im_module_init (GTypeModule *module)
+{
+  vni_register_type (module);
+}
+
+void 
+im_module_exit (void)
+{
+}
+
+void 
+im_module_list (const GtkIMContextInfo ***contexts,
+		int                      *n_contexts)
+{
+  *contexts = info_list;
+  *n_contexts = G_N_ELEMENTS (info_list);
+}
+
+GtkIMContext *
+im_module_create (const gchar *context_id)
+{
+  if (strcmp (context_id, "vni") == 0)
+    return GTK_IM_CONTEXT (g_object_new (type_vni_translit, NULL));
+  else
+    return NULL;
+}
diff -p -up gtk+-2.13.1/modules/input/Makefile.am.extra_im gtk+-2.13.1/modules/input/Makefile.am
--- gtk+-2.13.1/modules/input/Makefile.am.extra_im	2008-05-30 05:26:55.000000000 +0200
+++ gtk+-2.13.1/modules/input/Makefile.am	2008-06-02 09:32:33.000000000 +0200
@@ -120,6 +120,22 @@ else
 VIQR_MODULE = im-viqr.la
 endif
 
+im_vni_la_LDFLAGS = -rpath $(moduledir) -avoid-version -module $(no_undefined)
+im_vni_la_SOURCES = imvni.c
+im_vni_la_LIBADD = $(LDADDS)
+
+im_telex_la_LDFLAGS = -rpath $(moduledir) -avoid-version -module $(no_undefined)
+im_telex_la_SOURCES = imtelex.c
+im_telex_la_LIBADD = $(LDADDS)
+
+im_tamilvp_tsc_la_LDFLAGS = -rpath $(moduledir) -avoid-version -module $(no_undefined)
+im_tamilvp_tsc_la_SOURCES = imtamilvp-tsc.c
+im_tamilvp_tsc_la_LIBADD = $(LDADDS)
+
+im_tamilvp_uni_la_LDFLAGS = -rpath $(moduledir) -avoid-version -module $(no_undefined)
+im_tamilvp_uni_la_SOURCES = imtamilvp-uni.c
+im_tamilvp_uni_la_LIBADD = $(LDADDS)
+
 im_inuktitut_la_LDFLAGS = -rpath $(moduledir) -avoid-version -module $(no_undefined)
 im_inuktitut_la_SOURCES = iminuktitut.c
 libstatic_im_inuktitut_la_SOURCES = $(im_inuktitut_la_SOURCES)
@@ -220,6 +236,10 @@ module_LTLIBRARIES =			\
 	$(TI_ER_MODULE)			\
 	$(TI_ET_MODULE)			\
 	$(VIQR_MODULE)			\
+	im-tamilvp-tsc.la		\
+	im-tamilvp-uni.la		\
+	im-telex.la			\
+	im-vni.la			\
 	$(XIM_MODULE)
 
 endif