• Show log

    Commit

  • Hash : 3abfe83e
    Author : Ran Benita
    Date : 2012-09-12T23:51:19

    symbols: fix real/alias key merge ordering bug
    
    Background:
    
    The CopySymbolsDef has a comment on a couple of lines which supposedly
    fixed a bug:
    
        /*
         * kt_index[i] may have been set by a previous run (if we have two
         * layouts specified). Let's not overwrite it with the ONE_LEVEL
         * default group if we dont even have keys for this group anyway.
         *
         * FIXME: There should be a better fix for this.
         */
        if (!darray_empty(groupi->levels))
            key->kt_index[i] = types[i];
    
    But neither the comment nor the fix make any sense, because the kt_index
    is indexed per group, i.e. each group gets its own type.
    The original xkbcomp commit which added this (36fecff58) points to this
    bug: https://bugzilla.redhat.com/show_bug.cgi?id=436626
    which complains about -layout "ru,us" -variant "phonetic," not working
    properly. And indeed when we try:
        sudo ./test/interactive -l ru,us -v
    the first group doesn't get any syms for the main keys.
    
    The problem (Clearly the fix above is useless):
    
    The ru(phonetic) map is specified using aliases, e.g. LatQ, LatW instead
    of AD01, AD02, etc. When combined with another layout which uses the
    real names (AD01, AD02), the symbols code should recognize they are the
    same key and merge them into one KeyInfo. The current code does that,
    but it doesn't catch the case where the alias was processes *before* the
    real one; so we get two KeyInfo's and the later one wins. So e.g. the
    ru(phonetic) symbols are ignored.
    
    The fix:
    
    Before adding a new KeyInfo to the keys array, always replace its name
    by the real name, which avoids the entire issue. Luckily this is done
    pretty late so most error messages should still show the alias name.
    
    Signed-off-by: Ran Benita <ran234@gmail.com>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/libxkbcommon.git
    Git SSH git@git.kmx.io:kc3-lang/libxkbcommon.git
    Public access ? public
    Description

    keymap handling library for toolkits and window systems

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags