Update to 1.3.1-5.
This commit is contained in:
parent
60b81da0bf
commit
a8e1de1701
@ -1,62 +0,0 @@
|
||||
From b4f997685fd1df5e9d4e1f41e59e490e39d5b9d9 Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@unixuser.org>
|
||||
Date: Wed, 29 Sep 2010 18:14:50 +0900
|
||||
Subject: [PATCH] Simplify AltGr handling.
|
||||
|
||||
---
|
||||
src/engine.c | 24 +++++++++++++++---------
|
||||
1 files changed, 15 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/engine.c b/src/engine.c
|
||||
index dbd00fc..1dbcf34 100644
|
||||
--- a/src/engine.c
|
||||
+++ b/src/engine.c
|
||||
@@ -424,9 +424,9 @@ ibus_m17n_engine_commit_string (IBusM17NEngine *m17n,
|
||||
ibus_m17n_engine_update_preedit (m17n);
|
||||
}
|
||||
|
||||
-/* Note on AltGr handling: While currently we expect AltGr == mod5, it
|
||||
- would be better to not expect the modifier always be assigned
|
||||
- to particular modX. However, it needs some code like:
|
||||
+/* Note on AltGr (Level3 Shift) handling: While currently we expect
|
||||
+ AltGr == mod5, it would be better to not expect the modifier always
|
||||
+ be assigned to particular modX. However, it needs some code like:
|
||||
|
||||
KeyCode altgr = XKeysymToKeycode (display, XK_ISO_Level3_Shift);
|
||||
XModifierKeymap *mods = XGetModifierMapping (display);
|
||||
@@ -448,20 +448,26 @@ ibus_m17n_key_event_to_symbol (guint keycode,
|
||||
MSymbol mkeysym = Mnil;
|
||||
guint mask = 0;
|
||||
IBusKeymap *keymap;
|
||||
- guint base_keyval;
|
||||
|
||||
if (keyval >= IBUS_Shift_L && keyval <= IBUS_Hyper_R) {
|
||||
return Mnil;
|
||||
}
|
||||
|
||||
- keymap = ibus_keymap_get ("us");
|
||||
- base_keyval = ibus_keymap_lookup_keysym (keymap, keycode, 0);
|
||||
- g_object_unref (keymap);
|
||||
+ /* Here, keyval is already translated by IBUS_MOD5_MASK. Obtain
|
||||
+ the untranslated keyval from the underlying keymap and
|
||||
+ represent the translated keyval as the form "G-<untranslated
|
||||
+ keyval>", which m17n-lib accepts. */
|
||||
+ if (modifiers & IBUS_MOD5_MASK) {
|
||||
+ keymap = ibus_keymap_get ("us");
|
||||
+ keyval = ibus_keymap_lookup_keysym (keymap, keycode,
|
||||
+ modifiers & ~IBUS_MOD5_MASK);
|
||||
+ g_object_unref (keymap);
|
||||
+ }
|
||||
|
||||
keysym = g_string_new ("");
|
||||
|
||||
- if (base_keyval >= IBUS_space && base_keyval <= IBUS_asciitilde) {
|
||||
- gint c = (modifiers & IBUS_MOD5_MASK) ? base_keyval : keyval;
|
||||
+ if (keyval >= IBUS_space && keyval <= IBUS_asciitilde) {
|
||||
+ gint c = keyval;
|
||||
|
||||
if (keyval == IBUS_space && modifiers & IBUS_SHIFT_MASK)
|
||||
mask |= IBUS_SHIFT_MASK;
|
||||
--
|
||||
1.7.2.3
|
||||
|
207
ibus-m17n-fedora.patch
Normal file
207
ibus-m17n-fedora.patch
Normal file
@ -0,0 +1,207 @@
|
||||
diff --git a/src/engine.c b/src/engine.c
|
||||
index dbd00fc..1dbcf34 100644
|
||||
--- a/src/engine.c
|
||||
+++ b/src/engine.c
|
||||
@@ -424,9 +424,9 @@ ibus_m17n_engine_commit_string (IBusM17NEngine *m17n,
|
||||
ibus_m17n_engine_update_preedit (m17n);
|
||||
}
|
||||
|
||||
-/* Note on AltGr handling: While currently we expect AltGr == mod5, it
|
||||
- would be better to not expect the modifier always be assigned
|
||||
- to particular modX. However, it needs some code like:
|
||||
+/* Note on AltGr (Level3 Shift) handling: While currently we expect
|
||||
+ AltGr == mod5, it would be better to not expect the modifier always
|
||||
+ be assigned to particular modX. However, it needs some code like:
|
||||
|
||||
KeyCode altgr = XKeysymToKeycode (display, XK_ISO_Level3_Shift);
|
||||
XModifierKeymap *mods = XGetModifierMapping (display);
|
||||
@@ -448,20 +448,26 @@ ibus_m17n_key_event_to_symbol (guint keycode,
|
||||
MSymbol mkeysym = Mnil;
|
||||
guint mask = 0;
|
||||
IBusKeymap *keymap;
|
||||
- guint base_keyval;
|
||||
|
||||
if (keyval >= IBUS_Shift_L && keyval <= IBUS_Hyper_R) {
|
||||
return Mnil;
|
||||
}
|
||||
|
||||
- keymap = ibus_keymap_get ("us");
|
||||
- base_keyval = ibus_keymap_lookup_keysym (keymap, keycode, 0);
|
||||
- g_object_unref (keymap);
|
||||
+ /* Here, keyval is already translated by IBUS_MOD5_MASK. Obtain
|
||||
+ the untranslated keyval from the underlying keymap and
|
||||
+ represent the translated keyval as the form "G-<untranslated
|
||||
+ keyval>", which m17n-lib accepts. */
|
||||
+ if (modifiers & IBUS_MOD5_MASK) {
|
||||
+ keymap = ibus_keymap_get ("us");
|
||||
+ keyval = ibus_keymap_lookup_keysym (keymap, keycode,
|
||||
+ modifiers & ~IBUS_MOD5_MASK);
|
||||
+ g_object_unref (keymap);
|
||||
+ }
|
||||
|
||||
keysym = g_string_new ("");
|
||||
|
||||
- if (base_keyval >= IBUS_space && base_keyval <= IBUS_asciitilde) {
|
||||
- gint c = (modifiers & IBUS_MOD5_MASK) ? base_keyval : keyval;
|
||||
+ if (keyval >= IBUS_space && keyval <= IBUS_asciitilde) {
|
||||
+ gint c = keyval;
|
||||
|
||||
if (keyval == IBUS_space && modifiers & IBUS_SHIFT_MASK)
|
||||
mask |= IBUS_SHIFT_MASK;
|
||||
diff --git a/src/m17nutil.c b/src/m17nutil.c
|
||||
index ae0fe56..22b9fe1 100644
|
||||
--- a/src/m17nutil.c
|
||||
+++ b/src/m17nutil.c
|
||||
@@ -7,37 +7,60 @@
|
||||
|
||||
static MConverter *utf8_converter = NULL;
|
||||
|
||||
-static const gchar *keymap[] = {
|
||||
- "m17n:as:phonetic",
|
||||
- "m17n:bn:inscript",
|
||||
- "m17n:gu:inscript",
|
||||
- "m17n:hi:inscript",
|
||||
- "m17n:kn:kgp",
|
||||
- "m17n:ks:kbd",
|
||||
- "m17n:mai:inscript",
|
||||
- "m17n:ml:inscript",
|
||||
- "m17n:mr:inscript",
|
||||
- "m17n:ne:rom",
|
||||
- "m17n:or:inscript",
|
||||
- "m17n:pa:inscript",
|
||||
- "m17n:sa:harvard-kyoto",
|
||||
- "m17n:sd:inscript",
|
||||
- "m17n:si:wijesekera",
|
||||
- "m17n:ta:tamil99",
|
||||
- "m17n:te:inscript"
|
||||
-};
|
||||
-
|
||||
-static const gchar *preedit_highlight[] = {
|
||||
- "m17n:ja:anthy",
|
||||
- "m17n:zh:cangjie",
|
||||
- "m17n:zh:py-b5",
|
||||
- "m17n:zh:py-gb",
|
||||
- "m17n:zh:py",
|
||||
- "m17n:zh:quick",
|
||||
- "m17n:zh:tonepy-b5",
|
||||
- "m17n:zh:tonepy-gb",
|
||||
- "m17n:zh:tonepy",
|
||||
- "m17n:zh:util",
|
||||
+static const struct {
|
||||
+ const gchar *name;
|
||||
+ gint rank; /* engine rank (default 0) */
|
||||
+ gboolean preedit_highlight; /* whether to highlight preedit (default 0) */
|
||||
+} engine_config[] = {
|
||||
+ /* Indic engines which represent languages. */
|
||||
+ {"m17n:as:phonetic", 2, FALSE},
|
||||
+ {"m17n:bn:inscript", 2, FALSE},
|
||||
+ {"m17n:gu:inscript", 2, FALSE},
|
||||
+ {"m17n:hi:inscript", 2, FALSE},
|
||||
+ {"m17n:kn:kgp", 2, FALSE},
|
||||
+ {"m17n:ks:kbd", 2, FALSE},
|
||||
+ {"m17n:mai:inscript", 2, FALSE},
|
||||
+ {"m17n:ml:inscript", 2, FALSE},
|
||||
+ {"m17n:mr:inscript", 2, FALSE},
|
||||
+ {"m17n:ne:rom", 2, FALSE},
|
||||
+ {"m17n:or:inscript", 2, FALSE},
|
||||
+ {"m17n:pa:inscript", 2, FALSE},
|
||||
+ {"m17n:sa:harvard-kyoto", 2, FALSE},
|
||||
+ {"m17n:sd:inscript", 2, FALSE},
|
||||
+ {"m17n:si:wijesekera", 2, FALSE},
|
||||
+ {"m17n:ta:tamil99", 2, FALSE},
|
||||
+ {"m17n:te:inscript", 2, FALSE},
|
||||
+ /* Other Indic engines should be selected by default:
|
||||
+ https://bugzilla.redhat.com/show_bug.cgi?id=640896
|
||||
+ */
|
||||
+ {"m17n:as:*", 1, FALSE},
|
||||
+ {"m17n:bn:*", 1, FALSE},
|
||||
+ {"m17n:gu:*", 1, FALSE},
|
||||
+ {"m17n:hi:*", 1, FALSE},
|
||||
+ {"m17n:kn:*", 1, FALSE},
|
||||
+ {"m17n:ks:*", 1, FALSE},
|
||||
+ {"m17n:mai:*", 1, FALSE},
|
||||
+ {"m17n:ml:*", 1, FALSE},
|
||||
+ {"m17n:mr:*", 1, FALSE},
|
||||
+ {"m17n:ne:*", 1, FALSE},
|
||||
+ {"m17n:or:*", 1, FALSE},
|
||||
+ {"m17n:pa:*", 1, FALSE},
|
||||
+ {"m17n:sa:*", 1, FALSE},
|
||||
+ {"m17n:sd:*", 1, FALSE},
|
||||
+ {"m17n:si:*", 1, FALSE},
|
||||
+ {"m17n:ta:*", 1, FALSE},
|
||||
+ {"m17n:te:*", 1, FALSE},
|
||||
+ /* Chinese and Japanese engines which require preedit decoration. */
|
||||
+ {"m17n:ja:anthy", 0, TRUE},
|
||||
+ {"m17n:zh:cangjie", 0, TRUE},
|
||||
+ {"m17n:zh:py-b5", 0, TRUE},
|
||||
+ {"m17n:zh:py-gb", 0, TRUE},
|
||||
+ {"m17n:zh:py", 0, TRUE},
|
||||
+ {"m17n:zh:quick", 0, TRUE},
|
||||
+ {"m17n:zh:tonepy-b5", 0, TRUE},
|
||||
+ {"m17n:zh:tonepy-gb", 0, TRUE},
|
||||
+ {"m17n:zh:tonepy", 0, TRUE},
|
||||
+ {"m17n:zh:util", 0, TRUE}
|
||||
};
|
||||
|
||||
void
|
||||
@@ -101,11 +124,16 @@ guint
|
||||
ibus_m17n_parse_color (const gchar *hex)
|
||||
{
|
||||
guint color;
|
||||
- if (hex && *hex == '#' &&
|
||||
- ((color = strtoul (&hex[1], NULL, 16)) != ULONG_MAX ||
|
||||
- errno != ERANGE))
|
||||
- return color;
|
||||
- return (guint)-1;
|
||||
+
|
||||
+ if (!hex || *hex != '#')
|
||||
+ return (guint)-1;
|
||||
+
|
||||
+ errno = 0;
|
||||
+ color = strtoul (&hex[1], NULL, 16);
|
||||
+ if ((errno == ERANGE && color == ULONG_MAX)
|
||||
+ || (errno != 0 && color == 0))
|
||||
+ return (guint)-1;
|
||||
+ return color;
|
||||
}
|
||||
|
||||
static IBusEngineDesc *
|
||||
@@ -141,10 +169,10 @@ ibus_m17n_engine_new (MSymbol lang,
|
||||
/* set default rank to 0 */
|
||||
engine->rank = 0;
|
||||
|
||||
- for (i = 0; i < G_N_ELEMENTS(keymap); i++) {
|
||||
- if (strcmp (engine_name, keymap[i]) == 0) {
|
||||
+ for (i = 0; i < G_N_ELEMENTS(engine_config); i++) {
|
||||
+ if (g_pattern_match_simple (engine_config[i].name, engine_name)) {
|
||||
/* set rank of default keymap to 1 */
|
||||
- engine->rank = 1;
|
||||
+ engine->rank = engine_config[i].rank;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -271,9 +299,9 @@ ibus_m17n_preedit_highlight (const gchar *engine_name)
|
||||
{
|
||||
gint i;
|
||||
|
||||
- for (i = 0; i < G_N_ELEMENTS(preedit_highlight); i++) {
|
||||
- if (strcmp (engine_name, preedit_highlight[i]) == 0)
|
||||
- return TRUE;
|
||||
+ for (i = 0; i < G_N_ELEMENTS(engine_config); i++) {
|
||||
+ if (g_pattern_match_simple (engine_config[i].name, engine_name))
|
||||
+ return engine_config[i].preedit_highlight;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
diff --git a/src/setup.c b/src/setup.c
|
||||
index 7442159..0fe6e1b 100644
|
||||
--- a/src/setup.c
|
||||
+++ b/src/setup.c
|
||||
@@ -83,6 +83,7 @@ parse_value (MPlist *plist, gchar *text)
|
||||
if (mplist_key (plist) == Minteger) {
|
||||
long val;
|
||||
|
||||
+ errno = 0;
|
||||
val = strtol (text, NULL, 10);
|
||||
if ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN))
|
||||
|| (errno != 0 && val == 0))
|
@ -2,7 +2,7 @@
|
||||
|
||||
Name: ibus-m17n
|
||||
Version: 1.3.1
|
||||
Release: 4%{?dist}
|
||||
Release: 5%{?dist}
|
||||
Summary: The M17N engine for IBus platform
|
||||
License: GPLv2+
|
||||
Group: System Environment/Libraries
|
||||
@ -11,7 +11,7 @@ Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
|
||||
|
||||
Patch0: ibus-m17n-iok.patch
|
||||
Patch1: ibus-m17n-surrounding-text.patch
|
||||
Patch2: ibus-m17n-altgr.patch
|
||||
Patch2: ibus-m17n-fedora.patch
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: gettext-devel
|
||||
@ -58,6 +58,11 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_datadir}/ibus/component/*
|
||||
|
||||
%changelog
|
||||
* Tue Oct 12 2010 Daiki Ueno <dueno@redhat.com> - 1.3.1-5
|
||||
- put several Fedora patches into one.
|
||||
- Fix bug 640896 - Ibus does not load all the keymaps for a language
|
||||
that is used for logging in.
|
||||
|
||||
* Tue Oct 5 2010 Daiki Ueno <dueno@redhat.com> - 1.3.1-4
|
||||
- Remove Shift+AltGr patch; apply a simplified AltGr patch.
|
||||
- Fix bug 639963 - SHIFT switch is not working in layouts as expected.
|
||||
|
Loading…
Reference in New Issue
Block a user