In IBus, The keyval is processed in one loop, but the commit string may
be committed to gvim in the following loop.
In this case, the if clause on the line 4246 which do not clear the
"xim_expected_char" before "return imresult" .
This will cause gvim to ignore the latter commited "xim_expected_char".
So we need to clear "xim_expected_char"
before the "return imresult" to avoid the latter commit string ( e.g.
space ) to be always ignored after that loop.
the patch I submitted via the attachment, add " xim_expected_char = NUL;
" on line 4271, just before "return imresult" to fix this bug.
I under Gentoo Linux, vim-core-7.2, vim-7.2, gvim-7.2
Best wishes!
Yu Yuwei
Aug 20, 2008