xorg-libx11/nls
James Cloos 4b0a145214 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
2007-08-18 17:29:08 -04:00
..
armscii-8 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
C Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
el_GR.UTF-8 Update el_GR.UTF-8/Compose.pre to match changes in xkeyboard-config cvs 2007-05-04 12:00:49 -07:00
en_US.UTF-8 Compose fix for Latin-1 (from Debian) 2007-08-18 17:29:08 -04:00
georgian-academy Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
georgian-ps Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
ibm-cp1133 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
iscii-dev Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
isiri-3342 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
iso8859-1 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
iso8859-2 nls: remove shadowed compose entries (bug #2286) 2006-10-29 03:08:36 +03:00
iso8859-3 nls: remove duplicate compose entries (bug #2286) 2006-10-29 03:07:15 +03:00
iso8859-4 nls: remove shadowed compose entries (bug #2286) 2006-10-29 03:08:36 +03:00
iso8859-5 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
iso8859-6 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
iso8859-7 nls: remove shadowed compose entries (bug #2286) 2006-10-29 03:08:36 +03:00
iso8859-8 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
iso8859-9 nls: remove shadowed compose entries (bug #2286) 2006-10-29 03:08:36 +03:00
iso8859-9e nls: remove shadowed compose entries (bug #2286) 2006-10-29 03:08:36 +03:00
iso8859-10 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
iso8859-11 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
iso8859-13 nls: remove shadowed compose entries (bug #2286) 2006-10-29 03:08:36 +03:00
iso8859-14 nls: remove duplicate compose entries (bug #2286) 2006-10-29 03:07:15 +03:00
iso8859-15 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
ja Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
ja.JIS Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
ja.S90 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
ja.SJIS Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
ja.U90 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
ja_JP.UTF-8 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
ko Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
ko_KR.UTF-8 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
koi8-c Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
koi8-r Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
koi8-u Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
microsoft-cp1251 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
microsoft-cp1255 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
microsoft-cp1256 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
mulelao-1 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
nokhchi-1 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
pt_BR.UTF-8 Compose fix for Latin-1 (from Debian) 2007-08-18 17:29:08 -04:00
tatar-cyr Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
th_TH Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
th_TH.UTF-8 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
tscii-0 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
vi_VN.tcvn nls: remove duplicate compose entries (bug #2286) 2006-10-29 03:07:15 +03:00
vi_VN.viscii nls: remove duplicate compose entries (bug #2286) 2006-10-29 03:07:15 +03:00
zh_CN Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
zh_CN.gb18030 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
zh_CN.gbk Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
zh_CN.UTF-8 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
zh_HK.big5 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
zh_HK.big5hkscs Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
zh_HK.UTF-8 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
zh_TW Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
zh_TW.big5 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
zh_TW.UTF-8 Move .cvsignore to .gitignore. 2006-02-19 12:28:41 -08:00
.gitignore Update .gitignores for *.o and nls/locale.dir*. 2006-02-19 12:29:27 -08:00
compose.dir.pre nls: Serbian (sr_CS) update (#5575) 2006-06-02 02:46:29 +03:00
locale.alias.pre add Indian language locales 2006-07-11 19:42:47 +01:00
locale.dir.pre add Indian language locales 2006-07-11 19:42:47 +01:00
localerules.in Clean up generated files 2005-10-07 15:00:00 +00:00
Makefile.am Clean up generated files 2005-10-07 15:00:00 +00:00