libX11: Changes to 'master'

James Cloos cloos at kemper.freedesktop.org
Sat Aug 18 14:30:21 PDT 2007


 nls/en_US.UTF-8/Compose.pre |  407 +++++++++++++++++++++++---------------------
 nls/pt_BR.UTF-8/Compose.pre |  350 ++++++++++++++++++-------------------
 2 files changed, 390 insertions(+), 367 deletions(-)

New commits:
commit 4b0a14521449dfce8b4347bd17243efd1d3eae2d
Author: James Cloos <cloos at jhcloos.com>
Date:   Sat Aug 18 17:29:08 2007 -0400

    Compose fix for Latin-1 (from Debian)
    The description from bugzilla bug 7417¹ is:
    
      We've been shipping this patch for some time in Debian now. The
      problem description from the patch header is reproduced below. You
      may want to note the licensing issue mentioned below, but we've been
      shipping it because the method by which this particular patch was
      generated and updated was also given below.
    
      This patch by Denis Barbier.
    
      The X11 protocol states that Unicode keysyms are in the range
      0x01000100 - 0x0110FFFF.  If the result of composing characters is a
      Unicode codepoint, X returns the corresponding Unicode keysym, which
      is its Unicode codepoint augmented by 0x01000000.  Latin-1
      characters must not appear with their Unicode codepoints in compose
      files, otherwise the returned composed character lies in the range
      0x01000000 - 0x010000FF which is not valid.
    
      There are two solutions: either fix composing routines to return
      0xZZ instead of 0x010000ZZ (where Z is an hexadecimal digit), or
      replace U00ZZ by their corresponding keysyms in compose files.  The
      latter is more logical and less error prone, so compose files will
      be patched.  Many applications accept these invalid Unicode keysyms,
      but few of them don't, most notably xemacs.  Only UTF-8 locales are
      affected.
    
      This has been fixed very recently in XFree86 CVS (but not xorg), but
      for licensing reasons, this patch is not grabbed.  Instead automatic
      conversion is performed by:
    
        sed -e '/XK_LATIN1/,/XK_LATIN1/!d' /usr/include/X11/keysymdef.h \
        | grep -v deprecated | grep 0x0 \
        | sed -e 's/0x0/U0/' -e 's/XK_//' \
        | awk '{ printf "s/\\b%s\\b/%s/ig\n", $3, $2; }' > sedfile
        for f in nls/*.UTF-8/Compose.pre
        do
          sed -f sedfile $f > $f.tmp && mv $f.tmp $f
        done
    
    [I edited the quoted script to update it for the current location of
    the installed keysymdef.h and the current layout of the libX11
    repo. -JimC]
    
    I applied the script, not the patch attached to the bugreport.
    
    1] https://bugs.freedesktop.org/show_bug.cgi?id=7417

commit 5cf5bc76642bfece7cb5b76faf414bf445f14489
Author: James Cloos <cloos at jhcloos.com>
Date:   Sat Aug 18 17:13:41 2007 -0400

    Add some compose sequences
    
    Add some compose sequences from the patch in bug 5371 (attachment 4122).
    
    Cf:
    
    https://bugs.freedesktop.org/show_bug.cgi?id=5371
    https://bugs.freedesktop.org/attachment.cgi?id=4122



More information about the xorg-commit mailing list