2016-10-04 11:35:37 |
Iain Lane |
description |
The XMODIFIERS environment variable is not set correctly.
$ echo $XMODIFIERS
@im
$
The value should be
- for ibus: "@im=ibus"
- for fcitx: "@im=fcitx"
- for xim: "@im=none"
The issue is present in Ubuntu/Unity 16.10. I don't see it in Ubuntu GNOME, neither in Ubuntu 16.04.
Actually I don't think the affected package is im-config, because the issue is present also after having downgraded im-config to 0.29-1ubuntu12 (the Xenial version). But I wanted to file the bug somewhere, so here it is. |
When "initctl set-env -g" is called, upstart calls D-Bus to also update its activation environment (the environment that D-Bus activated services get). There is a bug here:
- SetEnv takes a parameter of the form "VARIABLE=VALUE"
- This is split on "=" to determine the two parts
- If the VALUE has an "=" character in it, everything after the first "=" is lost, because all "=" characters are split and not the first one
In this case, XMODIFIERS=@im=ibus was being turned into XMODIFIERS=@im.
upstart should only split on the first "=", and keep the rest of the string unsplit. It doesn't look like nih_str_split is going to be very helpful here.
[ Original description ]
The XMODIFIERS environment variable is not set correctly.
$ echo $XMODIFIERS
@im
$
The value should be
- for ibus: "@im=ibus"
- for fcitx: "@im=fcitx"
- for xim: "@im=none"
The issue is present in Ubuntu/Unity 16.10. I don't see it in Ubuntu GNOME, neither in Ubuntu 16.04.
Actually I don't think the affected package is im-config, because the issue is present also after having downgraded im-config to 0.29-1ubuntu12 (the Xenial version). But I wanted to file the bug somewhere, so here it is. |
|